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

์ด ์„น์…˜์—๋Š” 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 ๋ณด์•ˆ ๋น„๋ฐ€ ์ด๋ฆ„์ด๋ฉฐ ๋น„๊ณต๊ฐœ ์ €์žฅ์†Œ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

์ด ์„ค์น˜์— ๋Œ€ํ•œ ๊ณ ์œ  ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค.

์ด ์ธ์Šคํ„ด์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ณ ์œ ํ•œ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์™€ ์ˆซ์ž ์กฐํ•ฉ์„ ์ตœ๋Œ€ 63์ž(์˜๋ฌธ ๊ธฐ์ค€)๊นŒ์ง€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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 ํ”„๋ก์‹œ ๋ฐ ๊ด€๋ จ ๋ฆฌ์†Œ์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋น„์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์กฐ์ง ์ด๋ฆ„์„ ๋งŒ๋“  ํ›„์— ์กฐ์ง ์ด๋ฆ„์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

orgScopedUDCA ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: true

์กฐ์ง ์ˆ˜์ค€์—์„œ ๋ฒ”์šฉ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์—์ด์ „ํŠธ ์„œ๋น„์Šค(UDCA)๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜์—ฌ ๋ถ„์„, ์ˆ˜์ต ์ฐฝ์ถœ, ๋””๋ฒ„๊ทธ(trace)๋ฅผ ์ถ”์ถœํ•˜๊ณ  ์ œ์–ด ์˜์—ญ์— ์žˆ๋Š” ํ†ตํ•ฉ ๋ถ„์„ ํ”Œ๋žซํผ(UAP)์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ๋งˆ๋‹ค ๋ณ„๋„์˜ UDCA ์—์ด์ „ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด orgScopedUDCA: false๋ฅผ ์„ค์ •ํ•œ ๋‹ค์Œ envs[].serviceAccountPaths.udca ๋ฐenvs[].serviceAccountSecretRefs.udca์˜ ๊ฐ’์„ ์„ค์ •ํ•˜์„ธ์š”.

์ฐธ์กฐ: udca

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

๊ธฐ๋ณธ๊ฐ’: v120

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

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

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

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

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

validateOrg ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: true

Apigee ์กฐ์ง ๋ฐ GCP ํ”„๋กœ์ ํŠธ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์—„๊ฒฉํ•˜๊ฒŒ ๊ฒ€์ฆํ•˜๊ณ  ํ™˜๊ฒฝ ๊ทธ๋ฃน์˜ ์กด์žฌ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

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

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

๊ธฐ๋ณธ๊ฐ’: true

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

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

ao

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

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

์†์„ฑ ์„ค๋ช…
ao.args.disableIstioConfigInAPIServer ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: false

Apigee๊ฐ€ ๊ณ ๊ฐ ์„ค์น˜ ASM์— ๋” ์ด์ƒ ๊ตฌ์„ฑ์„ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Hybrid ์„ค์น˜์˜ ๊ฒฝ์šฐ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • Anthos Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„ค์น˜์—๋Š” false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
ao.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.2.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

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

๊ธฐ๋ณธ๊ฐ’: 1.8.8

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

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

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

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

ao.installer.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

ao.installer.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

๊ธฐ๋ณธ๊ฐ’: 1.8.8

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

ao.installer.url ๋„์ž…๋œ ๋ฒ„์ „: 1.3.0

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

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

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.8.8

์ด ์„œ๋น„์Šค์˜ 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

๊ธฐ๋ณธ๊ฐ’: jmxuser

ํ•„์ˆ˜

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

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

์ฐธ์กฐ:

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.8.8

์ด ์„œ๋น„์Šค์˜ 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, AKS, EKS, OpenShift์™€ ๊ฐ™์€ GKE ์™ธ ์„ค์น˜์˜ ๊ธฐ๋ณธ ์‚ฌ๋ก€์— ํ•ด๋‹นํ•˜๋Š” ํฌ๋“œ ๋„คํŠธ์›Œํฌ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ํด๋Ÿฌ์Šคํ„ฐ('์„ฌ(Island) ๋„คํŠธ์›Œํฌ ๋ชจ๋“œ'๋กœ ์‹คํ–‰๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ) ๊ฐ„ ์—ฐ๊ฒฐ์ด ์—†๋Š” ๊ฒฝ์šฐ ๋ฉ€ํ‹ฐ ๋ฆฌ์ „ ์„ค์น˜์—์„œ ํฌ๋“œ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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.8.8

์ด ์„œ๋น„์Šค์˜ 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.8.8

์ด ์„œ๋น„์Šค์˜ 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

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

connectAgent

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

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

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

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

๊ธฐ๋ณธ๊ฐ’: None

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

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.8.8

์ด ์„œ๋น„์Šค์˜ 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)์˜ ๊ธฐ๋ณธ ์บ์‹œ ์•”ํ˜ธํ™” ํ‚ค์ž…๋‹ˆ๋‹ค.

diagnostic

์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ ๋„๊ตฌ์˜ ์„ค์ •์ž…๋‹ˆ๋‹ค.

์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ ์‚ฌ์šฉ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

์†์„ฑ ์„ค๋ช…
diagnostic.bucket ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

์ง„๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  Google Cloud Storage ๋ฒ„ํ‚ท์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์Šคํ† ๋ฆฌ์ง€ ๋ฒ„ํ‚ท ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

diagnostic.container ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•  ํฌ๋“œ ์œ ํ˜•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์€ ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • "apigee-cassandra"๋Š” Cassandra ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. istio-cassandra ํฌ๋“œ๋Š” apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • "apigee-mart-server"๋Š” MART์˜ ์ •๋ณด๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. apigee-mart-server ํฌ๋“œ๋Š” apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • "apigee-runtime"๋Š” ๋ฉ”์‹œ์ง€ ํ”„๋กœ์„ธ์„œ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. apigee-runtime ํฌ๋“œ๋Š” apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • "apigee-synchronizer"๋Š” ๋™๊ธฐํ™” ๋‹ด๋‹น์ž ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. apigee-synchronizer ํฌ๋“œ๋Š” apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • "apigee-udca"๋Š” UDCA ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. apigee-udca ํฌ๋“œ๋Š” apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • "apigee-watcher"๋Š” ๊ฐ์‹œ์ž ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. apigee-watcher ํฌ๋“œ๋Š” apigee ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  • "istio-proxy"๋Š” Istio ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. istio-proxy ํฌ๋“œ๋Š” istio-system ๋„ค์ž„์ŠคํŽ˜์ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
diagnostic.loggingDetails.logDuration ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

์ง„๋‹จ ์ˆ˜์ง‘ ์ž‘์—…์ด 'LOGGING'์ธ ๊ฒฝ์šฐ ํ•„์ˆ˜(operation: "LOGGING"์œผ๋กœ ์„ค์ •)

์ˆ˜์ง‘๋œ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๊ฐ’์€ 30000์ž…๋‹ˆ๋‹ค.

diagnostic.operation ์ฐธ์กฐ

diagnostic.loggingDetails.loggerNames[] ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

์ง„๋‹จ ์ˆ˜์ง‘ ์ž‘์—…์ด 'LOGGING'์ธ ๊ฒฝ์šฐ ํ•„์ˆ˜(operation: "LOGGING"์œผ๋กœ ์„ค์ •)

๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•  ๋กœ๊ฑฐ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Apigee Hybrid ๋ฒ„์ „ 1.6.0์˜ ๊ฒฝ์šฐ ALL๋งŒ ์ง€์›๋˜์–ด, ๋ชจ๋“  ๋กœ๊ฑฐ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

diagnostic:
 loggingDetails:
   loggerNames:
   - ALL
diagnostic.loggingDetails.logLevel ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

์ง„๋‹จ ์ˆ˜์ง‘ ์ž‘์—…์ด 'LOGGING'์ธ ๊ฒฝ์šฐ ํ•„์ˆ˜(operation: "LOGGING"์œผ๋กœ ์„ค์ •)

์ˆ˜์ง‘ํ•  ๋กœ๊น… ๋ฐ์ดํ„ฐ์˜ ์„ธ๋ถ„์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. Apigee Hybrid 1.6์—์„œ๋Š” FINE๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

diagnostic.namespace ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ ์ค‘์ธ ํฌ๋“œ๊ฐ€ ์žˆ๋Š” Kubernetes ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ž…๋‹ˆ๋‹ค. ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” diagnostic.container๋กœ ์ง€์ •ํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์— ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

apigee:

  • apigee-runtime
  • apigee-synchronizer
  • apigee-udca
  • apigee-watcher
  • apigee-cassandra
  • apigee-mart-server

istio-system:

  • istio-proxy
diagnostic.operation ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

๋ชจ๋“  ํ†ต๊ณ„ ๋˜๋Š” ๋กœ๊ทธ๋งŒ ์ˆ˜์ง‘ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

diagnostic.podNames[] ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” Kubernetes ํฌ๋“œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

diagnostic:
 podNames:
 - apigee-runtime-eng-hybrid-example-3b2ebf3-150-8vfoj-2wcjn
 - apigee-runtime-eng-hybrid-example-3b2ebf3-150-8vfoj-6xzn2
diagnostic.serviceAccountPath ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

์Šคํ† ๋ฆฌ์ง€ ๊ด€๋ฆฌ์ž ์—ญํ• (roles/storage.admin)์ด ์žˆ๋Š” ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค ํŒŒ์ผ(.json)์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ Apigee ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„ค์น˜์—์„œ๋Š” apigee-cassandra ์„œ๋น„์Šค ๊ณ„์ •์ž…๋‹ˆ๋‹ค.

์„œ๋น„์Šค ๊ณ„์ • ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

diagnostic.tcpDumpDetails.maxMsgs ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

diagnostic.tcpDumpDetails๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ diagnostic.tcpDumpDetails.maxMsgs ๋˜๋Š” diagnostic.tcpDumpDetails.timeoutInSeconds ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

์ˆ˜์ง‘ํ•  tcpDump ๋ฉ”์‹œ์ง€์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Apigee์—์„œ๋Š” ์ตœ๋Œ“๊ฐ’์„ 1000๋ณด๋‹ค ํฌ์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

diagnostic.tcpDumpDetails.timeoutInSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

diagnostic.tcpDumpDetails๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ diagnostic.tcpDumpDetails.maxMsgs ๋˜๋Š” diagnostic.tcpDumpDetails.timeoutInSeconds ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.

tcpDump๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„(์ดˆ)์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

diagnostic.threadDumpDetails.delayInSeconds ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

diagnostic.threadDumpDetails๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ diagnostic.threadDumpDetails.delayInSeconds ๋ฐ diagnostic.threadDumpDetails.iterations ๋ชจ๋‘ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์Šค๋ ˆ๋“œ ๋คํ”„๋ฅผ ์ˆ˜์ง‘ํ•  ๋•Œ์˜ ์ง€์—ฐ ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

diagnostic.threadDumpDetails.iterations ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: None

diagnostic.threadDumpDetails๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ diagnostic.threadDumpDetails.delayInSeconds ๋ฐ diagnostic.threadDumpDetails.iterations ๋ชจ๋‘ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ง‘ํ•  jstack ์Šค๋ ˆ๋“œ ๋คํ”„ ๋ฐ˜๋ณต ์ˆ˜์ž…๋‹ˆ๋‹ค.

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-runtime ์„œ๋น„์Šค ๊ณ„์ •)์ด ์žˆ๋Š” Google ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค์˜ ํŒŒ์ผ ๊ฒฝ๋กœ ์„œ๋น„์Šค ๊ณ„์ •์˜ ๊ธฐ๋ณธ ์ด๋ฆ„๊ณผ ํ• ๋‹น๋œ ์—ญํ• ์˜ ์„œ๋น„์Šค ๊ณ„์ • ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

๊ธฐ๋ณธ๊ฐ’: None

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

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

๊ธฐ๋ณธ๊ฐ’: None

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

orgScopedUDCA๊ฐ€ false๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์ด ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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 ์„œ๋น„์Šค ๊ณ„์ • ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด์•ˆ ๋น„๋ฐ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

orgScopedUDCA๊ฐ€ false๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์ด ์†์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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 ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ”„๋กœ์ ํŠธ ๋ชจ๋‘์— ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

gcp.workloadIdentityEnabled ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’:false

์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์›Œํฌ๋กœ๋“œ ์•„์ด๋ดํ‹ฐํ‹ฐ๋Š” GKE ํด๋Ÿฌ์Šคํ„ฐ์˜ ์›Œํฌ๋กœ๋“œ๊ฐ€ Google Cloud ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด Identity and Access Management(IAM) ์„œ๋น„์Šค ๊ณ„์ •์„ ๊ฐ€์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

workloadIdentityEnabled๊ฐ€ false(๊ธฐ๋ณธ๊ฐ’)์ด๋ฉด Apigee๊ฐ€ ๊ฐ Apigee ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•ด IAM ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ๊ณ„์ • ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

workloadIdentityEnabled๊ฐ€ true์ด๋ฉด Apigee๊ฐ€ IAM ์„œ๋น„์Šค ๊ณ„์ • ๋Œ€์‹  Kubernetes ์„œ๋น„์Šค ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ ๊ตฌ์„ฑ ์†์„ฑ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

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

๊ธฐ๋ณธ๊ฐ’: HTTPS

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

ingressGateways

Apigee Hybrid์šฉ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

์†์„ฑ ์„ค๋ช…
ingressGateways[].image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

ingressGateways[].image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: 1.11.2-asm.17

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

ingressGateways[].image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

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

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

ingressGateways[].name ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: None

ํ•„์ˆ˜

์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์„œ๋น„์Šค๋Š” ์ด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ดํŠธ์›จ์ด๋กœ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„์€ ๋‹ค์Œ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์ตœ๋Œ€ ๊ธธ์ด๋Š” 17์ž(์˜๋ฌธ ๊ธฐ์ค€)์ž…๋‹ˆ๋‹ค.
  • ์†Œ๋ฌธ์ž ์˜์ˆซ์ž ๋ฌธ์ž, '-' ๋˜๋Š” '.'๋งŒ ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜์ˆซ์ž ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜์ˆซ์ž ๋ฌธ์ž๋กœ ๋๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ Kubernetes ๋ฌธ์„œ์˜ DNS ํ•˜์œ„ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ingressGateways[].resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

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

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

ingressGateways[].resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

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

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

ingressGateways[].resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

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

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

ingressGateways[].resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

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

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

ingressGateways[].replicaCountMax ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: 10

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ์—์„œ ์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์— ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํฌ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

ingressGateways[].replicaCountMin ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: 2

์ž๋™ ํ™•์žฅ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์˜ ์ตœ์†Œ ํฌ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค.

ingressGateways[].svcAnnotations ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: None

์ฃผ์„์„ ์ง€์›ํ•˜๋Š” ํ”Œ๋žซํผ์—์„œ ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์„ ํƒ์  ํ‚ค/๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

intressGateways:
  svcAnnotations:
    networking.gke.io/load-balancer-type: "Internal"
ingressGateways[].svcLoadBalancerIP ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: None

๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ IP ์ฃผ์†Œ ์ง€์ •์„ ์ง€์›ํ•˜๋Š” ํ”Œ๋žซํผ์—์„œ ์ด IP ์ฃผ์†Œ๋กœ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ IP ์ฃผ์†Œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†๋Š” ํ”Œ๋žซํผ์—์„œ ์ด ์†์„ฑ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

ingressGateways[].svcType ๋„์ž…๋œ ๋ฒ„์ „: 1.8.1

๊ธฐ๋ณธ๊ฐ’: LoadBalancer

์ธ๊ทธ๋ ˆ์Šค ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ k8s ์„œ๋น„์Šค ์œ ํ˜•์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์ƒ์„ฑ์„ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๊ฐ’์„ ClusterIP๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ClusterIP
  • LoadBalancer

istiod

Apigee ์ธ๊ทธ๋ ˆ์Šค๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

์†์„ฑ ์„ค๋ช…
istiod.forwardClientCertDetails ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.8.7

๊ธฐ๋ณธ๊ฐ’: SANITIZE_SET

Envoy ํ”„๋ก์‹œ(Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์šฉ)๊ฐ€ x-forwarded-client-cert(XFCC) HTTP ํ—ค๋”๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•œ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • SANITIZE_SET ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์ด mTLS์ด๋ฉด XFCC ํ—ค๋”๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์ •๋ณด๋กœ ์žฌ์„ค์ •ํ•˜๊ณ  ๋‹ค์Œ ํ™‰์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  • FORWARD_ONLY ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์ด mTLS(์ƒํ˜ธ TLS)์ธ ๊ฒฝ์šฐ ์š”์ฒญ์˜ XFCC ํ—ค๋”๋งŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • APPEND_FORWARD ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์ด mTLS์ธ ๊ฒฝ์šฐ ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์ •๋ณด๋ฅผ ์š”์ฒญ์˜ XFCC ํ—ค๋”์— ์ถ”๊ฐ€ํ•˜์—ฌ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • SANITIZE(๊ธฐ๋ณธ๊ฐ’) XFCC ํ—ค๋”๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ALWAYS_FORWARD_ONLY ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์ด mTLS์ธ์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์š”์ฒญ์˜ XFCC ํ—ค๋”๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐ’์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Enum extensions.filters.network.http_connection_manager.v3.HttpConnectionManager.ForwardClientCertDetails์˜ Envoy ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋ฅผ ์„ค์น˜ํ•œ ํ›„ ์ด ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ apigeectl init๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ์šฉํ•œ ๋‹ค์Œ Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด ํฌ๋“œ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

istiod.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

istiod.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

๊ธฐ๋ณธ๊ฐ’: 1.12.9-asm.3

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

istiod.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.8.0

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

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

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.EnvVars ๊ธฐ๋ณธ ๋„์ž…๋œ ๋ฒ„์ „: 1.8.5

๊ธฐ๋ณธ๊ฐ’: None

HTTP ํ”„๋ก์‹œ๋ฅผ ํ†ตํ•ด ๋ผ์šฐํŒ…๋˜์ง€ ์•Š๋Š” ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•ด URL์„ ์ง€์ •ํ•˜๋Š” NO_PROXY Fluent Bit ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. NO_PROXY ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ ํ˜•์‹์œผ๋กœ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฌธ์ž์—ด๋กœ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

logger:
...
EnvVars:
  NO_PROXY: '<comma-separated-values>'

์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

EnvVars:
  NO_PROXY: 'kubernetes.default.svc,oauth2.googleapis.com,logging.googleapis.com'

HTTP ์ „๋‹ฌ ํ”„๋ก์‹œ๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ์„ ํƒ์ ์œผ๋กœ EnvVars: NO_PROXY๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Fluent Bit ๋ฌธ์„œ์˜ NO_PROXY๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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.9.9

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

logger.image.url ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

์ด ์„œ๋น„์Šค์˜ 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.cpu ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

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

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

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

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

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.8.8

์ด ์„œ๋น„์Šค์˜ 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.adapter.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.8.1

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

metrics.adapter.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.8.1

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

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

metrics.adapter.url ๋„์ž…๋œ ๋ฒ„์ „: 1.8.1

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

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

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.appStackdriverExporter.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

metrics.appStackdriverExporter.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

metrics.appStackdriverExporter.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

metrics.appStackdriverExporter.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

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.9.2

์ด ์„œ๋น„์Šค์˜ 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.proxyStackdriverExporter.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

metrics.proxyStackdriverExporter.resources.requests.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

metrics.proxyStackdriverExporter.resources.limits.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

metrics.proxyStackdriverExporter.resources.limits.memory ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

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

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

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

๊ธฐ๋ณธ๊ฐ’: None

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

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

๊ธฐ๋ณธ๊ฐ’: 9091

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

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

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

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

๊ธฐ๋ณธ๊ฐ’: 0.9.0

์ด ์„œ๋น„์Šค์˜ 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

Deprecated: Hybrid ๋ฒ„์ „ 1.8๋ถ€ํ„ฐ metrics:stackdriverExporter๊ฐ€ metrics:appStackdriverExporter ๋ฐ metrics:proxyStackdriverExporter๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

Deprecated: Hybrid ๋ฒ„์ „ 1.8๋ถ€ํ„ฐ metrics:stackdriverExporter๊ฐ€ metrics:appStackdriverExporter ๋ฐ metrics:proxyStackdriverExporter๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

Deprecated: Hybrid ๋ฒ„์ „ 1.8๋ถ€ํ„ฐ metrics:stackdriverExporter๊ฐ€ metrics:appStackdriverExporter ๋ฐ metrics:proxyStackdriverExporter๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

Deprecated: Hybrid ๋ฒ„์ „ 1.8๋ถ€ํ„ฐ metrics:stackdriverExporter๊ฐ€ metrics:appStackdriverExporter ๋ฐ metrics:proxyStackdriverExporter๋กœ ๋Œ€์ฒด๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

๊ธฐ๋ณธ๊ฐ’: 300

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

mintTaskScheduler

mintTaskScheduler๋Š” ๋ฐ˜๋ณต ์š”๊ธˆ ๊ณ„์‚ฐ๊ณผ ๊ฐ™์€ ์ˆ˜์ต ์ฐฝ์ถœ ์ž‘์—…์„ ์ •๊ธฐ์ ์œผ๋กœ ์˜ˆ์•ฝํ•˜๋Š” ํฌ๋ก  ์ž‘์—…์ž…๋‹ˆ๋‹ค.

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

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

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

mintTaskScheduler.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

๊ธฐ๋ณธ๊ฐ’: 1.8.8

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

mintTaskScheduler.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.7.0

๊ธฐ๋ณธ๊ฐ’: gcr.io/apigee-release/hybrid/apigee-mint-task-scheduler

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

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๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

redis

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

์†์„ฑ ์„ค๋ช…
redis.auth.password ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: iloveapis123

ํ•„์ˆ˜

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

redis.envoy.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

redis.envoy.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: v1.22.2

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

redis.envoy.url ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

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

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

redis.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

redis.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’:

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

redis.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

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

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

redis.replicaCount ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

๊ธฐ๋ณธ๊ฐ’: 2

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

redis.resources.requests.cpu ๋„์ž…๋œ ๋ฒ„์ „: 1.6.0

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

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

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.8.8

์ด ์„œ๋น„์Šค์˜ 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.8.8

์ด ์„œ๋น„์Šค์˜ 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

Deprecated: ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฒ„์ „ 1.2๋ถ€ํ„ฐ synchronizer.replicaCountMax ๋ฐ synchronizer.replicaCountMin์œผ๋กœ ๋™๊ธฐํ™” ๋‹ด๋‹น์ž ๋ณต์ œ๋ณธ ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

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.9

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

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

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

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

udca.fluentd.resources.limits.cpu ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

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

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.8.8

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

udca.image.url ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

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

udca.jvmXms ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

Deprecated: Hybrid ๋ฒ„์ „ 1.8๋ถ€ํ„ฐ udca.jvmXms๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

udca.jvmXmx ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

Deprecated: Hybrid ๋ฒ„์ „ 1.8๋ถ€ํ„ฐ udca.jvmXmx๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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๋กœ ๊ตฌํ˜„๋˜๋ฏ€๋กœ ํฌ๋“œ๋Š” ๋ณต์ œ๋ณธ์ž…๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ๋‹น ์ตœ๋Œ€ ๋ณต์ œ๋ณธ ์ˆ˜์— Apigee ์กฐ์ง ๋‚ด ํ™˜๊ฒฝ ์ˆ˜๋ฅผ ๊ณฑํ•œ udca.replicaCountMax๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ™˜๊ฒฝ๋‹น ์ตœ๋Œ€ 4๊ฐœ์˜ ๋ณต์ œ๋ณธ์„ ํ—ˆ์šฉํ•˜๊ณ  ํ™˜๊ฒฝ์ด 3๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ udca.replicaCountMax: 12๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

udca.replicaCountMin ๊ธฐ๋ณธ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

๊ธฐ๋ณธ๊ฐ’: 1

UDCA ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์ตœ์†Œ ํฌ๋“œ ์ˆ˜์ž…๋‹ˆ๋‹ค. UDCA๋Š” ReplicaSet๋กœ ๊ตฌํ˜„๋˜๋ฏ€๋กœ ํฌ๋“œ๋Š” ๋ณต์ œ๋ณธ์ž…๋‹ˆ๋‹ค.

CPU ์‚ฌ์šฉ๋Ÿ‰์ด udca.targetCPUUtilizationPercentage๋ฅผ ์ดˆ๊ณผํ•˜๋ฉด ํ•˜์ด๋ธŒ๋ฆฌ๋“œ๋Š” ํฌ๋“œ ์ˆ˜๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ตœ๋Œ€ udca.replicaCountMax๊นŒ์ง€ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

udca.resources.limits.cpu ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

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

udca.resources.limits.memory ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

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

udca.resources.requests.cpu ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

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

udca.resources.requests.memory ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.0.0

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

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

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

๊ธฐ๋ณธ๊ฐ’: 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[].cipherSuites[] ๊ณ ๊ธ‰ ๋„์ž…๋œ ๋ฒ„์ „: 1.8.7

๊ธฐ๋ณธ๊ฐ’: None

TLS ์•”ํ˜ธํ™” ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. Envoy์˜ Boring FIPS ๋นŒ๋“œ ๋ฌธ์„œ์—์„œ ์ง€์›๋˜๋Š” ์ „์ฒด ์•”ํ˜ธํ™” ๋ชฉ๋ก์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋นˆ ๊ฐ’์€ Envoy์˜ Boring FIPS ๋นŒ๋“œ์—์„œ ์ง€์›๋˜๋Š” ์•”ํ˜ธํ™” ์Šค์œ„ํŠธ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด TLS v.1.1์„ ์ง€์›ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

virtualhosts:
- name: ENV_GROUP_NAME
  minTLSProtocolVersion: "1.1"
  cipherSuites:
  - "ECDHE-ECDSA-AES128-GCM-SHA256"
  - "ECDHE-RSA-AES128-GCM-SHA256"
  - "ECDHE-ECDSA-AES256-GCM-SHA384"
  - "ECDHE-RSA-AES256-GCM-SHA384"
  - "ECDHE-ECDSA-CHACHA20-POLY1305"
  - "ECDHE-RSA-CHACHA20-POLY1305"
  - "ECDHE-ECDSA-AES128-SHA"
  - "ECDHE-RSA-AES128-SHA"
  - "ECDHE-ECDSA-AES256-SHA"
  - "ECDHE-RSA-AES256-SHA"
  ...
      
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: apigee-ingressgateway

ํ•„์ˆ˜

๋‹ค๋ฅธ ์ธ๊ทธ๋ ˆ์Šค ์„ ํƒ๊ธฐ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ‚ค-๊ฐ’ ์„ ํƒ๊ธฐ-๊ฐ’ ์Œ์ž…๋‹ˆ๋‹ค.

  • apigee-ingressgateway: Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Apigee Hybrid ์„ค์น˜์šฉ์ž…๋‹ˆ๋‹ค.
  • istio-ingressgateway: Anthos Service Mesh๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Apigee Hybrid ์„ค์น˜์šฉ์ž…๋‹ˆ๋‹ค.

์„ ํƒ๊ธฐ ๋ผ๋ฒจ์ด ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ๊ตฌ์„ฑ์ด Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด์™€ ๊ณ ๊ฐ์ด ์„ค์น˜ํ•œ Anthos Service Mesh์— ๋ชจ๋‘ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

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.image.pullPolicy ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: IfNotPresent

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

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

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

watcher.image.tag ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

๊ธฐ๋ณธ๊ฐ’: 1.8.8

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

watcher.image.url ๋„์ž…๋œ ๋ฒ„์ „: 1.4.0

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

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

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 ์ค‘ ํ•˜๋‚˜๊ฐ€ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.