Memperluas volume persisten Cassandra

Proses ini memungkinkan Anda memperluas volume persisten yang digunakan oleh database Cassandra hybrid Apigee untuk mengakomodasi kebutuhan penyimpanan yang lebih besar tanpa perlu membuat node baru hanya untuk menyediakan lebih banyak penyimpanan.

Ringkasan

Komponen cassandra Apigee hybrid menggunakan volume persisten untuk menyimpan data. Ukuran volume persisten ditentukan selama penginstalan dan konfigurasi awal. Ukuran penyimpanan awal ini adalah nilai yang tidak dapat diubah dan tidak dapat diubah. Oleh karena itu, setiap node baru yang ditambahkan ke cluster akan menggunakan ukuran volume persisten yang sama.

Anda dapat meningkatkan ukuran volume persisten yang ada dengan membuat perubahan langsung pada PersistentVolumeClaim. Node baru akan tetap menggunakan ukuran volume persisten awal yang lebih kecil.

Jika database Cassandra hybrid Anda hampir mencapai kapasitas penyimpanan, Anda dapat menggunakan prosedur ini untuk memperluas volume persisten yang ada dan memungkinkan node baru memperluas volume persistennya juga.

Memperluas volume persisten Cassandra

  1. Perbarui ukuran volume ke ukuran yang diinginkan:
    kubectl -n apigee edit pvc
  2. Periksa kapasitas volume yang diupdate:
     kubectl get pvc -n apigee
     kubectl get pvc -n apigee
    NAME                                       STATUS  VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS         AGE
    cassandra-data-apigee-cassandra-default-0  Bound   pvc-92234ba7-941b-4dab-82c6-8a5288a2c8d4   500Gi      RWO            standard       21m
    cassandra-data-apigee-cassandra-default-1  Bound   pvc-6be911fc-91f7-465d-a02e-933428ee10b2   500Gi      RWO            standard       20m
    cassandra-data-apigee-cassandra-default-2  Bound   pvc-14ba34e4-fd5c-4d59-8413-a331dcad3404   500Gi      RWO            standard       19m
    
  3. Cadangkan, hapus, dan buat ulang statefulset dengan ukuran penyimpanan baru. Perintah berikut membuat file konfigurasi apigee-cassandra-default.yaml yang dapat Anda gunakan untuk merekam konfigurasi Cassandra saat ini. Kemudian, Anda mengubah dan menerapkan konfigurasi ini:
    1. kubectl -n apigee get sts apigee-cassandra-default -o yaml > apigee-cassandra-default.yaml
    2. kubectl -n apigee delete sts --cascade=orphan apigee-cassandra-default
    3. Pastikan operasi delete selesai:
      kubectl get sts -n apigee

      Output Anda akan terlihat seperti ini:

      No resources found in apigee namespace.
    4. Perbarui ukuran penyimpanan dalam file apigee-cassandra-default.yaml dengan ukuran penyimpanan baru. Nilai ini harus cocok dengan ukuran yang ingin Anda terapkan di overrides.yaml. Contoh:
           resources:
              requests:
                storage: 500Gi
    5. Terapkan kembali konfigurasi statefulset dengan ukuran penyimpanan yang diupdate:
      kubectl apply -f apigee-cassandra-default.yaml
    6. Pastikan statefulset dibuat ulang dengan benar:
      kubectl get sts -n apigee

      Output Anda akan terlihat seperti ini:

      NAME                       READY   AGE
      apigee-cassandra-default   3/3     6m56s
  4. Perbarui file penggantian Anda dengan ukuran volume baru yang Anda tentukan saat mengedit PVC:

    Helm

    cassandra:
      storage:
        storageSize: 500Gi
      

    Lihat cassandra.storage.storageSize untuk mengetahui detail selengkapnya.

    apigeectl

    cassandra:
      storage:
        capacity: 500Gi
       

    Lihat cassandra.storage.capacity untuk mengetahui detail selengkapnya.

  5. Terapkan konfigurasi yang telah diupdate ke cluster:

    Helm

    helm upgrade datastore apigee-datastore/ \
    --namespace apigee \
    --atomic \
    -f OVERRIDES_FILE.yaml
    

    apigeectl

    $APIGEECTL_HOME/apigeectl apply datastore -f OVERRIDES_FILE.yaml
    Parsing file: config/values.yaml
    Parsing file: overrides/overrides.yaml
    cleansing older AD's (v1alpha1) istio resources...
    
    Invoking "kubectl apply" with YAML config...
    
    apigeedatastore.apigee.cloud.google.com/apigee-cassandra unchanged
  6. Periksa apakah sts yang baru dibuat memiliki ukuran penyimpanan yang diperbarui:
    kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
    storage: 500Gi
  7. Periksa apakah volume data pod C* telah diperbarui dengan ukuran baru:

    kubectl exec -n apigee -it apigee-cassandra-default-0 -- df -h|grep "/opt/apigee/data"
    /dev/sdb         99G   69M   99G   1% /opt/apigee/data