Perluas volume persisten Cassandra

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

Ringkasan

Komponen cassandra hybrid Apigee menggunakan volume persisten untuk menyimpan data. Ukuran volume persisten ditentukan selama penginstalan dan konfigurasi awal. Nilai awal ini ukuran penyimpanan 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 juga dapat meningkatkan ukuran volume persisten yang ada dengan membuat perubahan langsung pada Klaim volume persisten, tetapi node baru akan tetap menggunakan ukuran volume persisten awal yang lebih kecil.

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

Meluaskan volume persisten Cassandra

  1. Perbarui ukuran volume ke ukuran yang diinginkan:
    kubectl -n apigee edit pvc
  2. Periksa kapasitas volume yang diperbarui:
     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   100Gi      RWO            standard       21m
    cassandra-data-apigee-cassandra-default-1   Bound    pvc-6be911fc-91f7-465d-a02e-933428ee10b2   100Gi      RWO            standard       20m
    cassandra-data-apigee-cassandra-default-2   Bound    pvc-14ba34e4-fd5c-4d59-8413-a331dcad3404   100Gi      RWO            standard       19m
  3. Tetapkan replika ke 0 untuk apigee-controller-manager deployment di namespace apigee-system:
    1. kubectl get deployments -n apigee-system
      NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
      apigee-controller-manager   1/1     1            1           28m
    2. kubectl edit deployments -n apigee-system apigee-controller-manager
    3. kubectl get deployments -n apigee-system
      NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
      apigee-controller-manager   0/0     0            0           30m
  4. Cadangkan, hapus, dan buat ulang statefulset dengan ukuran penyimpanan baru. Perintah berikut membuat file konfigurasi apigee-cassandra-default.yaml yang dapat Anda gunakan untuk menangkap konfigurasi Cassandra saat ini. Kemudian, Anda akan 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=false apigee-cassandra-default
    3. Pastikan operasi delete telah selesai:
      kubectl get sts -n apigee

      Output Anda akan terlihat seperti:

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

      Output Anda akan terlihat seperti:

      NAME                       READY   AGE
      apigee-cassandra-default   3/3     6m56s
  5. Perbarui file yang diganti dengan ukuran volume baru yang Anda tentukan saat mengedit pvc:
    cassandra:
      storage:
        capacity: 100Gi
  6. Terapkan konfigurasi yang telah diperbarui ke cluster:
    ../apigeectl apply --datastore -f overrides/overrides.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
  7. Update replika deployment pengontrol ke status sebelumnya (`1`):
    kubectl edit deployments -n apigee-system apigee-controller-manager
  8. Periksa apakah st yang baru dibuat memiliki ukuran penyimpanan yang telah diperbarui:
    kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
    storage: 100Gi
  9. Periksa apakah volume data pod C* 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