apigeectl

apigeectl์€ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ Apigee Hybrid๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์ค„ ์ธํ„ฐํŽ˜์ด์Šค(CLI)์ž…๋‹ˆ๋‹ค. apigeectl ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ apigeectl ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

apigeectl ์ ์šฉ ๋ฒ”์œ„

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

๋ฒ”์œ„๊ตฌ์„ฑ์š”์†Œapigeectl ํ”Œ๋ž˜๊ทธ
์Šคํ† ๋ฆฌ์ง€ Cassandra โ€‘โ€‘datastore
์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ Redis โ€‘โ€‘redis
ํ™˜๊ฒฝ ๋Ÿฐํƒ€์ž„
๋™๊ธฐํ™” ๋‹ด๋‹น์ž
UDCA
โ€‘โ€‘allโ€‘envs
โ€‘โ€‘env
Organization Apigee Connect ์—์ด์ „ํŠธ
MART
Watcher
โ€‘โ€‘org
๋ณด๊ณ  Logger
์ธก์ •ํ•ญ๋ชฉ
โ€‘โ€‘telemetry

apigeectl ๊ตฌ๋ฌธ

apigeectl [command] [flags]

๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • command: ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋ช…๋ น์–ด ๋ชฉ๋ก์€ apigeectl ๋ช…๋ น์–ด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

  • flags: ๋ช…๋ น์–ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ”Œ๋ž˜๊ทธ ๋ชฉ๋ก์€ apigeectl ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

apigeectl ๋ช…๋ น์–ด

๋‹ค์Œ ํ‘œ์—๋Š” apigeectl ๋ช…๋ น์–ด๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์–ด ์„ค๋ช…
apply

Apigee Hybrid ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ์š”์†Œ ๊ตฌ์„ฑ์„ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๊ทธ๊ฐ€ ์—†๋Š” apigeectl apply์€ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

apigeectl ํ”Œ๋ž˜๊ทธ: โ€‘โ€‘allโ€‘envs, โ€‘โ€‘datastore, โ€‘โ€‘dryโ€‘run, โ€‘โ€‘env, โ€‘f, โ€‘โ€‘fileโ€‘overrideโ€‘config, โ€‘โ€‘help, โ€‘โ€‘org, โ€‘โ€‘printโ€‘yaml, โ€‘โ€‘redis, โ€‘โ€‘settings virtualhosts, โ€‘โ€‘telemetry,โ€‘โ€‘v

checkโ€‘ready

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ ํฌ๋“œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ ํฌ๋“œ๊ฐ€ ์ค€๋น„๋˜๋ฉด '๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ ์ค€๋น„๋จ' ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ์ž๋™ ์Šคํฌ๋ฆฝํŒ…์˜ ๊ฒฝ์šฐ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋ชจ๋‘ ์ค€๋น„๋˜๋ฉด ๋ช…๋ น์–ด๊ฐ€ ์ƒํƒœ 0์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜ ์ด์ƒ์˜ ํฌ๋“œ๊ฐ€ ์ค€๋น„๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ช…๋ น์–ด๊ฐ€ ์ƒํƒœ 1๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

apigeectl ํ”Œ๋ž˜๊ทธ: โ€‘f, โ€‘โ€‘fileโ€‘overrideโ€‘config, โ€‘โ€‘help, โ€‘โ€‘v

delete

ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. โ€‘โ€‘all ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. โ€‘โ€‘all์„ ์ƒ๋žตํ•˜๋ฉด Apigee ๊ด€๋ จ ๊ตฌ์„ฑ์š”์†Œ๋งŒ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค(apigeectl init๋กœ ์„ค์น˜๋œ ๊ตฌ์„ฑ์š”์†Œ๋Š” ์‚ญ์ œ๋˜์ง€ ์•Š์Œ). Apigee ๊ด€๋ จ ๊ตฌ์„ฑ์š”์†Œ๋Š” apply ๋ช…๋ น์–ด๋กœ ์„ค์น˜๋˜๋Š” ๊ตฌ์„ฑ์š”์†Œ์ž…๋‹ˆ๋‹ค.

์„ ํƒ์ ์ธ ํ”Œ๋ž˜๊ทธ๊ฐ€ ์—†๋Š” apigeectl delete๋Š” delete ๋ช…๋ น์–ด๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ๋œ ๋ชจ๋“  ๊ตฌ์„ฑ์š”์†Œ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

apigeectl diagnostic delete โ€‘f OVERRIDES_FILE์€ apigeectl diagnostic์œผ๋กœ ์ƒ์„ฑ๋œ apigeeโ€‘diagnostic ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. โ€‘f/โ€‘โ€‘fileโ€‘overrideโ€‘config ํ”Œ๋ž˜๊ทธ๊ฐ€ apigeectl diagnostic delete์™€ ํ•จ๊ป˜ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

apigeectl ํ”Œ๋ž˜๊ทธ: โ€‘โ€‘all, โ€‘โ€‘allโ€‘envs, โ€‘โ€‘datastore, โ€‘โ€‘env, โ€‘f, โ€‘โ€‘fileโ€‘overrideโ€‘config, โ€‘โ€‘help, โ€‘โ€‘org, โ€‘โ€‘redis, โ€‘โ€‘telemetry, โ€‘โ€‘v

diagnostic

ํ•„์š”์— ๋”ฐ๋ผ Apigee Hybrid ์ธ์Šคํ„ด์Šค์˜ Kubernetes ๊ตฌ์„ฑ์š”์†Œ์—์„œ ์ง„๋‹จ ๋ฐ์ดํ„ฐ๋ฅผ ์บก์ฒ˜ํ•˜๊ณ  ์ด๋ฅผ Google Cloud Storage ๋ฒ„ํ‚ท์— ์ €์žฅํ•˜๋Š” ์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ์—๋Š” ์ด๋ฆ„ ์ง€์ •๋œ Google Cloud Storage ๋ฒ„ํ‚ท, ์Šคํ† ๋ฆฌ์ง€ ๊ด€๋ฆฌ์ž ์—ญํ• ์ด ์žˆ๋Š” ์„œ๋น„์Šค ๊ณ„์ •, overrides ํŒŒ์ผ์— ์ถ”๊ฐ€๋œ diagnostic: ์Šคํƒ ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด 'apigeeโ€‘diagnostic' Kubernetes ๋„ค์ž„์ŠคํŽ˜์ด์Šค๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ๋ฅผ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋ ค๋ฉด ๋จผ์ € apigeectl diagnostic delete๋กœ ์ด๋ฅผ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

apigeectl diagnostic โ€‘f OVERRIDES_FILE

์ง„๋‹จ ์ˆ˜์ง‘๊ธฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

apigeectl diagnostic delete โ€‘f OVERRIDES_FILE

apigeectl ํ”Œ๋ž˜๊ทธ: โ€‘โ€‘fileโ€‘overrideโ€‘config

encode

์ง€์ •๋œ ์กฐ์ง ๋˜๋Š” ์ง€์ •๋œ ์กฐ์ง ๋‚ด ์ง€์ •๋œ ํ™˜๊ฒฝ์˜ ๋ชจ๋“  ApigeeDeployment์˜ ์ธ์ฝ”๋”ฉ๋œ ์ด๋ฆ„ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฝ”๋”ฉ๋œ ์ด๋ฆ„์—๋Š” ์กฐ์ง์˜ ํ•ด์‹œ๋œ ์ด๋ฆ„์ด ์žˆ๋Š” ๊ตฌ์„ฑ์š”์†Œ ์ด๋ฆ„์ด ํฌํ•จ๋˜๋ฉฐ, โ€‘โ€‘env ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ™˜๊ฒฝ์˜ ํ•ด์‹œ๋œ ์ด๋ฆ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Apigee Hybrid๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ์ง ๋ฐ ํ™˜๊ฒฝ์˜ ํ•ด์‹œ๋œ ์ด๋ฆ„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

โ€‘โ€‘org orgโ€‘name ํ•˜๋‚˜ ๋˜๋Š” โ€‘โ€‘env envโ€‘name ํ”Œ๋ž˜๊ทธ์™€ โ€‘โ€‘org orgโ€‘name ๋ชจ๋‘๋ฅผ encode๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

./apigeectl encode โ€‘โ€‘org hybridโ€‘example
List of ApigeeDeployments are:
  apigeeโ€‘connectโ€‘agentโ€‘hybridโ€‘exampleโ€‘6a82f8a
  apigeeโ€‘martโ€‘hybridโ€‘exampleโ€‘6a82f8a
  apigeeโ€‘watcherโ€‘hybridโ€‘exampleโ€‘6a82f8a
./apigeectl encode โ€‘โ€‘org hybridโ€‘example โ€‘โ€‘env exampleโ€‘env
List of ApigeeDeployments are:
  apigeeโ€‘runtimeโ€‘hybridโ€‘exampleโ€‘exampleโ€‘envโ€‘9e87e2d
  apigeeโ€‘synchronizerโ€‘hybridโ€‘exampleโ€‘exampleโ€‘envโ€‘9e87e2d
  apigeeโ€‘udcaโ€‘hybridโ€‘exampleโ€‘exampleโ€‘envโ€‘9e87e2d

apigeectl ํ”Œ๋ž˜๊ทธ: โ€‘โ€‘env, โ€‘โ€‘org

help ์˜จ๋ผ์ธ ๋„์›€๋ง์„ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.
init

apigee-system ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— Apigee Operator์™€ CRD๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

apigeectl apply์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์‹ ๊ทœ ์„ค์น˜ ๋˜๋Š” ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ apigeectl init๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

apigeectl ํ”Œ๋ž˜๊ทธ: โ€‘f, โ€‘โ€‘fileโ€‘overrideโ€‘config, โ€‘โ€‘help, โ€‘โ€‘v

version CLI ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

apigeectl ํ”Œ๋ž˜๊ทธ: โ€‘โ€‘help

apigeectl ํ”Œ๋ž˜๊ทธ

๋‹ค์Œ ํ‘œ์—๋Š” apigeectl ํ”Œ๋ž˜๊ทธ๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”Œ๋ž˜๊ทธ ์„ค๋ช…
โ€‘โ€‘all delete๋งŒ ํ•ด๋‹น: ASM(Istio)๊ณผ cert-manager๋ฅผ ์ œ์™ธํ•œ ์ „์ฒด Apigee Hybrid ์„ค์น˜๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
โ€‘โ€‘allโ€‘envs

์žฌ์ •์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์— ์ง€์ •๋œ ์กฐ์ง์˜ ๋ชจ๋“  ํ™˜๊ฒฝ์— apigeectl ๋ช…๋ น์–ด๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘datastore

Datastore ๋ฒ”์œ„(Cassandra)์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘dryโ€‘run ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ง€์ •๋œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. โ€‘โ€‘printโ€‘yaml๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋ Œ๋”๋ง๋œ ๊ฐ์ฒด ์‚ฌ์–‘์„ ํŒŒ์ผ์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘dryโ€‘run์€ ์‹คํ–‰ ์ค‘์ธ kubectl ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค์Œ ๋‘ ๊ฐ’ ์ค‘ ํ•˜๋‚˜์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. gcloud version์„ ์‚ฌ์šฉํ•˜์—ฌ kubectl ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • kubectl ๋ฒ„์ „ 1.17.x ์ดํ•˜: โ€‘โ€‘dryโ€‘run=true
  • kubectl ๋ฒ„์ „ 1.18.x ์ด์ƒ: โ€‘โ€‘dryโ€‘run=client
โ€‘โ€‘env envโ€‘name

์ง€์ •๋œ ํ™˜๊ฒฝ์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” apigee-runtime, apigee-synchronizer, apigee-udca ํ™˜๊ฒฝ ๋ฒ”์œ„ ๊ตฌ์„ฑ์š”์†Œ์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘env๋Š” โ€‘โ€‘org ํ”Œ๋ž˜๊ทธ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

apigeectl apply โ€‘โ€‘org hybridโ€‘example โ€‘โ€‘env exampleโ€‘env \
      โ€‘f overrides/overrides.yaml
โ€‘f
โ€‘โ€‘fileโ€‘overrideโ€‘config
ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ฐฐํฌ์˜ ์ปค์Šคํ…€ ๊ตฌ์„ฑ ์†์„ฑ์„ ํฌํ•จํ•˜๋Š” YAML ํŒŒ์ผ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ./overrides.yaml์ž…๋‹ˆ๋‹ค. apply, checkโ€‘ready, delete, init ๋ช…๋ น์–ด์— ์žฌ์ •์˜ ํŒŒ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

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

โ€‘h
โ€‘โ€‘help
๋ช…๋ น์–ด์— ๋Œ€ํ•œ ๋„์›€๋ง์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
โ€‘โ€‘org

์ง€์ •๋œ ์กฐ์ง์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” apigee-connect-agent, apigee-mart, apigee-watcher ์กฐ์ง ๋ฒ”์œ„ ๊ตฌ์„ฑ์š”์†Œ์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘printโ€‘yaml ๊ตฌ์„ฑ ํ…œํ”Œ๋ฆฟ ์ถœ๋ ฅ์„ stdout์— ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์‹œ๋Š” ๊ตฌ์„ฑ์„ ํŒŒ์ผ๋กœ ์ธ์‡„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
โ€‘โ€‘redis

๋ฉ”๋ชจ๋ฆฌ ๋‚ด ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ๋ฒ”์œ„(Redis)์— ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘restore

overrides.yaml ํŒŒ์ผ์˜ restore ๊ตฌ์„ฑ์—์„œ snapshotTimestamp ์†์„ฑ์œผ๋กœ ์ง€์ •๋œ ์ด์ „์— ์ €์žฅ๋œ ์Šค๋ƒ…์ƒท์œผ๋กœ Cassandra๋ฅผ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—…์€ overrides.yaml ํŒŒ์ผ์˜ backup ๊ตฌ์„ฑ์— ๋”ฐ๋ผ Cloud Storage ๋ฒ„ํ‚ท ๋˜๋Š” ์›๊ฒฉ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ณต์›๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐฑ์—…์—์„œ ๋ฆฌ์ „ ๋ณต์›์„ ์ฐธ์กฐํ•˜์„ธ์š”.

โ€‘s
โ€‘โ€‘settings virtualhosts

๋ช…๋ น์–ด๊ฐ€ ์ ์šฉ๋˜๋Š” ๊ตฌ์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ํ”Œ๋ž˜๊ทธ๋Š” runtime ๊ตฌ์„ฑ์š”์†Œ์˜ ์ผ๋ถ€์ธ virtualhosts ๊ตฌ์„ฑ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. virtualhosts ์†์„ฑ๋งŒ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ์ •์˜ ํŒŒ์ผ์˜ virtualhosts ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋กœ ํด๋Ÿฌ์Šคํ„ฐ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

apigeectl apply โ€‘f myโ€‘overrides.yaml โ€‘โ€‘settings virtualhosts \
    โ€‘โ€‘org exampleโ€‘org โ€‘โ€‘env exampleโ€‘env
โ€‘โ€‘telemetry

apigee-logger ๋ฐ apigee-metrics์™€ ๊ฐ™์€ ์›๊ฒฉ ๋ถ„์„ ๊ตฌ์„ฑ์š”์†Œ์˜ ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

โ€‘โ€‘v int

์ƒ์„ธ ๋กœ๊ทธ๋ฅผ std err์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. int๋Š” ์„ธ๋ถ€์ •๋ณด ์ˆ˜์ค€์„ ์„ค์ •ํ•˜๋Š” ์ •์ˆ˜์ž…๋‹ˆ๋‹ค. โ€‘โ€‘v์—์„œ int๋Š” ํ•„์ˆ˜ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ kubectl โ€‘โ€‘v ์˜ต์…˜๊ณผ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ์˜ต์…˜์€ ์ง€์› ์ค‘๋‹จ๋œ โ€‘โ€‘verbose ์˜ต์…˜์„ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์ดˆ๊ธฐํ™”

init๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์— ๊ธฐ๋ณธ ์š”๊ฑด ๊ตฌ์„ฑ์š”์†Œ ๊ตฌ์„ฑ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. apply ์ „์— init ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

apigeectl init โ€‘f my_overrides.yaml

ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์ ์šฉ

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

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

apigeectl apply โ€‘f my_overrides.yaml

๋‹จ์ผ ๊ตฌ์„ฑ์š”์†Œ์— ๊ตฌ์„ฑ ์ ์šฉ

apply ๋ช…๋ น์–ด๋ฅผ ํŠน์ • ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ œํ•œํ•˜๋ ค๋ฉด apigeectl ํ”Œ๋ž˜๊ทธ์— ์„ค๋ช…๋œ ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” Cassandra ๊ตฌ์„ฑ์š”์†Œ์˜ ๊ตฌ์„ฑ๋งŒ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

apigeectl apply โ€‘โ€‘datastore โ€‘f my_overrides.yaml

๊ตฌ์„ฑ์„ ํŒŒ์ผ๋กœ ์ถœ๋ ฅ

์„ค์น˜ ๋ฌธ์ œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฒฝ์šฐ ๊ตฌ์„ฑ ์„ค์ •์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์„ ํŒŒ์ผ์— ์ธ์‡„ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. โ€‘โ€‘printโ€‘yaml ํ”Œ๋ž˜๊ทธ๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ตฌ์„ฑ์„ stdout์œผ๋กœ ์ธ์‡„ํ•˜๋ฉฐ โ€‘โ€‘dryโ€‘run ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

apigeectl apply โ€‘f my_overrides.yaml โ€‘โ€‘dryโ€‘run=client โ€‘โ€‘printโ€‘yaml > apigeeโ€‘hybrid.yaml

ํฌ๋“œ ์ƒํƒœ ํ™•์ธ

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ๋œ ํฌ๋“œ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

apigeectl checkโ€‘ready โ€‘f overrides/overrides.yaml
All containers ready in namespace 'my-namespace'

ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์‚ญ์ œ

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋Ÿฐํƒ€์ž„ ๊ตฌ์„ฑ์š”์†Œ๋งŒ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜๋ ค๋ฉด โ€‘โ€‘all ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

apigeectl delete โ€‘f my_overrides.yaml