Cassandra ํ™•์žฅ

์ด ์ฃผ์ œ์—์„œ๋Š” Cassandra๋ฅผ ์ˆ˜ํ‰ ๋ฐ ์ˆ˜์ง์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Cassandra๋ฅผ ์ถ•์†Œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Cassandra ์ˆ˜ํ‰ ํ™•์žฅ

Cassandra๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ํ™•์žฅํ•˜๋ ค๋ฉด

  1. Cassandra๋ฅผ ํ™•์žฅํ•˜๊ธฐ ์ „์— ํ•„์š”์— ๋”ฐ๋ผ apigee-data ๋…ธ๋“œ ํ’€์— ์ถ”๊ฐ€ ์šฉ๋Ÿ‰์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ „์šฉ ๋…ธ๋“œ ํ’€ ๊ตฌ์„ฑ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.
  2. ์žฌ์ •์˜ ํŒŒ์ผ์—์„œ cassandra.replicaCount ๊ตฌ์„ฑ ์†์„ฑ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ์†์„ฑ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ตฌ์„ฑ ์†์„ฑ ์ฐธ์กฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๋Ÿฐํƒ€์ž„ ์˜์—ญ ๊ตฌ์„ฑ์š”์†Œ ๊ด€๋ฆฌ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.
  3. ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    $APIGEE_HOME/apigeectl apply --datastore -f overrides/overrides.yaml

Cassandra ์ˆ˜์ง ํ™•์žฅ

์ด ์„น์…˜์—์„œ๋Š” ๋” ๋†’์€ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•ด Cassandra ํฌ๋“œ๋ฅผ ์ˆ˜์ง์œผ๋กœ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

Apigee Hybrid ํ”„๋กœ๋•์…˜ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ ์Šคํ…Œ์ดํŠธํ’€ ์„œ๋น„์Šค(Cassandra)์šฉ์œผ๋กœ ํ•˜๋‚˜, ์Šคํ…Œ์ดํŠธ๋ฆฌ์Šค(runtime) ์„œ๋น„์Šค์šฉ์œผ๋กœ ํ•˜๋‚˜, ์ตœ์†Œ 2๊ฐœ์˜ ๋…๋ฆฝ์ ์ธ ๋…ธ๋“œ ํ’€์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ์— ๋Œ€ํ•ด์„œ๋Š” GKE ํ”„๋กœ๋•์…˜ ํด๋Ÿฌ์Šคํ„ฐ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์Šคํ…Œ์ดํŠธํ’€(Stateful) Cassandra ๋…ธ๋“œ ํ’€์˜ ๊ฒฝ์šฐ 8๊ฐœ์˜ CPU ์ฝ”์–ด์™€ 30GB์˜ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ ํ’€์ด ํ”„๋กœ๋น„์ €๋‹๋˜๋ฉด ์ด ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๋•์…˜์„ ์œ„ํ•œ Cassandra ๊ตฌ์„ฑ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋” ๋งŽ์€ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜์šฉํ•˜๊ธฐ ์œ„ํ•ด Cassandra ํฌ๋“œ๋ฅผ ํ™•์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ด ์ฃผ์ œ์—์„œ ์„ค๋ช…๋œ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

Cassandra ํฌ๋“œ ํ™•์žฅ

Cassandra์— ์‚ฌ์šฉ๋˜๋Š” ์Šคํ…Œ์ดํŠธํ’€ ๋…ธ๋“œ ํ’€์˜ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋Š˜๋ฆฌ๋ ค๋ฉด ๋‹ค์Œ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ฅด์„ธ์š”.

  1. Kubernetes ํ”Œ๋žซํผ์˜ ์•ˆ๋‚ด์— ๋”ฐ๋ผ ํด๋Ÿฌ์Šคํ„ฐ์— ์ƒˆ ๋…ธ๋“œ ํ’€์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ํ”Œ๋žซํผ์€ ์„ค์น˜ ์•ˆ๋‚ด์— ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ƒˆ ๋…ธ๋“œ ํ’€์ด ์ค€๋น„๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get nodes -l NODE_POOL_LABEL_NAME=NODE_POOL_LABEL_VALUE

    ๋ช…๋ น์–ด ์˜ˆ์‹œ:

    kubectl get nodes -l cloud.google.com/gke-nodepool=apigee-data-new

    ๊ฒฐ๊ณผ ์˜ˆ์‹œ:

    NAME                                                STATUS   ROLES    AGE     VERSION
    gke-apigee-data-new-441387c2-2h5n   Ready    <none>   4m28s   v1.14.10-gke.17
    gke-apigee-data-new-441387c2-6941   Ready    <none>   4m28s   v1.14.10-gke.17
    gke-apigee-data-new-441387c2-nhgc   Ready    <none>   4m29s   v1.14.10-gke.17
    
  3. Cassandra์— ์ƒˆ ๋…ธ๋“œ ํ’€์„ ์‚ฌ์šฉํ•˜๋„๋ก ์žฌ์ •์˜ ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋ ค๋Š” CPU ์ˆ˜์™€ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ํฌ๋“œ ๋ฆฌ์†Œ์Šค์— ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด GKE ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๋น„์Šทํ•œ ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ Kubernetes ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด์— ๋”ฐ๋ผ apigeeData.key ๊ฐ’์„ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    nodeSelector:
      requiredForScheduling: true
      apigeeData:
        key: "NODE_POOL_LABEL_NAME"
        value: "NODE_POOL_LABEL_VALUE"
    
    cassandra:
      resources:
        requests:
          cpu: NODE_POOL_CPU_NUMBER
          memory: NODE_POOL_MEMORY_SIZE
    

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

    nodeSelector:
      requiredForScheduling: true
      apigeeData:
        key: "cloud.google.com/gke-nodepool"
        value: "apigee-data-new"
    
    cassandra:
      resources:
        requests:
          cpu: 14
          memory: 16Gi
    
  4. ํด๋Ÿฌ์Šคํ„ฐ์— ์žฌ์ •์˜ ํŒŒ์ผ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    $APIGEECTL_HOME/apigeectl apply -f ./overrides/overrides.yaml --datastore

์ด ๋‹จ๊ณ„๋ฅผ ์™„๋ฃŒํ•˜๋ฉด Cassandra pod๊ฐ€ ์ƒˆ ๋…ธ๋“œ ํ’€๋กœ ๋กค๋ง๋ฉ๋‹ˆ๋‹ค.

Cassandra ์ถ•์†Œ

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

Cassandra๋Š” ๋ฆฌ์†Œ์Šค ์ง‘์•ฝ์ ์ธ ์„œ๋น„์Šค์ด๋ฏ€๋กœ ๋‹ค๋ฅธ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋Š” ํฌ๋“œ์— ๋ฐฐํฌํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋กœ๋“œ์— ๋”ฐ๋ผ ๋ง์˜ Cassandra ๋…ธ๋“œ ์ˆ˜๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์— ์ถ•์†Œํ•˜๊ณ ์ž ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cassandra ๋ง์„ ์ถ•์†Œํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ์„ธ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. Cassandra ๋…ธ๋“œ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉ ์ค‘๋‹จํ•˜์„ธ์š”.
  2. overrides.yaml์˜ cassandra.replicaCount ์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.
  3. ๊ตฌ์„ฑ ์—…๋ฐ์ดํŠธ๋ฅผ ์ ์šฉํ•˜์„ธ์š”.
  4. ์‚ญ์ œํ•˜๋ ค๋Š” ๋…ธ๋“œ๋งˆ๋‹ค ์ด ๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  5. ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์— ๋”ฐ๋ผ ์˜๊ตฌ ๋ณผ๋ฅจ ์‹ ์ฒญ ๋˜๋Š” ๋ณผ๋ฅจ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์•Œ์•„๋‘์–ด์•ผ ํ•  ์‚ฌํ•ญ

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

๊ธฐ๋ณธ ์š”๊ฑด

๋ง์—์„œ Cassandra ๋…ธ๋“œ ์ˆ˜๋ฅผ ์ถ•์†Œํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ •์ƒ ์ƒํƒœ์ด๊ณ  ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

 kubectl get pods -n yourNamespace -l app=apigee-cassandra
NAME                 READY   STATUS    RESTARTS   AGE
apigee-cassandra-default-0   1/1     Running   0          2h
apigee-cassandra-default-1   1/1     Running   0          2h
apigee-cassandra-default-2   1/1     Running   0          2h
apigee-cassandra-default-3   1/1     Running   0          16m
apigee-cassandra-default-4   1/1     Running   0          14m
apigee-cassandra-default-5   1/1     Running   0          13m
kubectl -n yourNamespace exec -it apigee-cassandra-default-0 nodetool status
Datacenter: us-east1
====================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address      Load       Tokens       Owns (effective)  Host ID                               Rack
UN  10.16.2.6    690.17 KiB  256          48.8%             b02089d1-0521-42e1-bbed-900656a58b68  ra-1
UN  10.16.4.6    700.55 KiB  256          51.6%             dc6b7faf-6866-4044-9ac9-1269ebd85dab  ra-1 to
UN  10.16.11.11  144.36 KiB  256          48.3%             c7906366-6c98-4ff6-a4fd-17c596c33cf7  ra-1
UN  10.16.1.11   767.03 KiB  256          49.8%             ddf221aa-80aa-497d-b73f-67e576ff1a23  ra-1
UN  10.16.5.13   193.64 KiB  256          50.9%             2f01ac42-4b6a-4f9e-a4eb-4734c24def95  ra-1
UN  10.16.8.15   132.42 KiB  256          50.6%             a27f93af-f8a0-4c88-839f-2d653596efc2  ra-1

Cassandra ๋…ธ๋“œ ์‚ฌ์šฉ ์ค‘๋‹จ

  1. nodetool ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ Cassandra ๋…ธ๋“œ๋ฅผ ์‚ฌ์šฉ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n yourNamespace exec -it nodeName nodetool decommission

    ์˜ˆ๋ฅผ ๋“ค์–ด ์ด ๋ช…๋ น์–ด๋Š” ์ด๋ฆ„์—์„œ ์ˆซ์ž ๊ฐ’์ด ๊ฐ€์žฅ ๋†’์€ ๋…ธ๋“œ apigee-cassandra-5๋ฅผ ์‚ฌ์šฉ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

    kubectl -n apigee exec -it apigee-cassandra-5 nodetool decommission
  2. ์‚ฌ์šฉ ์ค‘๋‹จ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ๋…ธ๋“œ๊ฐ€ ํ•œ ๊ฐœ ์ค„์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    kubectl -n yourNamespace exec -it nodeName nodetool status
    Datacenter: us-east1
    ====================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  10.16.2.6   710.37 KiB  256          59.0%             b02089d1-0521-42e1-bbed-900656a58b68  ra-1
    UN  10.16.4.6   720.97 KiB  256          61.3%             dc6b7faf-6866-4044-9ac9-1269ebd85dab  ra-1
    UN  10.16.1.11  777.11 KiB  256          58.9%             ddf221aa-80aa-497d-b73f-67e576ff1a23  ra-1
    UN  10.16.5.13  209.23 KiB  256          62.2%             2f01ac42-4b6a-4f9e-a4eb-4734c24def95  ra-1
    UN  10.16.8.15  143.23 KiB  256          58.6%             a27f93af-f8a0-4c88-839f-2d653596efc2  ra-1
    
  3. overrides.yaml ํŒŒ์ผ์—์„œ cassandra.replicaCount ์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ˜„์žฌ ๋…ธ๋“œ ์ˆ˜๊ฐ€ 6์ด๋ฉด 5๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
    cassandra:
      replicaCount: 5 # (n-1 5 in this example)
  4. ํด๋Ÿฌ์Šคํ„ฐ์— ๊ตฌ์„ฑ ๋ณ€๊ฒฝ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
    ./apigeectl apply --datastore
    namespace/apigee unchanged
    secret/ssl-cassandra unchanged
    storageclass.storage.k8s.io/apigee-gcepd unchanged
    service/apigee-cassandra unchanged
    statefulset.apps/apigee-cassandra configured
  5. ๋‚จ์•„์žˆ๋Š” ๋ชจ๋“  Cassandra ๋…ธ๋“œ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get pods -n yourNamespace -l app=apigee-cassandra
    NAME                 READY   STATUS    RESTARTS   AGE
    apigee-cassandra-default-0   1/1     Running   0          3h
    apigee-cassandra-default-1   1/1     Running   0          3h
    apigee-cassandra-default-2   1/1     Running   0          2h
    apigee-cassandra-default-3   1/1     Running   0          25m
    apigee-cassandra-default-4   1/1     Running   0          24m
    
    
  6. ์‚ฌ์šฉ ์ค‘๋‹จํ•˜๋ ค๋Š” ๋…ธ๋“œ๋งˆ๋‹ค 1~5๋‹จ๊ณ„๋ฅผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
  7. ๋…ธ๋“œ ํ•ด์ œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด cassandra.replicaCount ๊ฐ’์ด nodetool status ๋ช…๋ น์–ด์—์„œ ๋ฐ˜ํ™˜๋œ ๋…ธ๋“œ ์ˆ˜์™€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด Cassandra๋ฅผ 3๊ฐœ์˜ ๋…ธ๋“œ๋กœ ์ถ•์†Œํ•œ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    kubectl -n yourNamespace exec -it apigee-cassandra-default-0 nodetool status
    Datacenter: us-east1
    ====================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  10.16.2.6   710.37 KiB  256          59.0%             b02089d1-0521-42e1-bbed-900656a58b68  ra-1
    UN  10.16.4.6   720.97 KiB  256          61.3%             dc6b7faf-6866-4044-9ac9-1269ebd85dab  ra-1
    UN  10.16.5.13  209.23 KiB  256          62.2%             2f01ac42-4b6a-4f9e-a4eb-4734c24def95  ra-1
    
    
  8. Cassandra ํด๋Ÿฌ์Šคํ„ฐ ํฌ๊ธฐ๋ฅผ ์ค„์ธ ํ›„์—๋Š” pvc(PersistentVolumeClaim)๋ฅผ ์‚ญ์ œํ•˜์—ฌ ๋‹ค์Œ ํ™•์žฅ ์ด๋ฒคํŠธ๊ฐ€ ๋™์ผํ•œ ์˜๊ตฌ ๋ณผ๋ฅจ๊ณผ ์ด์ „์— ์ƒ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    pvc์˜ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    kubectl get pvc -n yourNamespace
    NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    cassandra-data-apigee-cassandra-default-0   Bound    pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   7h
    cassandra-data-apigee-cassandra-default-1   Bound    pvc-2956cb78-818d-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   7h
    cassandra-data-apigee-cassandra-default-2   Bound    pvc-79de5407-8190-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   7h
    cassandra-data-apigee-cassandra-default-3   Bound    pvc-d29ba265-81a2-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   5h
    cassandra-data-apigee-cassandra-default-4   Bound    pvc-0675a0ff-81a3-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   5h
    cassandra-data-apigee-cassandra-default-5   Bound    pvc-354afa95-81a3-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   5h

    ์ด ์˜ˆ์‹œ์—์„œ ๋‹ค์Œ pvc๋Š” 3๊ฐœ์˜ ์‚ฌ์šฉ ์ค‘๋‹จ๋œ ๋…ธ๋“œ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

    • cassandra-data-apigee-cassandra-5
    • cassandra-data-apigee-cassandra-4
    • cassandra-data-apigee-cassandra-3
  9. pvc๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n yourNamespace delete pvc cassandra-data-apigee-cassandra-5
    persistentvolumeclaim "cassandra-data-apigee-cassandra-5" deleted
    kubectl -n yourNamespace delete pvc cassandra-data-apigee-cassandra-4
    persistentvolumeclaim "cassandra-data-apigee-cassandra-4" deleted
    kubectl -n yourNamespace delete pvc cassandra-data-apigee-cassandra-3
    persistentvolumeclaim "cassandra-data-apigee-cassandra-3" deleted
  10. pvc๊ฐ€ ์‚ญ์ œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get pvc -n yourNamespace
    NAME                                STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    cassandra-data-apigee-cassandra-default-0   Bound    pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   7h
    cassandra-data-apigee-cassandra-default-1   Bound    pvc-2956cb78-818d-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   7h
    cassandra-data-apigee-cassandra-default-2   Bound    pvc-79de5407-8190-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   7h
    cassandra-data-apigee-cassandra-default-3   Bound    pvc-d29ba265-81a2-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   5h
    cassandra-data-apigee-cassandra-default-4   Bound    pvc-0675a0ff-81a3-11e9-8862-42010a8e014a   100Gi      RWO            apigee-gcepd   5h
  11. Anthos ์„ค์น˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋™์ผํ•œ ์‹œํ€€์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Anthos Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์˜๊ตฌ ๋ณผ๋ฅจ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

    ์˜๊ตฌ ๋ณผ๋ฅจ์˜ ์ด๋ฆ„์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

    kubectl get pv -n youNamespace
    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                      STORAGECLASS   REASON   AGE
    pvc-0675a0ff-81a3-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-4   apigee-gcepd            5h
    pvc-2956cb78-818d-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-1   apigee-gcepd            7h
    pvc-354afa95-81a3-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-5   apigee-gcepd            5h
    pvc-79de5407-8190-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-2   apigee-gcepd            7h
    pvc-d29ba265-81a2-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-3   apigee-gcepd            5h
    pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-0   apigee-gcepd            7h

    ์ด ์˜ˆ์‹œ์—์„œ ๋‹ค์Œ ๋ณผ๋ฅจ์€ ์‚ฌ์šฉ ์ค‘๋‹จ๋œ ๋…ธ๋“œ 3๊ฐœ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

    • 5: pvc-354afa95-81a3-11e9-8862-42010a8e014a
    • 4: pvc-0675a0ff-81a3-11e9-8862-42010a8e014a
    • 3: pvc-d29ba265-81a2-11e9-8862-42010a8e014a
  12. ์˜๊ตฌ ๋ณผ๋ฅจ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
    kubectl -n yourNamespace delete pv pvc-354afa95-81a3-11e9-8862-42010a8e014a
    kubectl -n yourNamespace delete pv pvc-0675a0ff-81a3-11e9-8862-42010a8e014a
    kubectl -n yourNamespace delete pv pvc-d29ba265-81a2-11e9-8862-42010a8e014a
  13. ์˜๊ตฌ ๋ณผ๋ฅจ์ด ์‚ญ์ œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
    kubectl get pv -n youNamespace
    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                      STORAGECLASS   REASON   AGE
    pvc-2956cb78-818d-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-1   apigee-gcepd            7h
    pvc-79de5407-8190-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-2   apigee-gcepd            7h
    pvc-f9c2a5b9-818c-11e9-8862-42010a8e014a   100Gi      RWO            Delete           Bound    apigee/cassandra-data-apigee-cassandra-default-0   apigee-gcepd            7h