๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ ๊ด€๋ฆฌ

์ด ์ฃผ์ œ์—์„œ๋Š” Apigee Hybrid ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ ๋ชฉ๋ก์€ ๋Ÿฐํƒ€์ž„ ์„œ๋น„์Šค ๊ตฌ์„ฑ ๊ฐœ์š”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์žฌ์ •์˜ ํŒŒ์ผ ์ •๋ณด

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

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„ค์น˜ ๋‹จ๊ณ„๋Š” ์žฌ์ •์˜ ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์„ ๋‚˜์ค‘์— ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋งŒ๋“  ์žฌ์ •์˜ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  ๋‹ค์‹œ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ๋ณ€๊ฒฝ

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์žฌ์ •์˜ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๊ณ  Helm์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ์š”์†Œ์— ํ•ด๋‹นํ•˜๋Š” ์ฐจํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฐจํŠธ๋Š” ์–ด๋–ค ์ฐจํŠธ๊ฐ€ ์–ด๋–ค Apigee Hybrid ๊ตฌ์„ฑ์š”์†Œ์™€ ์ผ์น˜ํ•˜๋Š”์ง€ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋ฒ”์œ„๊ตฌ์„ฑ์š”์†ŒHelm ์ฐจํŠธ
Apigee ์—ฐ์‚ฐ์ž Apigee ์—ฐ์‚ฐ์ž apigee-operator
์Šคํ† ๋ฆฌ์ง€ Cassandra apigee-datastore
์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ Redis apigee-redis
๋ณด๊ณ  Logger
์ธก์ •ํ•ญ๋ชฉ
apigee-telemetry
์ธ๊ทธ๋ ˆ์Šค Apigee ์ธ๊ทธ๋ ˆ์Šค ๊ฒŒ์ดํŠธ์›จ์ด apigee-ingress-manager
์กฐ์ง Apigee Connect ์—์ด์ „ํŠธ
MART
UDCA
Watcher
apigee-org
ํ™˜๊ฒฝ ๋Ÿฐํƒ€์ž„
๋™๊ธฐํ™” ๋‹ด๋‹น์ž
apigee-env
ํ™˜๊ฒฝ ๊ทธ๋ฃน virtualhost apigee-virtualhost

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฉ”์‹œ์ง€ ํ”„๋กœ์„ธ์„œ์—์„œ ๋ณต์ œ๋ณธ ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. OVERRIDES.yaml ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„์„ ํด๋Ÿฌ์Šคํ„ฐ์— ์„ค์น˜ํ•  ๋•Œ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ์žฌ์ •์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ํŒŒ์ผ์—์„œ runtime ์š”์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 1
      replicaCountMax: 2
    ...
  3. ํ•„์š”์— ๋”ฐ๋ผ ๋ณต์ œ๋ณธ ์ˆ˜ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    runtime:
      nodeSelector:
        key: cloud.google.com/gke-nodepool
        value: apigee-runtime
      replicaCountMin: 2
      replicaCountMax: 20
    ...
  4. ํ™˜๊ฒฝ์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  5. ํ•œ ๋ฒˆ์— ํ™˜๊ฒฝ ํ•˜๋‚˜๋งŒ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. --set env=ENV_NAME์œผ๋กœ ํ™˜๊ฒฝ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ ์‹คํ–‰์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE \
    --dry-run=server
    
    • ENV_RELEASE_NAME์€ ์ด์ „์— apigee-env ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Hybrid v1.10์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ apigee-env-ENV_NAME์ž…๋‹ˆ๋‹ค. Hybrid v1.11 ์ด์ƒ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ENV_NAME์ž…๋‹ˆ๋‹ค.
    • ENV_NAME์€ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ํ™˜๊ฒฝ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • OVERRIDES_FILE์€ v.1.13.3์˜ ์ƒˆ๋กœ์šด ์žฌ์ •์˜ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  6. ์ฐจํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.
  7. helm upgrade ENV_RELEASE_NAME apigee-env/ \
    --install \
    --namespace APIGEE_NAMESPACE \
    --set env=ENV_NAME \
    -f OVERRIDES_FILE
    
  8. ํ•ด๋‹น ํ™˜๊ฒฝ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  9. kubectl -n APIGEE_NAMESPACE get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d

์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์„ฑ ์†์„ฑ

๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ์กฐ์—๋Š” ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ๋งŒ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ์— ์—†๋Š” ์†์„ฑ์„ ์ˆ˜์ •ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์ฐธ์กฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ๋Š” ์  ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์€ ์ตœ์ƒ์œ„ ์š”์†Œ ์ด๋ฆ„ ๋‹ค์Œ์— ์†์„ฑ ๋ฐ ํ•˜์œ„ ์†์„ฑ์ด ์˜ต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ao.image.pullPolicy

์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์†์„ฑ์ด ์ ์ ˆํ•œ YAML ํ˜•์‹์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์—์„œ ์ตœ์ƒ์œ„ ao ์š”์†Œ๋Š” ์™ผ์ชฝ ๋“ค์—ฌ์“ฐ๊ธฐ ๋˜๊ณ  ํ•˜์œ„ ์š”์†Œ ์†์„ฑ์€ ๊ทธ ์•„๋ž˜์— ๋“ค์—ฌ์“ฐ๊ธฐ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ YAML์—๋Š” ๊ฐ ์š”์†Œ์™€ ํ•˜์œ„ ์š”์†Œ์˜ ๋์— ์ฝœ๋ก ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ao.image.pullPolicy ์†์„ฑ์„ Always๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ์ด YAML ์Šคํƒ ์ž๋ฅผ ์ฐพ์•„์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํ•˜์„ธ์š”.

ao:
  image:
    pullPolicy: Always

๋‹ค๋ฅธ ์˜ˆ์‹œ์—์„œ๋Š” cassandra.auth.admin.password ์†์„ฑ(๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์— ๋‚˜์™€ ์žˆ์Œ)์ด Cassandra ๊ด€๋ฆฌ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ ๋‹ค์Œ YAML์„ ์ฐพ์•„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

cassandra:
  auth:
    admin:
      password: abc123

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

์‚ฌ์ „ ์ •์˜๋œ ์˜ˆ์‹œ ์žฌ์ •์˜ ํŒŒ์ผ ์‚ฌ์šฉ

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

๊ตฌ์„ฑ ๊ธฐ๋ณธ๊ฐ’ ์ •๋ณด

Apigee๋Š” HYBRID_ROOT_DIR/config/values.yaml ํŒŒ์ผ์—์„œ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์š”์†Œ ๊ตฌ์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์žฌ์ •์˜ ํŒŒ์ผ์€ values.yaml๊ณผ ๋™์ผํ•œ YAML ๊ตฌ์กฐ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์žฌ์ •์˜ ํŒŒ์ผ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ values.yaml์— ์žˆ๋Š” ๊ตฌ์„ฑ ์†์„ฑ์˜ ํ•˜์œ„ ์ง‘ํ•ฉ๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์†์„ฑ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•˜๋ฉด ์žฌ์ •์˜๊ฐ€ ๊ธฐ๋ณธ๊ฐ’๊ณผ ๋ณ‘ํ•ฉ๋˜์–ด ์™„์ „ํ•œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ณ‘ํ•ฉ๋œ ๊ตฌ์„ฑ ํ…Œ์ŠคํŠธ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ์ฝ”๋“œ๋Š” values.yaml์— ์žˆ๋Š” mart ๊ตฌ์„ฑ์š”์†Œ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ฐ’์€ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์ง€๋งŒ sslCertPath ๋ฐ sslKeyPath์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ฐ’์€ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์„ค์น˜ ๋‹จ๊ณ„์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์žฌ์ •์˜ ํŒŒ์ผ์— ์ด๋Ÿฌํ•œ ๋ˆ„๋ฝ๋œ ๊ฐ’์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ๋ฅผ ํ™•์ธํ•˜์—ฌ ๊ธฐ๋ณธ๊ฐ’์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

...
mart:
  replicaCountMin: 2
  replicaCountMax: 4
  targetCPUUtilizationPercentage: 75
  terminationGracePeriodSeconds: 30
  sslCertPath:
  sslKeyPath:
  hostAlias:
  nodeSelector:
    key:
    value:
  revision: blue
  image:
    url: "gcr.io/apigee-release/hybrid/apigee-mart-server"
    tag: "1.13.3"
    pullPolicy: IfNotPresent
  resources:
    requests:
      cpu: 500m
      memory: 512Mi
  initCheckCF:
    resources:
      requests:
        cpu: 10m
  livenessProbe:
    timeoutSeconds: 1
    failureThreshold: 12
    periodSeconds: 5
    initialDelaySeconds: 15
  readinessProbe:
    timeoutSeconds: 1
    successThreshold: 1
    failureThreshold: 2
    periodSeconds: 5
    initialDelaySeconds: 15
  metricsURL: "/v1/server/metrics"
  cwcAppend: |
...

๊ตฌ์„ฑ์š”์†Œ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ˆ˜์ •ํ•˜๊ณ  ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๊ตฌ์„ฑ์š”์†Œ ์žฌ์ •์˜ ํŒŒ์ผ์— ์•„์ง ์—†๋Š” ๊ฒฝ์šฐ YAML์„ values.yaml์—์„œ ์žฌ์ •์˜ ํŒŒ์ผ์— ๋ณต์‚ฌํ•˜์—ฌ ์ˆ˜์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ์ฃผ์„

์ฃผ์„์€ Apigee Hybrid Kubernetes pod์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค/๊ฐ’ ๋งต์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ์— ๋‚˜์—ด๋œ ๋‹ค์Œ ์†์„ฑ์— ๋Œ€ํ•˜์—ฌ ์ปค์Šคํ…€ ์ฃผ์„์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๊ฐ ๊ตฌ์„ฑ์š”์†Œ์˜ OVERRIDES.yaml ํŒŒ์ผ์— ์Šคํƒ ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” runtime ํฌ๋“œ์—์„œ ์ฃผ์„์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

runtime:
  annotations:
    businessunit: "bu1"

๋ณ‘ํ•ฉ๋œ ๊ตฌ์„ฑ ํ…Œ์ŠคํŠธ

--dry-run ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹ค์ œ๋กœ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ๋ณ‘ํ•ฉ๋œ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•  ๋‚ด์šฉ์„ ์ •ํ™•ํžˆ ๋ณด์—ฌ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜ ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ํด๋Ÿฌ์Šคํ„ฐ์— ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์†Œ์Šค ์ œ์–ด์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

kubectl apply -k  apigee-operator/etc/crds/default/
      
helm upgrade operator apigee-operator/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run=server
helm upgrade ingress-manager apigee-ingress-manager/ /
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  -f OVERRIDES_FILE.yaml \
  --dry-run=server

ํ•„์š”์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์žฌ์ •์˜ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

์žฌ์ •์˜ ํŒŒ์ผ์€ ์›ํ•˜๋Š” ๋งŒํผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ฐ ํŒŒ์ผ์—๋Š” ํŠน์ • ์š”๊ตฌ์‚ฌํ•ญ์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ”„๋กœ๋•์…˜์šฉ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ์žฌ์ •์˜ ํŒŒ์ผ๊ณผ ํ…Œ์ŠคํŠธ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์žฌ์ •์˜ ํŒŒ์ผ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ํŒŒ์ผ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

helm upgrade test-1-env apigee-env/ \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set env=test-1-env \
  -f test-1-env-overrides.yaml

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ „์šฉ ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ ์‚ญ์ œ

๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ์—๋Š” synchronizer, mart, runtime, cassandra, udca๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ „์šฉ ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด helm delete ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ์žฌ์ •์˜ ํŒŒ์ผ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

Helm์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๊ฐœ๋ณ„์ ์œผ๋กœ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด cassandra ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

helm -n APIGEE_NAMESPACE delete datastore

์œ„ ์˜ˆ์‹œ์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ '๋ฐ์ดํ„ฐ ์Šคํ† ์–ด'๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ์ด๋ฆ„์„ ์ œ๊ณตํ•˜์—ฌ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด helm install my-cassandra-storage apigee-datastore/๋กœ apigee-datastore ์ฐจํŠธ๋ฅผ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

helm delete -n apigee my-cassandra-storage

ํŠน์ • ๊ตฌ์„ฑ์š”์†Œ(์ด ์˜ˆ์‹œ์˜ ํ™˜๊ฒฝ ๊ทธ๋ฃน)๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

helm upgrade ENV_GROUP apigee-virtualhost/ \
  --install \
  --namespace APIGEE_NAMESPACE \
  --atomic \
  --set envgroup=ENV_GROUP_NAME \
  -f OVERRIDES_FILE.yaml