הרחבת נפחי אחסון קבועים של Cassandra

התהליך הזה מאפשר להרחיב את נפחי האחסון הקבועים שמשמשים את מסד הנתונים של Apigee hybrid Cassandra, כדי להתאים לצרכים גדולים יותר של אחסון, בלי ליצור צמתים חדשים רק כדי לספק יותר אחסון.

סקירה כללית

רכיב Apigee hybrid cassandra משתמש בכרכים מתמשכים לאחסון נתונים. הגודל של הכרך המתמשך מוגדר במהלך ההתקנה וההגדרה הראשונית. גודל האחסון הראשוני הזה הוא ערך קבוע ואי אפשר לשנות אותו. לכן, כל צומת חדש שנוסף לאשכול ישתמש באותו גודל של כרך מתמשך.

אפשר להגדיל את הגודל של נפח האחסון הקבוע הקיים על ידי ביצוע השינויים ישירות ב-Persistent volume Claim, אבל הצמתים החדשים עדיין ישתמשו בגודל הקטן יותר של נפח האחסון הקבוע הראשוני.

אם מסד הנתונים ההיברידי שלכם ב-Cassandra מתקרב לקיבולת האחסון שלו, אתם יכולים להשתמש בהליך הזה כדי להרחיב את הכרכים הקיימים של האחסון המתמשך ולאפשר לצמתים חדשים להרחיב גם את הכרכים שלהם.

הרחבת נפחי אחסון קבועים של Cassandra

  1. מעדכנים את גודל הנפח לגודל הרצוי:
    kubectl -n apigee edit pvc
  2. בודקים את נפח האחסון המעודכן:
     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. מגבים, מוחקים ויוצרים מחדש את ה-StatefulSet עם גודל האחסון החדש. הפקודות הבאות יוצרות קובץ תצורה apigee-cassandra-default.yaml שאפשר להשתמש בו כדי לתעד את התצורה הנוכחית של Cassandra. לאחר מכן משנים את התצורה הזו ומחילים אותה:
    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. בודקים שהפעולה delete הושלמה:
      kubectl get sts -n apigee

      הפלט אמור להיראות כך:

      No resources found in apigee namespace.
    4. מעדכנים את גודל האחסון בקובץ apigee-cassandra-default.yaml עם גודל האחסון החדש. הגודל הזה צריך להיות זהה לגודל שאתם מתכוונים להשתמש בו ב-overrides.yaml. לדוגמה:
           resources:
              requests:
                storage: 100Gi
    5. מחילים מחדש את ההגדרה של StatefulSet עם גודל האחסון המעודכן:
      kubectl apply -f apigee-cassandra-default.yaml
    6. מוודאים שקבוצת ה-StatefulSet נוצרה מחדש בצורה תקינה:
      kubectl get sts -n apigee

      הפלט אמור להיראות כך:

      NAME                       READY   AGE
      apigee-cassandra-default   3/3     6m56s
  4. מעדכנים את קובץ הביטולים עם גודל נפח חדש שציינתם כשערכתם את ה-PVC:
    cassandra:
      storage:
        capacity: 100Gi
  5. מחילים את ההגדרות המעודכנות על האשכול:
    ../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
  6. בודקים אם גודל האחסון המעודכן מופיע ב-sts החדש שנוצר:
    kubectl get sts -n apigee apigee-cassandra -o yaml |grep storage
    storage: 100Gi
  7. בודקים אם נפח הנתונים של יחידות ה-Pod של C* עודכן לגודל החדש:

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