Cassandra ์˜๊ตฌ ๋ณผ๋ฅจ ํ™•์žฅ

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

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

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

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ Cassandra ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์Šคํ† ๋ฆฌ์ง€ ์šฉ๋Ÿ‰ ํ•œ๋„์— ๊ฐ€๊นŒ์›Œ์ง€๋ฉด ์ด ์ ˆ์ฐจ์— ๋”ฐ๋ผ ๊ธฐ์กด ์˜๊ตฌ ๋ณผ๋ฅจ์„ ํ™•์žฅํ•˜๊ณ  ์ƒˆ ๋…ธ๋“œ์—์„œ๋„ ์˜๊ตฌ ๋ณผ๋ฅจ์„ ํ™•์žฅํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์„ธ์Šค

  1. ์˜๊ตฌ ๋ณผ๋ฅจ ํ™•์žฅ์„ ๊ณ„์†ํ•˜๊ธฐ ์ „์— StorageClass๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ 'allowVolumeExpansion: true'๊ฐ€ StorageClass์— ์„ค์ •๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get sc standard -o json | jq .allowVolumeExpansion true
  2. ๊ธฐ์กด ์˜๊ตฌ ๋ณผ๋ฅจ ๊ตฌ์„ฑ(PVC)์˜ ๋ณผ๋ฅจ ํฌ๊ธฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n apigee edit pvc 
  3. ๋‹จ๊ณ„์‹ ์‚ญ์ œ ์—†์ด statefulset๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n apigee delete sts --cascade=false apigee-cassandra
  4. override.yaml์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    cassandra:
      storage:
        capacity: 20Gi
    ./apigeectl apply -c cassandra -f overrides.yaml
  5. ์ƒˆ ํฌ๊ธฐ๋ฅผ ๋ฐ˜์˜ํ•˜๋„๋ก Cassandra pod๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์žฌ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Cassandra pod๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋…ธ๋“œ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— statefulset๊ฐ€ ์ •์ƒ์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n apigee delete pod apigee-cassandra-2
    kubectl -n apigee get sts
      NAME               READY   AGE
      apigee-cassandra   3/3     64s
  6. Cassandra pod๊ฐ€ ์ƒˆ ๋ณผ๋ฅจ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n apigee get pvc