๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ

์ด ์„น์…˜์—๋Š” Apigee Hybrid ๋ฐฐํฌ์˜ ๋Ÿฐํƒ€์ž„ ์˜์—ญ์„ ๋งž์ถค์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ์†์„ฑ์ด ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์ƒ์œ„ ์†์„ฑ

๋‹ค์Œ ํ‘œ์—์„œ๋Š” overrides.yaml ํŒŒ์ผ์˜ ์ตœ์ƒ์œ„ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ƒ์œ„ ์†์„ฑ์€ ๋‹ค๋ฅธ ๊ฐ์ฒด์— ์†ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์กฐ์ง ๋˜๋Š” ํ™˜๊ฒฝ ์ˆ˜์ค€์—์„œ ์ ์šฉ๋˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
axHashSalt

๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: ์กฐ์ง ์ด๋ฆ„

์„ ํƒ์‚ฌํ•ญ

Apigee ์• ๋„๋ฆฌํ‹ฑ์Šค๋กœ ์ „์†ก๋œ ๋‚œ๋…ํ™”๋œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ•ด์‹ฑ ์†”ํŠธ ๊ฐ’์ด ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์†”ํŠธ ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์กฐ์ง ์ด๋ฆ„์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์†”ํŠธ ๊ฐ’์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํด๋Ÿฌ์Šคํ„ฐ์— ๋™์ผํ•œ ์†”ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„์— ์ผ๊ด€๋œ ํ•ด์‹ฑ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

contractProvider ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: https://apigee.googleapis.com

์„ค์น˜ ์‹œ ๋ชจ๋“  API์˜ API ๊ฒฝ๋กœ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

gcpProjectID Deprecated: v1.2.0 ์ด์ƒ์—์„œ๋Š” gcp.projectID๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: none

ํ•„์ˆ˜

Google Cloud ํ”„๋กœ์ ํŠธ์˜ ID์ž…๋‹ˆ๋‹ค. k8sClusterName(์ง€์› ์ค‘๋‹จ๋จ) ๋ฐ gcpRegion(์ง€์› ์ค‘๋‹จ๋จ)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  apigee-logger์™€ apigee-metrics๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘ธ์‹œํ•  ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

gcpRegion Deprecated: v1.2.0 ์ด์ƒ์—์„œ๋Š” gcp.region๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: us-central1

ํ•„์ˆ˜

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด Google Cloud ๋ฆฌ์ „ ๋˜๋Š” ์˜์—ญ์ž…๋‹ˆ๋‹ค. gcpProjectID(์ง€์› ์ค‘๋‹จ๋จ) ๋ฐ k8sClusterName(์ง€์› ์ค‘๋‹จ๋จ)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  apigee-logger์™€ apigee-metrics๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘ธ์‹œํ•  ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

imagePullSecrets.name ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

docker-registry ์œ ํ˜•์œผ๋กœ ๊ตฌ์„ฑ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€ ์ด๋ฆ„์ด๋ฉฐ ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

k8sClusterName Deprecated: v1.2.0 ์ด์ƒ์—์„œ๋Š” k8sCluster.name ๋ฐ k8sCluster.region์„ ๋Œ€์‹  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” Kubernetes(K8S) ํ”„๋กœํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. gcpProjectID(์ง€์› ์ค‘๋‹จ๋จ) ๋ฐ gcpRegion(์ง€์› ์ค‘๋‹จ๋จ)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  apigee-logger์™€ apigee-metrics๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘ธ์‹œํ•  ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

kmsEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: defaults.org.kmsEncryptionKey

์„ ํƒ์‚ฌํ•ญ. kmsEncryptionKey, kmsEncryptionPath, kmsEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

Apigee KMS ๋ฐ์ดํ„ฐ์˜ ์•”ํ˜ธํ™” ํ‚ค์— ๋Œ€ํ•œ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

kmsEncryptionPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์„ ํƒ์‚ฌํ•ญ. kmsEncryptionKey, kmsEncryptionPath, kmsEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

kmsEncryptionSecret.key ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์„ ํƒ์‚ฌํ•ญ. kmsEncryptionKey, kmsEncryptionPath, kmsEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ํ‚ค์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

kmsEncryptionSecret.name ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์„ ํƒ์‚ฌํ•ญ. kmsEncryptionKey, kmsEncryptionPath, kmsEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

kvmEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: defaults.org.kmsEncryptionKey

์„ ํƒ์‚ฌํ•ญ. kvmEncryptionKey, kvmEncryptionPath, kvmEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Apigee KVM ๋ฐ์ดํ„ฐ์˜ ์•”ํ˜ธํ™” ํ‚ค์— ๋Œ€ํ•œ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

kvmEncryptionPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์„ ํƒ์‚ฌํ•ญ. kvmEncryptionKey, kvmEncryptionPath, kvmEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

kvmEncryptionSecret.key ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์„ ํƒ์‚ฌํ•ญ. kvmEncryptionKey, kvmEncryptionPath, kvmEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ํ‚ค์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

kvmEncryptionSecret.name ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์„ ํƒ์‚ฌํ•ญ. kvmEncryptionKey, kvmEncryptionPath, kvmEncryptionSecret ์ค‘ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

namespace ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: apigee

Apigee ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์„ค์น˜๋  Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค.

org

๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„ค์น˜ ์ค‘์— Apigee๊ฐ€ ํ”„๋กœ๋น„์ €๋‹ํ•œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ง€์› ์กฐ์ง์ž…๋‹ˆ๋‹ค. ์กฐ์ง์€ Apigee์˜ ์ตœ์ƒ์œ„ ์ปจํ…Œ์ด๋„ˆ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ชจ๋“  API ํ”„๋ก์‹œ ๋ฐ ๊ด€๋ จ ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์กฐ์ง ์ด๋ฆ„์„ ๋งŒ๋“  ํ›„์— ์กฐ์ง ์ด๋ฆ„์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

revision ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: v120

Apigee Hybrid๋Š” ์ˆœ์ฐจ์  Kubernetes ์—…๋ฐ์ดํŠธ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ํฌ๋“œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋กœ ์ ์ง„์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋‹ค์šดํƒ€์ž„ ์—†์ด ๋ฐฐํฌ ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ Kubernetes PodTemplateSpec ๋ณ€๊ฒฝ์œผ๋กœ ์ด์–ด์ง€๋Š” ํŠน์ • YAML ์žฌ์ •์˜๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ ๊ณ ๊ฐ์˜ override.yaml์—์„œ๋„ revision ์žฌ์ •์˜ ์†์„ฑ๋„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ธฐ๋ณธ Kubernetes ApigeeDeployment(AD) ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ด์ „ ๋ฒ„์ „์—์„œ ์ƒˆ ๋ฒ„์ „์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. blue, a, 1.0.0๊ณผ ๊ฐ™์€ ์†Œ๋ฌธ์ž ํ…์ŠคํŠธ ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

revision ์†์„ฑ์ด ๋ณ€๊ฒฝ๋˜๊ณ  ์ ์šฉ๋˜๋ฉด ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์— ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด revision์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ˆœ์ฐจ์  ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

validateServiceAccounts ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: true

์„œ๋น„์Šค ๊ณ„์ • ๊ถŒํ•œ์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค. Cloud Resource Manager API ๋ฉ”์„œ๋“œ testIamPermissions๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ณต๋œ ์„œ๋น„์Šค ๊ณ„์ •์— ํ•„์š”ํ•œ ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Apigee ์กฐ์ง์˜ ์„œ๋น„์Šค ๊ณ„์ •์ธ ๊ฒฝ์šฐ ํ”„๋กœ์ ํŠธ ID ํ™•์ธ์€ ์กฐ์ง์— ๋งคํ•‘๋œ ID์ž…๋‹ˆ๋‹ค. ์ธก์ •ํ•ญ๋ชฉ ๋ฐ Logger์˜ ๊ฒฝ์šฐ ํ™•์ธ๋œ ํ”„๋กœ์ ํŠธ๋Š” gcpProjectID overrides.yaml ๊ตฌ์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

gcpProjectID๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

ao

Apigee Operators(AO)๋Š” ApigeeDeployment(AD)๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ•˜์œ„ ์ˆ˜์ค€ Kubernetes ๋ฐ Istio ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ปจํŠธ๋กค๋Ÿฌ๋Š” ๋ฉ”์‹œ์ง€ ํ”„๋กœ์„ธ์„œ๋ฅผ ์ถœ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ApigeeDeployment ๊ตฌ์„ฑ์„ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์œ ์ง€ํ•˜๊ธฐ ์ „์— ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” Apigee ์—ฐ์‚ฐ์ž ao ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
ao.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ao.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

ao.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-operators

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

ao.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 250m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ CPU ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

ao.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 256Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

ao.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 250m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

ao.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 256Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

authz

๋‹ค์Œ ํ‘œ์—์„œ๋Š” authz ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
authz.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

authz.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

authz.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-authn-authz

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

authz.livenessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Kubernetes๊ฐ€ ํ™œ์„ฑ ํ”„๋กœ๋ธŒ์˜ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

authz.livenessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

authz.livenessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ์‹คํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

authz.livenessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

authz.readinessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: ๋ฒ ํƒ€2

๊ธฐ๋ณธ๊ฐ’: 2

Kubernetes๊ฐ€ ํฌ๋“œ๋ฅผ unready๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

authz.readinessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

authz.readinessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

์ค€๋น„ ํ”„๋กœ๋ธŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

authz.readinessProbe.successThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจ ํ›„ ์„ฑ๊ณต์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด ์ตœ์†Œ์˜ ์—ฐ์†์ ์ธ ์„ฑ๊ณต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

authz.readinessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

authz.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 50m

์ธ์ฆ ์š”์ฒญ์— ํ• ๋‹นํ•  CPU ๋ฆฌ์†Œ์Šค ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.

authz.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 128Mi

์ธ์ฆ ์š”์ฒญ์— ํ• ๋‹นํ•  ๋ฉ”๋ชจ๋ฆฌ ๋ฆฌ์†Œ์Šค ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.

cassandra

๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ €์žฅ์†Œ๋Š” ๊ฒŒ์ดํŠธ์›จ์ด์—์„œ ์‹คํ–‰๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ, ๋ถ„์‚ฐ ํ• ๋‹น๋Ÿ‰ ์นด์šดํ„ฐ, API ํ‚ค, OAuth ํ† ํฐ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ StorageClass ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” cassandra ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
cassandra.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.auth.admin.password ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: iloveapis123

ํ•„์ˆ˜

Cassandra ๊ด€๋ฆฌ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ๊ด€๋ฆฌ์ž๋Š” Cassandra ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๋ชจ๋“  ๊ด€๋ฆฌ ํ™œ๋™์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.auth.ddl.password ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: iloveapis123

ํ•„์ˆ˜

Cassandra ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด(DDL) ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” MART์—์„œ ํ‚ค ๊ณต๊ฐ„ ์ƒ์„ฑ, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์ •์˜ ์ž‘์—…์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.auth.default.password ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: iloveapis123

ํ•„์ˆ˜

์ธ์ฆ์ด ์‚ฌ์šฉ ์„ค์ •๋˜์—ˆ์„ ๋•Œ ์ƒ์„ฑ๋œ ๊ธฐ๋ณธ Cassandra ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. Cassandra ์ธ์ฆ์„ ๊ตฌ์„ฑํ•  ๋•Œ ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์žฌ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Cassandra์šฉ TLS ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.auth.dml.password ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: iloveapis123

ํ•„์ˆ˜

Cassandra DML ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. DML ์‚ฌ์šฉ์ž๋Š” ํด๋ผ์ด์–ธํŠธ ํ†ต์‹ ์ด Cassandra์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.auth.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.auth.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

cassandra.auth.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra-client

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

cassandra.auth.jmx.password ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: iloveapis123

ํ•„์ˆ˜

Cassandra JMX ์ž‘์—… ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. Cassandra JMX ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ธ์ฆํ•˜๊ณ  ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.auth.jmx.username ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: apigee

ํ•„์ˆ˜

Cassandra JMX ์ž‘์—… ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Cassandra JMX ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ธ์ฆํ•˜๊ณ  ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.auth.jolokia.password ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: iloveapis123

ํ•„์ˆ˜

Cassandra Jolokia JMX ์ž‘์—… ์‚ฌ์šฉ์ž์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค. Cassandra JMX API๋กœ ์ธ์ฆํ•˜๊ณ  ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.auth.jolokia.username ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: apigee

ํ•„์ˆ˜

Cassandra Jolokia JMX ์ž‘์—… ์‚ฌ์šฉ์ž์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Cassandra JMX API๋กœ ์ธ์ฆํ•˜๊ณ  ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.auth.secret ๋„์ž…๋œ ๋ฒ„์ „: 1.3.3

๊ธฐ๋ณธ๊ฐ’: None

TLS ์ธ์ฆ์„œ์™€ ๋น„๊ณต๊ฐœ ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์— ์ €์žฅ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. TLS ์ธ์ฆ์„œ์™€ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ:

cassandra.backup.cloudProvider ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: GCP

๋ฐฑ์—…์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—… ์Šคํ† ๋ฆฌ์ง€์˜ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด์ž…๋‹ˆ๋‹ค.

๊ฐ’์„ GCP ๋˜๋Š” HYBRID๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—…์„ Google Cloud Storage์— ์ €์žฅํ•˜๋ ค๋ฉด ๊ฐ’์„ GCP๋กœ, ๋ฐฑ์—…์„ ์›๊ฒฉ ์„œ๋ฒ„์— ์ €์žฅํ•˜๋ ค๋ฉด HYBRID๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra.backup.dbStorageBucket ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

๋ฐฑ์—…์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—… ๋ฐ์ดํ„ฐ์˜ Cloud Storage ๋ฒ„ํ‚ท์ž…๋‹ˆ๋‹ค.

cassandra.backup.enabled ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: false

๋ฐ์ดํ„ฐ ๋ฐฑ์—…์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด true๋กœ ์„ค์ •ํ•˜์„ธ์š”.

Cassandra ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.backup.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.backup.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

cassandra.backup.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

cassandra.backup.schedule ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0 2 * * *

ํฌ๋ก  ์ž‘์—…์˜ ์ผ์ •์ž…๋‹ˆ๋‹ค.

Cassandra ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.backup.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

๋ฐฑ์—…์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ backup.serviceAccountPath ๋˜๋Š” backup.serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด ๊ด€๋ฆฌ์ž ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

cassandra.backup.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

๋ฐฑ์—…์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ backup.serviceAccountPath ๋˜๋Š” backup.serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

cassandra.clusterName ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: apigeecluster

Cassandra ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra.datacenter ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: dc-1

Cassandra ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra.dnsPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.1.1

๊ธฐ๋ณธ๊ฐ’: None

hostNetwork๋ฅผ true๋กœ ์„ค์ •ํ•˜๋ฉด DNS ์ •์ฑ…์ด ClusterFirstWithHostNet๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

cassandra.externalSeedHost ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

Cassandra ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” IP์ž…๋‹ˆ๋‹ค. ์„ค์ •๋˜์ง€ ์•Š์œผ๋ฉด Kubernetes ๋กœ์ปฌ ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.heapNewSize ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 100M

์ตœ์‹  ๊ฐ์ฒด์— ํ• ๋‹น๋œ JVM ์‹œ์Šคํ…œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค(๋ฉ”๊ฐ€๋ฐ”์ดํŠธ ๋‹จ์œ„).

cassandra.hostNetwork ๋„์ž…๋œ ๋ฒ„์ „: 1.1.1

๊ธฐ๋ณธ๊ฐ’: false

Kubernetes hostNetwork ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Apigee๋Š” GKE On-Prem, GKE on AWS, Anthos on bare metal, AKS, EKS, OpenShift์™€ ๊ฐ™์€ GKE ์™ธ ์„ค์น˜์˜ ๊ธฐ๋ณธ ์‚ฌ๋ก€์— ํ•ด๋‹นํ•˜๋Š” ํฌ๋“œ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ํด๋Ÿฌ์Šคํ„ฐ('๊ฒฉ๋ฆฌ ๋„คํŠธ์›Œํฌ ๋ชจ๋“œ'๋กœ ์‹คํ–‰๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ) ๊ฐ„ ์—ฐ๊ฒฐ์ด ์—†๋Š” ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ์„ค์น˜์—์„œ ํฌ๋“œ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

GKE ์„ค์น˜์—์„œ์™€ ๊ฐ™์ด ์„œ๋กœ ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํฌ๋“œ ๊ฐ„ ์—ฐ๊ฒฐ์ด ์žˆ๋Š” ๋‹จ์ผ ๋ฆฌ์ „ ์„ค์น˜ ๋ฐ ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ์„ค์น˜์— ๋Œ€ํ•ด cassandra.hostNetwork๋ฅผ false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

GKE On-Prem, GKE on AWS, ๋ฒ ์–ด๋ฉ”ํƒˆ์šฉ Anthos, AKS, EKS, OpenShift ์„ค์น˜์™€ ๊ฐ™์ด ์„œ๋กœ ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์˜ ํฌ๋“œ ๊ฐ„ ํ†ต์‹ ์ด ์—†๋Š” ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ์„ค์น˜์— ๋Œ€ํ•ด์„œ๋Š” cassandra.hostNetwork๋ฅผ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ๋ฐฐํฌ: ๊ธฐ๋ณธ ์š”๊ฑด์„ ์ฐธ์กฐํ•˜์„ธ์š”.

true์ด๋ฉด DNS ์ •์ฑ…์ด ClusterFirstWithHostNet์œผ๋กœ ์ž๋™ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

cassandra.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

cassandra.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-hybrid-cassandra

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

cassandra.maxHeapSize ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 512M

Cassandra ์ž‘์—…์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” JVM ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ƒํ•œ๊ฐ’์ž…๋‹ˆ๋‹ค(๋ฉ”๊ฐ€๋ฐ”์ดํŠธ ๋‹จ์œ„).

cassandra.multiRegionSeedHost ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

๊ธฐ์กด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒˆ ๋ฆฌ์ „์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์กด Cassandra ํด๋Ÿฌ์Šคํ„ฐ์˜ IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ์‹œ๋“œ ํ˜ธ์ŠคํŠธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.nodeSelector.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

cassandra ๋ฐ์ดํ„ฐ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.nodeSelector.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

cassandra ๋ฐ์ดํ„ฐ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๊ณ  nodeSelector.apigeeData ์„ค์ •์„ ์žฌ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์  ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

nodeSelector๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.port ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 9042

Casandra์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

cassandra.rack ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: ra-1

Cassandra ๋…ธ๋“œ์˜ ๋ž™์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra.readinessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

Kubernetes๊ฐ€ ํฌ๋“œ๋ฅผ unready๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

cassandra.readinessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

cassandra.readinessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 10

์ค€๋น„ ํ”„๋กœ๋ธŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

cassandra.readinessProbe.successThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจ ํ›„ ์„ฑ๊ณต์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด ์ตœ์†Œ์˜ ์—ฐ์†์ ์ธ ์„ฑ๊ณต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

cassandra.readinessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

cassandra.replicaCount ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

Cassandra๋Š” ๋ณต์ œ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ์ด ์†์„ฑ์€ StatefulSet๋กœ ์‚ฌ์šฉ๋˜๋Š” Cassandra ๋…ธ๋“œ ์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

cassandra.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1Gi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

cassandra.restore.cloudProvider ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: GCP

๋ณต์›์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ฐฑ์—… ์Šคํ† ๋ฆฌ์ง€์˜ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์—…์ฒด์ž…๋‹ˆ๋‹ค.

cassandra.restore.dbStorageBucket ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

๋ณต์›์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ณต์›ํ•  ๋ฐฑ์—… ๋ฐ์ดํ„ฐ์˜ Cloud Storage ๋ฒ„ํ‚ท์ž…๋‹ˆ๋‹ค.

cassandra.restore.enabled ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: false

cassandra.restore.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

cassandra.restore.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

cassandra.restore.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-cassandra-backup-utility

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

cassandra.restore.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

๋ณต์›์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ restore.serviceAccountPath ๋˜๋Š” restore.serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด ๊ด€๋ฆฌ์ž ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

cassandra.restore.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

๋ณต์›์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ restore.serviceAccountPath ๋˜๋Š” restore.serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

cassandra.restore.snapshotTimestamp ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

๋ณต์›์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

๋ณต์›ํ•ด์•ผ ํ•˜๋Š” ๋ฐฑ์—…์˜ ํƒ€์ž„์Šคํƒฌํ”„์ž…๋‹ˆ๋‹ค.

cassandra.restore.user ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: ๊ด€๋ฆฌ์ž ๊ณ„์ •

์Šคํ‚ค๋งˆ ๋ฐฑ์—… ๋ณต์›์— ์‚ฌ์šฉ๋˜๋Š” Cassandra ์‚ฌ์šฉ์ž ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ด€๋ฆฌ์ž๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

cassandra.sslCertPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์‹œ์Šคํ…œ์˜ TLS ์ธ์ฆ์„œ ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

cassandra.sslKeyPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

์‹œ์Šคํ…œ์˜ TLS ๋น„๊ณต๊ฐœ ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

cassandra.sslRootCAPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

๋ฃจํŠธ CA(์ธ์ฆ ๊ธฐ๊ด€)์— ๋Œ€ํ•œ ์ธ์ฆ์„œ ์ฒด์ธ์ž…๋‹ˆ๋‹ค.

cassandra.storage.capacity ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 50Gi

storage.storageclass๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ ํ•„์ˆ˜

ํ•„์š”ํ•œ ๋””์Šคํฌ ํฌ๊ธฐ๋ฅผ ๋ฉ”๊ฐ€๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra.storage.storageclass ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

์‚ฌ์šฉ ์ค‘์ธ ์˜จํ”„๋ ˜ ์Šคํ† ๋ฆฌ์ง€์˜ ํด๋ž˜์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 300

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

certmanagercainjector

cert-manager CA ์ธ์ ํ„ฐ๋Š” CA ๋ฒˆ๋“ค์„ cert-manager ์›นํ›… ํ”„๋กœ์„ธ์Šค์— ์‚ฝ์ž…ํ•  ์ฑ…์ž„์ด ์žˆ๋Š” ์ธ์ฆ์„œ ๊ด€๋ฆฌ์ž ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. cert-manager ๋ฌธ์„œ์˜ CA ์ธ์ ํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” certmanagercainjector ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
certmanagercainjector.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: v0.12.0

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

certmanagercainjector.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-cert-manager-cainjector

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

certmanagerwebhook

cert-manager ์›นํ›…์€ cert-manager ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋™์  ํ—ˆ์šฉ ์ œ์–ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. cert-manager ๋ฌธ์„œ์˜ ์›นํ›…์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” certmanagerwebhook ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
certmanagerwebhook.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: v0.12.0

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

certmanagerwebhook.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-cert-manager-webhook

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

connectAgent

Apigee Connect๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธํ„ฐ๋„ท์— MART ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋…ธ์ถœํ•  ํ•„์š” ์—†์ด Apigee Hybrid ๊ด€๋ฆฌ ์˜์—ญ์„ ๋Ÿฐํƒ€์ž„ ์˜์—ญ์˜ MART ์„œ๋น„์Šค์— ์•ˆ์ „ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Apigee Connect๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” connectAgent ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
connectAgent.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

connectAgent.enabled ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: false

์ด ์„ค์น˜๊ฐ€ mart์šฉ Istio ์ธ๊ทธ๋ ˆ์Šค ๋Œ€์‹  Apigee Connect๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‚˜์š”? true ๋˜๋Š” false.

Apigee Connect๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

connectAgent.server ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: apigeeconnect.googleapis.com:443

์ด ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์„œ๋ฒ„ ๋ฐ ํฌํŠธ์˜ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

connectAgent.logLevel ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: INFO

๋กœ๊ทธ ๋ณด๊ณ ์˜ ์ˆ˜์ค€์ž…๋‹ˆ๋‹ค. ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • INFO: ๊ฒฝ๊ณ , ์˜ค๋ฅ˜, ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์™ธ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ๋ฉ”์‹œ์ง€์ž…๋‹ˆ๋‹ค. ๋””๋ฒ„๊น…์— ๊ฐ€์žฅ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • WARNING: ์˜ค๋ฅ˜ ๋ฐ ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜ ์™ธ์— ์‹ฌ๊ฐํ•˜์ง€ ์•Š์€ ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค.
  • ERROR: ์‹ฌ๊ฐํ•œ ์˜ค๋ฅ˜ ์™ธ์— ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜๋˜์ง€ ์•Š๋Š” ๋‚ด๋ถ€ ์˜ค๋ฅ˜ ๋ฐ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค.
  • FATAL: Apigee Connect์˜ ๋น„์ •์ƒ ์ข…๋ฃŒ๋ฅผ ์ดˆ๋ž˜ํ•˜๋Š” ๋ณต๊ตฌ ๋ถˆ๊ฐ€ ์˜ค๋ฅ˜ ๋ฐ ์ด๋ฒคํŠธ์ž…๋‹ˆ๋‹ค.
connectAgent.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

connectAgent.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

connectAgent.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-connect-agent

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค. values.yaml ํŒŒ์ผ์— ํŠน์ • URL์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

connectAgent.replicaCountMax ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 5

์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

connectAgent.replicaCountMin ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 1

์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ๋‹จ๊ณ„์—์„œ๋Š” replicaCountMin์„ 3์œผ๋กœ ๋Š˜๋ ค์„œ ์•ˆ์ •์„ฑ๊ณผ ํ™•์žฅ์„ฑ์„ ์œ„ํ•œ ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

connectAgent.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 100m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

connectAgent.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 30Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

connectAgent.targetCPUUtilizationPercentage ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 75

ํฌ๋“œ์—์„œ Apigee Connect ์—์ด์ „ํŠธ์— ๋Œ€ํ•œ ๋Œ€์ƒ CPU ์‚ฌ์šฉ๋ฅ ์ž…๋‹ˆ๋‹ค. ์ด ํ•„๋“œ์˜ ๊ฐ’์€ CPU ์‚ฌ์šฉ๋ฅ ์ด ์ด ๊ฐ’(์ตœ๋Œ€ replicaCountMax)์— ๋„๋‹ฌํ•  ๋•Œ Apigee Connect๊ฐ€ ์ž๋™ ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

connectAgent.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 600

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

defaults

Apigee Hybrid ์„ค์น˜์˜ ๊ธฐ๋ณธ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” defaults ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
defaults.org.kmsEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: aWxvdmVhcGlzMTIzNDU2Nw==

KMS์˜ ์กฐ์ง์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค.

defaults.org.kvmEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: aWxvdmVhcGlzMTIzNDU2Nw==

KVM์˜ ์กฐ์ง์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค.

defaults.env.kmsEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: aWxvdmVhcGlzMTIzNDU2Nw==

KMS์˜ ํ™˜๊ฒฝ(env)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค.

defaults.env.kvmEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: aWxvdmVhcGlzMTIzNDU2Nw==

KVM์˜ ํ™˜๊ฒฝ(env)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค.

defaults.env.cacheEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: aWxvdmVhcGlzMTIzNDU2Nw==

ํ™˜๊ฒฝ(env)์˜ ๊ธฐ๋ณธ ์บ์‹œ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค.

envs

API ํ”„๋ก์‹œ๋ฅผ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ๋ฐฐ์—ด์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ™˜๊ฒฝ์€ API ํ”„๋ก์‹œ ์‹คํ–‰์„ ์œ„ํ•œ ๊ฒฉ๋ฆฌ๋œ ์ปจํ…์ŠคํŠธ ๋˜๋Š” ์ƒŒ๋“œ๋ฐ•์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ง€์› ์กฐ์ง์—๋Š” ํ™˜๊ฒฝ์ด ํ•˜๋‚˜ ์ด์ƒ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ™˜๊ฒฝ ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” envs ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
envs[].cacheEncryptionKey ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

cacheEncryptionKey, cacheEncryptionPath ๋˜๋Š” cacheEncryptionSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

envs[].cacheEncryptionPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

cacheEncryptionKey, cacheEncryptionPath ๋˜๋Š” cacheEncryptionSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

envs[].cacheEncryptionSecret.key ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

cacheEncryptionKey, cacheEncryptionPath ๋˜๋Š” cacheEncryptionSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ํ‚ค์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

envs[].cacheEncryptionSecret.name ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

cacheEncryptionKey, cacheEncryptionPath ๋˜๋Š” cacheEncryptionSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์•”ํ˜ธํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

envs[].hostAliases[] ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

Deprecated: ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฒ„์ „ 1.4๋ถ€ํ„ฐ ๋Ÿฐํƒ€์ž„ ์˜์—ญ์€ ๊ด€๋ฆฌ ์˜์—ญ์œผ๋กœ๋ถ€ํ„ฐ ์ด ์ •๋ณด๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ฐ ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

envs[].httpProxy.host ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

httpProxy ์†์„ฑ์„ scheme, host, port์˜ ์ˆœ์„œ๋กœ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

envs:
  - name: test
    httpProxy:
      scheme: HTTP
      host: 10.12.0.47
      port: 3128
      ...

์ฐธ๊ณ : API ํ”„๋ก์‹œ์˜ ์ „๋‹ฌ ํ”„๋ก์‹œ ๊ตฌ์„ฑ

envs[].httpProxy.port ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ํฌํŠธ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์†์„ฑ์„ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ HTTP์—๋Š” ํฌํŠธ 80์„, HTTPS์—๋Š” ํฌํŠธ 443์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

envs[].httpProxy.scheme ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ์˜ ์œ ํ˜•์„ HTTP ๋˜๋Š” HTTPS๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ 'HTTP'๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

envs[].httpProxy.username ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ์— ๊ธฐ๋ณธ ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

envs[].httpProxy.password ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ์— ๊ธฐ๋ณธ ์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

envs[].name ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

๋™๊ธฐํ™”ํ•  Apigee ํ™˜๊ฒฝ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

envs[].pollInterval ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

์กฐ์ง ๋ฐ ํ™˜๊ฒฝ ๋™๊ธฐํ™” ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํด๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ„๊ฒฉ(์ดˆ)์ž…๋‹ˆ๋‹ค.

envs[].port ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

HTTPS ํŠธ๋ž˜ํ”ฝ์˜ TCP ํฌํŠธ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

envs[].serviceAccountPaths.runtime ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: None

๋กœ์ปฌ ์‹œ์Šคํ…œ์—์„œ Cloud Trace ์—์ด์ „ํŠธ ์—ญํ• (์ผ๋ฐ˜์ ์œผ๋กœ apigee-distributed-trace ์„œ๋น„์Šค ๊ณ„์ •)์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค์˜ ํŒŒ์ผ ๊ฒฝ๋กœ ์„œ๋น„์Šค ๊ณ„์ •์˜ ๊ธฐ๋ณธ ์ด๋ฆ„๊ณผ ํ• ๋‹น๋œ ์—ญํ• ์˜ ์„œ๋น„์Šค ๊ณ„์ • ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

envs[].serviceAccountPaths.synchronizer ๋„์ž…๋œ ๋ฒ„์ „: 1.0

๊ธฐ๋ณธ๊ฐ’: None

Apigee ๋™๊ธฐํ™” ๋‹ด๋‹น์ž ๊ด€๋ฆฌ์ž ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค์˜ ๋กœ์ปฌ ์‹œ์Šคํ…œ ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

envs[].serviceAccountPaths.udca ๋„์ž…๋œ ๋ฒ„์ „: 1.0

๊ธฐ๋ณธ๊ฐ’: None

Apigee ์• ๋„๋ฆฌํ‹ฑ์Šค ์—์ด์ „ํŠธ ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค์˜ ๋กœ์ปฌ ์‹œ์Šคํ…œ ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

envs[].serviceAccountSecretRefs.runtime ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: None

Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Cloud Trace ์—์ด์ „ํŠธ ์—ญํ• ์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

envs[].serviceAccountSecretRefs.synchronizer ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Apigee ๋™๊ธฐํ™” ๋‹ด๋‹น์ž ๊ด€๋ฆฌ์ž ์—ญํ• ์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

envs[].serviceAccountSecretRefs.udca ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Apigee Analytic Agent ์—ญํ• ์„ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

envs[].sslCertPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์˜ TLS ์ธ์ฆ์„œ ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

envs[].sslKeyPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์˜ TLS ๋น„๊ณต๊ฐœ ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

envs[].sslSecret ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

TLS ์ธ์ฆ์„œ์™€ ๋น„๊ณต๊ฐœ ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์— ์ €์žฅ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. TLS ์ธ์ฆ์„œ์™€ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ:

gcp

apigee-logger ๋ฐ apigee-metrics๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘ธ์‹œํ•˜๋Š” Google Cloud ํ”„๋กœ์ ํŠธ ID ๋ฐ ๋ฆฌ์ „์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” gcp ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
gcp.region ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

apigee-logger ๋ฐ apigee-metrics๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘ธ์‹œํ•˜๋Š” Google Cloud ๋ฆฌ์ „์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

gcp.projectID ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

apigee-logger ๋ฐ apigee-metrics๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘ธ์‹œํ•˜๋Š” Google Cloud ํ”„๋กœ์ ํŠธ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

gcp.projectIDRuntime ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

๋Ÿฐํƒ€์ž„ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

projectIDRuntime ์†์„ฑ์€ ์„ ํƒ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ projectID ๊ฐ’์ด Apigee ์กฐ์ง์˜ Google Cloud ํ”„๋กœ์ ํŠธ์™€ ๋Ÿฐํƒ€์ž„ K8S ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

httpProxy

httpProxy๋Š” HTTP ์ „๋‹ฌ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ ๊ตฌ์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. overrides.yaml๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ MART, ๋™๊ธฐํ™” ๋‹ด๋‹น์ž, UDCA ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•œ ๋ชจ๋“  ์ธํ„ฐ๋„ท ํ†ต์‹ ์ด ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ํ†ต๊ณผํ•ฉ๋‹ˆ๋‹ค.

logger, mart, metrics, synchronizer, udca๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” httpProxy ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
httpProxy.host ๋„์ž…๋œ ๋ฒ„์ „: 1.1.1

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

httpProxy.port ๋„์ž…๋œ ๋ฒ„์ „: 1.1.1

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ์˜ ํฌํŠธ์ž…๋‹ˆ๋‹ค.

httpProxy.scheme ๋„์ž…๋œ ๋ฒ„์ „: 1.1.1

๊ธฐ๋ณธ๊ฐ’: HTTP

ํ”„๋ก์‹œ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํ‚ด์ž…๋‹ˆ๋‹ค. ๊ฐ’์€ HTTP์—ฌ์•ผ ํ•˜๊ณ  ๋Œ€๋ฌธ์ž์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ๋ฐ HTTPS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ „๋‹ฌ ํ”„๋ก์‹œ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

k8sCluster

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„์ด ์„ค์น˜๋œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” k8sCluster ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
k8sCluster.name ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„์ด ์„ค์น˜๋œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

k8sCluster.region ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ƒ์„ฑ๋œ Google Cloud ๋ฆฌ์ „์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

kubeRBACProxy

Apigee๊ฐ€ Kubernetes ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ฐพ์„ ์œ„์น˜๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” kubeRBACProxy ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
kubeRBACProxy.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

kubeRBACProxy.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: v0.11.0

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

kubeRBACProxy.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-kube-rbac-proxy

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

Google Docker Hub๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  Docker ์ด๋ฏธ์ง€๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ํ˜ธ์ŠคํŒ…๋˜๋Š” ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

logger

์šด์˜ ๋กœ๊ทธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  Apigee Hybrid ์„œ๋น„์Šค๊ฐ€ ์ด ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ Logging ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” logger ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
logger.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

logger.enabled ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: false

ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋กœ๊น…์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋น„GKE์ธ ๊ฒฝ์šฐ true๋กœ ์„ค์ •ํ•˜๊ณ , Anthos ๋˜๋Š” GKE์˜ ๊ฒฝ์šฐ false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

logger.fluentd.buffer_chunk_limit ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 512k

ํ—ˆ์šฉ๋˜๋Š” ๋ฒ„ํผ ์ฒญํฌ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค(ํ‚ฌ๋กœ๋ฐ”์ดํŠธ ๋‹จ์œ„). ํ•œ๋„๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ์ฒญํฌ๋Š” ์ถœ๋ ฅ ํ์— ์ž๋™์œผ๋กœ ํ”Œ๋Ÿฌ์‹œ๋ฉ๋‹ˆ๋‹ค.

logger.fluentd.buffer_queue_limit ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 6

์ถœ๋ ฅ ํ์˜ ์ตœ๋Œ€ ๊ธธ์ด์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ œํ•œ์€ 256 ์ฒญํฌ์ž…๋‹ˆ๋‹ค.

logger.fluentd.flush_interval ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5s

๋‹ค์Œ ๋ฒ„ํผ ํ”Œ๋Ÿฌ์‹œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•˜๋Š” ๊ฐ„๊ฒฉ(์ดˆ)์ž…๋‹ˆ๋‹ค.

logger.fluentd.max_retry_wait ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 30

์“ฐ๊ธฐ ์žฌ์‹œ๋„ ์‚ฌ์ด์˜ ์ตœ๋Œ€ ๊ฐ„๊ฒฉ(์ดˆ)์ž…๋‹ˆ๋‹ค.

logger.fluentd.num_threads ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

๋ฒ„ํผ๋ฅผ ํ”Œ๋Ÿฌ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์Šค๋ ˆ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

logger.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

logger.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.8.4

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

logger.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

logger.livenessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 3

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Kubernetes๊ฐ€ ํ™œ์„ฑ ํ”„๋กœ๋ธŒ์˜ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

logger.livenessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

logger.livenessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 60

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ์‹คํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

logger.livenessProbe.successThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจ ํ›„ ์„ฑ๊ณต์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด ์ตœ์†Œ ์—ฐ์†์ ์ธ ์„ฑ๊ณต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

logger.livenessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

logger.nodeSelector.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: apigee.com/apigee-logger-enabled

ํ•„์ˆ˜

logger ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

logger.nodeSelector.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: true

ํ•„์ˆ˜

logger ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

logger.proxyURL ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

๊ณ ๊ฐ ํ”„๋ก์‹œ ์„œ๋ฒ„์˜ URL์ž…๋‹ˆ๋‹ค.

logger.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 500Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

logger.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 200m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ CPU ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

logger.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 100m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

logger.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 250Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

logger.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

๋กœ๊ทธ ์ž‘์„ฑ์ž ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

logger.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

logger.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 30

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mart

KMS(API ํ‚ค ๋ฐ OAuth ํ† ํฐ), KVM, ํ• ๋‹น๋Ÿ‰, API ์ œํ’ˆ๊ณผ ๊ฐ™์€ ๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์— ์•ก์„ธ์Šคํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต๊ฐœ Apigee API์˜ API ์ œ๊ณต์—…์ฒด ์—ญํ• ์„ ํ•˜๋Š” MART(๋Ÿฐํƒ€์ž„ ๋ฐ์ดํ„ฐ์šฉ Management API) ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” mart ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
mart.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

mart.hostAlias ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

MART ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ˜ธ์ŠคํŠธ ๋ณ„์นญ์ž…๋‹ˆ๋‹ค. ์ด ์†์„ฑ์„ * ๋˜๋Š” ์ •๊ทœํ™”๋œ ๋„๋ฉ”์ธ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mart.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

mart.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

mart.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-mart-server

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค. values.yaml ํŒŒ์ผ์— ํŠน์ • URL์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mart.initCheckCF.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 10m

Cloud Foundry ํ”„๋กœ์„ธ์Šค์˜ ์ดˆ๊ธฐํ™” ํ™•์ธ์— ํ• ๋‹น๋œ CPU ๋ฆฌ์†Œ์Šค์˜ ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.

mart.livenessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 12

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Kubernetes๊ฐ€ ํ™œ์„ฑ ํ”„๋กœ๋ธŒ์˜ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

mart.livenessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 15

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

mart.livenessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ์‹คํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

mart.livenessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

mart.metricsURL ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: /v1/server/metrics

mart.nodeSelector.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

mart ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ์„ ํƒ์  ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค. mart.nodeselector์˜ ํ‚ค๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋Ÿฐํƒ€์ž„์€ nodeSelector ๊ฐ์ฒด์— ์ง€์ •๋œ ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

mart.nodeSelector.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

mart ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ์„ ํƒ์  ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค. nodeSelector ๊ฐ์ฒด๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

mart.readinessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

Kubernetes๊ฐ€ ํฌ๋“œ๋ฅผ unready๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

mart.readinessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 15

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

mart.readinessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

์ค€๋น„ ํ”„๋กœ๋ธŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

mart.readinessProbe.successThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจ ํ›„ ์„ฑ๊ณต์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด ์ตœ์†Œ์˜ ์—ฐ์†์ ์ธ ์„ฑ๊ณต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

mart.readinessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

mart.replicaCountMax ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

mart.replicaCountMin ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

mart.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

mart.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 512Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

mart.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.1.1

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์—ญํ• ์ด ์—†๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

mart.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

mart.sslCertPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

SSL ์ธ์ฆ์„œ๋ฅผ ๋ณด์•ˆ ๋น„๋ฐ€์— ๋กœ๋“œํ•˜๊ณ  ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

mart.sslKeyPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

SSL ํ‚ค๋ฅผ ๋ณด์•ˆ ๋น„๋ฐ€์— ๋กœ๋“œํ•˜๊ณ  ์ธ์ฝ”๋”ฉํ•˜๋Š” ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

mart.sslSecret ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

TLS ์ธ์ฆ์„œ์™€ ๋น„๊ณต๊ฐœ ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์— ์ €์žฅ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. TLS ์ธ์ฆ์„œ์™€ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ:

mart.targetCPUUtilizationPercentage ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 75

ํฌ๋“œ์˜ MART ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋Œ€์ƒ CPU ์‚ฌ์šฉ๋ฅ ์ž…๋‹ˆ๋‹ค. CPU ์‚ฌ์šฉ๋ฅ ์ด replicaCountMax ๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ์ด ํ•„๋“œ์˜ ๊ฐ’์€ MART๊ฐ€ ์ž๋™ ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

mart.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 30

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

metrics

์ž‘์—… ์ธก์ •ํ•ญ๋ชฉ์„ ์ˆ˜์ง‘ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ธก์ •ํ•ญ๋ชฉ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„œ๋น„์Šค์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์•Œ๋ฆผ์„ ์„ค์ •ํ•˜๊ณ , ๊ธฐํƒ€ ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ธก์ •ํ•ญ๋ชฉ ์ปฌ๋ ‰์…˜ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” metrics ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
metrics.aggregator.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.aggregator.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 512Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.aggregator.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ ๋ฆฌ์†Œ์Šค์˜ CPU ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.aggregator.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 3Gi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์• ๊ทธ๋ฆฌ๊ฒŒ์ดํ„ฐ ๋ฆฌ์†Œ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค(๊ธฐ๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

metrics.app.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์•ฑ์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.app.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 512Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์•ฑ์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.app.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์•ฑ ๋ฆฌ์†Œ์Šค์˜ CPU ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.app.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 1Gi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ์•ฑ ๋ฆฌ์†Œ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค(๊ธฐ๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.enabled ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: true

Apigee ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ธก์ •ํ•ญ๋ชฉ์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ ค๋ฉด false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

metrics.nodeSelector.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

metrics ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

metrics.nodeSelector.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

metrics ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

metrics.prometheus.args.storage_tsdb_retention ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 48h

Prometheus๊ฐ€ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—์„œ ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„(์‹œ๊ฐ„ ๋‹จ์œ„)์ž…๋‹ˆ๋‹ค.

metrics.prometheus.containerPort ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 9090

Prometheus ์ธก์ •ํ•ญ๋ชฉ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•  ํฌํŠธ์ž…๋‹ˆ๋‹ค.

metrics.prometheus.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

metrics.prometheus.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: v2.33.5

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

metrics.prometheus.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-prom-prometheus

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

metrics.prometheus.livenessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 6

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Kubernetes๊ฐ€ ํ™œ์„ฑ ํ”„๋กœ๋ธŒ์˜ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

metrics.prometheus.livenessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ์‹คํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

metrics.prometheus.livenessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 3

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

metrics.prometheus.readinessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 120

Kubernetes๊ฐ€ ํฌ๋“œ๋ฅผ unready๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

metrics.prometheus.readinessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

์ค€๋น„ ํ”„๋กœ๋ธŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

metrics.prometheus.readinessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 3

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

metrics.prometheus.sslCertPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

Prometheus ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘ ํ”„๋กœ์„ธ์Šค์˜ SSL ์ธ์ฆ์„œ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. Prometheus๋Š” Apigee๊ฐ€ ์ธก์ •ํ•ญ๋ชฉ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

metrics.prometheus.sslKeyPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

Prometheus ์ธก์ •ํ•ญ๋ชฉ ์ˆ˜์ง‘ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ SSL ํ‚ค ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. Prometheus๋Š” Apigee๊ฐ€ ์ธก์ •ํ•ญ๋ชฉ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

metrics.proxy.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ํ”„๋ก์‹œ์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.proxy.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 512Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ํ”„๋ก์‹œ์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.proxy.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ํ”„๋ก์‹œ ๋ฆฌ์†Œ์Šค์˜ CPU ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.proxy.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 1Gi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ํ”„๋ก์‹œ ๋ฆฌ์†Œ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค(๊ธฐ๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.proxyURL ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ธก์ •ํ•ญ๋ชฉ ํ”„๋กœ์„ธ์Šค ์‚ฌ์ด๋“œ์นด ํ”„๋ก์‹œ์˜ URL์ž…๋‹ˆ๋‹ค.

metrics.sdSidecar.containerPort ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 9091

Cloud ์šด์˜ ์ธก์ •ํ•ญ๋ชฉ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํฌํŠธ์ž…๋‹ˆ๋‹ค.

metrics.sdSidecar.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

Kubelet์—์„œ ์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ •์ฑ…์ด ์ด๋ฏธ ์žˆ๋”๋ผ๋„ ํ•ญ์ƒ ์ •์ฑ…์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

metrics.sdSidecar.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0.7.5

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

metrics.sdSidecar.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-stackdriver-prometheus-sidecar

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

metrics.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

Monitoring ์ธก์ •ํ•ญ๋ชฉ ์ž‘์„ฑ์ž ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

metrics.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

metrics.stackdriverExporter.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 128m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด stackdriverExporter์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.stackdriverExporter.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 512Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด stackdriverExporter์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.stackdriverExporter.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด stackdriverExporter ๋ฆฌ์†Œ์Šค์˜ CPU ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

metrics.stackdriverExporter.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 1Gi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด stackdriverExporter ๋ฆฌ์†Œ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค(๊ธฐ๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

metrics.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 300

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

nodeSelector

nodeSelector ๊ฐ์ฒด๋Š” Apigee ์ธ์Šคํ„ด์Šค์˜ ๋…ธ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. apigeectl์ด ์‹คํ–‰๋˜๋ฉด ์ด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ apigeeRuntime ๋ฐ apigeeData์˜ ๋ผ๋ฒจ ํ‚ค-๊ฐ’์ด ๊ฐœ๋ณ„ Istio ๋ฐ MART ๊ตฌ์„ฑ์š”์†Œ์— ๋งคํ•‘๋˜๋„๋ก ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. mart:nodeSelector ์†์„ฑ์—์„œ ๊ฐœ๋ณ„ ๊ฐ์ฒด์— ๋Œ€ํ•ด ์ด๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” nodeSelector ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
nodeSelector.apigeeData.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: cloud.google.com/gke-nodepool

ApigeeData๋Š” Cassandra ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. Apigee ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

nodeSelector.apigeeData.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: apigee-data

apigee-data๋Š” Cassandra ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. Apigee ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

nodeSelector.apigeeRuntime.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: cloud.google.com/gke-nodepool

Apigee ๋Ÿฐํƒ€์ž„์€ ํ”„๋กœ์ ํŠธ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์˜ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. Apigee ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

nodeSelector.apigeeRuntime.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: apigee-runtime

apigee-runtime์€ ํ”„๋กœ์ ํŠธ์˜ ๋Ÿฐํƒ€์ž„ ํ™˜๊ฒฝ์˜ ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค. Apigee ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

nodeSelector.requiredForScheduling ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: false

requiredForScheduling ์†์„ฑ ๊ธฐ๋ณธ๊ฐ’์€ false์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด true๋กœ ์žฌ์ •์˜๋œ ๊ฒฝ์šฐ Kubernetes๊ฐ€ ๋ผ๋ฒจ ํ‚ค/๊ฐ’์ด ๊ตฌ์„ฑ๋œ ๋…ธ๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์œผ๋ฉด ๊ธฐ๋ณธ ํฌ๋“œ๊ฐ€ VM ์›Œ์ปค ๋…ธ๋“œ์—์„œ ์˜ˆ์•ฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜์˜ ๊ฒฝ์šฐ nodeSelector.requiredForScheduling์€ true๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

runtime

๋‹ค์Œ ํ‘œ์—์„œ๋Š” runtime ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
runtime.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

runtime.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

runtime.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

runtime.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: ์„ค์น˜ ์ด๋ฏธ์ง€ ๋ฆฌ์†Œ์Šค์˜ URL์ž…๋‹ˆ๋‹ค(์˜ˆ: gcr.io/apigee-release/hybrid/apigee-runtime).

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

runtime.livenessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Kubernetes๊ฐ€ ํ™œ์„ฑ ํ”„๋กœ๋ธŒ์˜ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

runtime.livenessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 60

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

runtime.livenessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ์‹คํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

runtime.livenessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

runtime.nodeSelector.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

runtime ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ์„ ํƒ์  ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

nodeSelector ์†์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

runtime.nodeSelector.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

runtime ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

runtime.readinessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

Kubernetes๊ฐ€ ํฌ๋“œ๋ฅผ unready๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

runtime.readinessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 60

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

runtime.readinessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

์ค€๋น„ ํ”„๋กœ๋ธŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

runtime.readinessProbe.successThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจ ํ›„ ์„ฑ๊ณต์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด ์ตœ์†Œ์˜ ์—ฐ์†์ ์ธ ์„ฑ๊ณต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

runtime.readinessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

runtime.replicaCountMax ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 4

์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

runtime.replicaCountMin ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

runtime.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

runtime.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 512Mi(์•„๋ž˜ ์ฐธ๊ณ  ์ฐธ์กฐ)

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„(Mi) ๋˜๋Š” ๊ธฐ๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„(Gi)).

runtime.service.type ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: ClusterIP

์„œ๋น„์Šค ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ClusterIP๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด LoadBalancer์ž…๋‹ˆ๋‹ค.

runtime.targetCPUUtilizationPercentage ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 75

ํฌ๋“œ์˜ ๋Ÿฐํƒ€์ž„ ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋Œ€์ƒ CPU ์‚ฌ์šฉ๋ฅ ์ž…๋‹ˆ๋‹ค. CPU ์‚ฌ์šฉ๋ฅ ์ด replicaCountMax ๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ์ด ํ•„๋“œ์˜ ๊ฐ’์€ ๋Ÿฐํƒ€์ž„์ด ์ž๋™ ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

runtime.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 180

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

synchronizer

๋ฉ”์‹œ์ง€ ํ”„๋กœ์„ธ์„œ๋ฅผ ์ตœ๊ทผ ๋ฐฐํฌ๋œ API ํ”„๋ก์‹œ ๋ฒˆ๋“ค๊ณผ ํ•จ๊ป˜ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋™๊ธฐํ™” ๋‹ด๋‹น์ž๊ฐ€ ๊ด€๋ฆฌ ์˜์—ญ์„ ํด๋งํ•˜๋ฉฐ ์ƒˆ ๊ณ„์•ฝ์ด ๊ฐ์ง€๋˜๋ฉด ๋™๊ธฐํ™” ๋‹ด๋‹น์ž๋Š” ์ด๋ฅผ ๋Ÿฐํƒ€์ž„ ์˜์—ญ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ๋™๊ธฐํ™” ๋‹ด๋‹น์ž๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Cassandra์— ํ™˜๊ฒฝ ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋™๊ธฐํ™” ๋‹ด๋‹น์ž๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” synchronizer ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
synchronizer.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

synchronizer.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

synchronizer.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

synchronizer.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-synchronizer

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

synchronizer.livenessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Kubernetes๊ฐ€ ํ™œ์„ฑ ํ”„๋กœ๋ธŒ์˜ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

synchronizer.livenessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

synchronizer.livenessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ์‹คํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

synchronizer.livenessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

synchronizer.nodeSelector.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

synchronizer ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ์„ ํƒ์  ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

nodeSelector๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

synchronizer.nodeSelector.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

synchronizer ์„œ๋น„์Šค์˜ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ์„ ํƒ์  ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

nodeSelector๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

synchronizer.pollInterval ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 60

๋™๊ธฐํ™” ๋‹ด๋‹น์ž๊ฐ€ ํด๋ง ์ž‘์—… ์‚ฌ์ด์— ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋™๊ธฐํ™” ๋‹ด๋‹น์ž๋Š” Apigee ์ปจํŠธ๋กค ํ”Œ๋ ˆ์ธ ์„œ๋น„์Šค๋ฅผ ํด๋งํ•˜์—ฌ ์ƒˆ ๋Ÿฐํƒ€์ž„ ๊ณ„์•ฝ์„ ๊ฐ์ง€ํ•˜๊ณ  ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

synchronizer.readinessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

Kubernetes๊ฐ€ ํฌ๋“œ๋ฅผ unready๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์ „์— ์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

synchronizer.readinessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

synchronizer.readinessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

์ค€๋น„ ํ”„๋กœ๋ธŒ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

synchronizer.readinessProbe.successThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

์ค€๋น„ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹คํŒจ ํ›„ ์„ฑ๊ณต์œผ๋กœ ๊ฐ„์ฃผ๋˜๋ ค๋ฉด ์ตœ์†Œ์˜ ์—ฐ์†์ ์ธ ์„ฑ๊ณต์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

synchronizer.readinessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

synchronizer.replicaCount ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

์ž๋™ ํ™•์žฅ์˜ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

synchronizer.replicaCountMax ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 4

์ž๋™ ํ™•์žฅ์˜ ์ตœ๋Œ€ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

synchronizer.replicaCountMin ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: 1

์ž๋™ ํ™•์žฅ์˜ ์ตœ์†Œ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

synchronizer.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 100m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

synchronizer.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1Gi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๊ธฐ๊ฐ€๋ฐ”์ดํŠธ ๋‹จ์œ„).

synchronizer.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

Apigee ๋™๊ธฐํ™” ๋‹ด๋‹น์ž ๊ด€๋ฆฌ์ž ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

synchronizer.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

synchronizer.targetCPUUtilizationPercentage ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 75

ํฌ๋“œ์˜ ๋™๊ธฐํ™” ๋‹ด๋‹น์ž ํ”„๋กœ์„ธ์Šค์— ๋Œ€ํ•œ ๋Œ€์ƒ CPU ์‚ฌ์šฉ๋ฅ ์ž…๋‹ˆ๋‹ค. CPU ์‚ฌ์šฉ๋ฅ ์ด replicaCountMax ๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ์ด ํ•„๋“œ์˜ ๊ฐ’์€ ๋™๊ธฐํ™” ๋‹ด๋‹น์ž๊ฐ€ ์ž๋™ ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

synchronizer.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 30

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

udca

(๋ฒ”์šฉ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์—์ด์ „ํŠธ) ๋Ÿฐํƒ€์ž„ ์˜์—ญ์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํฌ๋“œ ๋‚ด์—์„œ ์‹คํ–‰๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋Š” ๋ถ„์„ ๋ฐ ๋ฐฐํฌ ์ƒํƒœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๊ณ  ํ†ตํ•ฉ ๋ถ„์„ ํ”Œ๋žซํผ(UAP)์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ถ„์„ ๋ฐ ๋ฐฐํฌ ์ƒํƒœ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” udca ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
udca.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

udca.fluentd.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

udca.fluentd.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.8.4

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

udca.fluentd.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-stackdriver-logging-agent

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

udca.fluentd.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 500Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ๋ฉ”๋ชจ๋ฆฌ ํ•œ๋„์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

udca.fluentd.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 500m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

udca.fluentd.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 250Mi

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์ž…๋‹ˆ๋‹ค(๋ฉ”๋น„๋ฐ”์ดํŠธ ๋‹จ์œ„).

udca.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

kubelet์ด ํฌ๋“œ์˜ Docker ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • IfNotPresent: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ์œผ๋ฉด ์ƒˆ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Always: ์ด๋ฏธ์ง€๊ฐ€ ์ด๋ฏธ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด๋ฏธ์ง€ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

udca.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1.3.6

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ๋ฒ„์ „ ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

udca.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-udca

์ด ์„œ๋น„์Šค์˜ Docker ์ด๋ฏธ์ง€ ์œ„์น˜์ž…๋‹ˆ๋‹ค.

udca.jvmXms ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 256m

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํฌ๋“œ์˜ JVM์— ๋Œ€ํ•œ ์‹œ์ž‘ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์ž…๋‹ˆ๋‹ค.

udca.jvmXmx ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 256m

๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํฌ๋“œ์˜ JVM์— ๋Œ€ํ•œ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์ž…๋‹ˆ๋‹ค.

udca.livenessProbe.failureThreshold ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 2

์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— Kubernetes๊ฐ€ ํ™œ์„ฑ ํ”„๋กœ๋ธŒ์˜ ์‹คํŒจ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

udca.livenessProbe.initialDelaySeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 0

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์‹œ์ž‘๋˜์–ด ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

udca.livenessProbe.periodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 5

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๋ฅผ ์‹คํ–‰ํ•  ๋นˆ๋„(์ดˆ)๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

udca.livenessProbe.timeoutSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

ํ™œ์„ฑ ํ”„๋กœ๋ธŒ๊ฐ€ ํƒ€์ž„์•„์›ƒ๋œ ํ›„ ๊ฒฝ๊ณผ๋œ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

udca.nodeSelector.key ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

udca ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ํ‚ค์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

udca.nodeSelector.value ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

udca ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค์˜ ์ „์šฉ Kubernetes ๋…ธ๋“œ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋…ธ๋“œ ์„ ํƒ๊ธฐ ๋ผ๋ฒจ ๊ฐ’์ž…๋‹ˆ๋‹ค.

์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

udca.pollingIntervalInSec ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

UDCA๊ฐ€ ํด๋ง ์ž‘์—… ์‚ฌ์ด์— ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. UDCA๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํฌ๋“œ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํด๋งํ•˜์—ฌ ์—…๋กœ๋“œํ•  ์ƒˆ ํŒŒ์ผ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

udca.replicaCountMax ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 4

UDCA ๋ฐฐํฌ์— ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๊ฐ€ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํฌ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. UDCA๋Š” ReplicaSet๋กœ ๊ตฌํ˜„๋˜๋ฏ€๋กœ ํฌ๋“œ๋Š” ๋ณต์ œ๋ณธ์ž…๋‹ˆ๋‹ค.

udca.replicaCountMin ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

UDCA ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ตœ์†Œ ํฌ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. UDCA๋Š” ReplicaSet๋กœ ๊ตฌํ˜„๋˜๋ฏ€๋กœ ํฌ๋“œ๋Š” ๋ณต์ œ๋ณธ์ž…๋‹ˆ๋‹ค.

CPU ์‚ฌ์šฉ๋Ÿ‰์ด udca.targetCPUUtilizationPercentage๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋Š” ํฌ๋“œ ์ˆ˜๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ตœ๋Œ€ udca.replicaCountMax๊นŒ์ง€ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

udca.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 250m

Kubernetes ์ปจํ…Œ์ด๋„ˆ ๋‚ด ๋ฆฌ์†Œ์Šค์˜ ์ •์ƒ ์ž‘๋™์— ํ•„์š”ํ•œ CPU์ž…๋‹ˆ๋‹ค(๋ฐ€๋ฆฌ์ฝ”์–ด ๋‹จ์œ„).

udca.revision ๋„์ž…๋œ ๋ฒ„์ „: 1

๊ธฐ๋ณธ๊ฐ’: v1

์นด๋‚˜๋ฆฌ์•„ ๋ฐฐํฌ๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ผ๋ฒจ์— ์ฑ„์›Œ์ง€๋Š” ์ •์  ๊ฐ’์ž…๋‹ˆ๋‹ค.

udca.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

Apigee ์• ๋„๋ฆฌํ‹ฑ์Šค ์—์ด์ „ํŠธ ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

udca.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

udca.targetCPUUtilizationPercentage ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 75

ReplicaSet์—์„œ ํฌ๋“œ ์ˆ˜๋ฅผ ํ™•์žฅํ•˜๊ธฐ ์œ„ํ•œ CPU ์‚ฌ์šฉ๋Ÿ‰์˜ ๊ธฐ์ค€์ ์ด๋ฉฐ, ์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ CPU ๋ฆฌ์†Œ์Šค์˜ ๋ฐฑ๋ถ„์œจ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋Š” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ํฌ๋“œ์— ์žˆ๋Š” ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ์˜ ํ†ตํ•ฉ ์‚ฌ์šฉ๋ฅ (fluentd ๋ฐ UDCA ๋ชจ๋‘)์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์‚ฌ์šฉ๋ฅ ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

CPU ์‚ฌ์šฉ๋Ÿ‰์ด ์ด ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋ฉด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋Š” ReplicaSet์˜ ํฌ๋“œ ์ˆ˜๋ฅผ ์ตœ๋Œ€ udca.replicaCountMax๊นŒ์ง€ ์ ์ง„์ ์œผ๋กœ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

udca.terminationGracePeriodSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 600

ํฌ๋“œ ์‚ญ์ œ๊ฐ€ ์š”์ฒญ๋˜๋Š” ์‹œ์ ๊ณผ ํฌ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋Š” ์‹œ์  ์‚ฌ์ด์˜ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ์‚ฌ์ „ ์ค‘์ง€ ํ›„ํฌ๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์‹คํ–‰ ์ค‘์ธ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

virtualhosts

virtualhosts ์†์„ฑ์€ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ๋ฅผ ํ†ตํ•ด Apigee Hybrid๋Š” ์ง€์ •๋œ ํ™˜๊ฒฝ ๊ทธ๋ฃน์— ๋Œ€ํ•œ API ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” virtualhosts ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
virtualhosts[].additionalGateways ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

ํŠธ๋ž˜ํ”ฝ์„ ๋ผ์šฐํŒ…ํ•  Istio ๊ฒŒ์ดํŠธ์›จ์ด์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

virtualhosts[].name ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

virtualhosts[].hostAliases[] ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

Deprecated: ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฒ„์ „ 1.4๋ถ€ํ„ฐ ๋Ÿฐํƒ€์ž„ ์˜์—ญ์€ ๊ด€๋ฆฌ ์˜์—ญ์œผ๋กœ๋ถ€ํ„ฐ ์ด ์ •๋ณด๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ฐ ํ™˜๊ฒฝ ๊ทธ๋ฃน ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

virtualhosts[].maxTLSProtocolVersion ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: None

Envoy๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” TLS ํ”„๋กœํ† ์ฝœ์˜ ์ตœ๋Œ€ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. Envoy๋Š” virtualhosts[].minTLSProtocolVersion๊ณผ virtualhosts[].maxTLSProtocolVersion ์ค‘ ์ตœ์ ์˜ TLS ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์„ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์€ ์ˆซ์ž ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

virtualhosts:
  - name: default
    maxTLSProtocolVersion: "1.3"

์—ฌ๊ธฐ์„œ ๋ฒˆํ˜ธ๋Š” #.# ํ˜•์‹์˜ TLS ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์‹œ์—์„œ "1.3"์€ Istio TLS ๋ฒ„์ „ TLSV1_3์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Istio ๋ฌธ์„œ์˜ ServerTLSSettings.TLSProtocol๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

virtualhosts[].minTLSProtocolVersion ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: None

Envoy๊ฐ€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” TLS ํ”„๋กœํ† ์ฝœ์˜ ์ตœ์†Œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. Envoy๋Š” virtualhosts[].minTLSProtocolVersion๊ณผ virtualhosts[].maxTLSProtocolVersion ์ค‘ ์ตœ์ ์˜ TLS ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์„ ์ž๋™์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์€ ์ˆซ์ž ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

virtualhosts:
  - name: default
    minTLSProtocolVersion: "1.2"

์—ฌ๊ธฐ์„œ ๋ฒˆํ˜ธ๋Š” #.# ํ˜•์‹์˜ TLS ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์‹œ์—์„œ 1.2์€ Istio TLS ๋ฒ„์ „ TLSV1_2์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Istio ๋ฌธ์„œ์˜ ServerTLSSettings.TLSProtocol๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

virtualhosts[].selector ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: app: istio-ingressgateway

ํ•„์ˆ˜

๋‹ค๋ฅธ ์ธ๊ทธ๋ ˆ์Šค ์„ ํƒ๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค-๊ฐ’ ์„ ํƒ๊ธฐ-๊ฐ’ ์Œ์ž…๋‹ˆ๋‹ค.

virtualhosts[].sslCertPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์˜ TLS ์ธ์ฆ์„œ ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

virtualhosts[].sslKeyPath ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์˜ TLS ๋น„๊ณต๊ฐœ ํ‚ค ํŒŒ์ผ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

virtualhosts[].sslSecret ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: None

sslCertPath/sslKeyPath ๋˜๋Š” sslSecret ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

TLS ์ธ์ฆ์„œ์™€ ๋น„๊ณต๊ฐœ ํ‚ค๊ฐ€ ํฌํ•จ๋œ Kubernetes ๋ณด์•ˆ ๋น„๋ฐ€์— ์ €์žฅ๋œ ํŒŒ์ผ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. TLS ์ธ์ฆ์„œ์™€ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ:

watcher

watcher ์†์„ฑ์€ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ๊ฐ์‹œ์ž๋Š” ๊ตฌ์„ฑ ๋ณ€๊ฒฝ์„ ๊ฐ์‹œํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Ÿฐํƒ€์ž„ ์˜์—ญ์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—์„œ๋Š” watcher ๊ฐ์ฒด์˜ ์†์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์†์„ฑ ์„ค๋ช…
watcher.annotations ๋„์ž…๋œ ๋ฒ„์ „: 1.5.0

๊ธฐ๋ณธ๊ฐ’: None

ํฌ๋“œ๋ฅผ ์ฃผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์ ์ธ ํ‚ค-๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ปค์Šคํ…€ ์ฃผ์„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

watcher.replicaCountMax ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: 1

์ตœ๋Œ€ ๊ฐ์‹œ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด 1์„ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

watcher.replicaCountMin ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: 1

์ตœ์†Œ ๊ฐ์‹œ ๋ณต์ œ๋ณธ ์ˆ˜์ž…๋‹ˆ๋‹ค.

watcher.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜.

Apigee ๋Ÿฐํƒ€์ž„ ์—์ด์ „ํŠธ ์—ญํ• ์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค.

watcher.serviceAccountRef ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: None

serviceAccountPath ๋˜๋Š” serviceAccountRef ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.