הגדרת StorageClass

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

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

שינוי ברירת המחדל של StorageClass

בשלבים הבאים מוסבר איך ליצור StorageClass ולהגדיר אותו כברירת המחדל. מידע נוסף זמין במאמר שינוי סוג האחסון שמוגדר כברירת מחדל במאמרי העזרה של Kubernetes.

  1. אחזור השם של StorageClass שמוגדר כברירת מחדל:
    kubectl get sc

    לדוגמה:

    kubectl get sc
      NAME                 PROVISIONER            AGE
      standard (default)   kubernetes.io/gce-pd   98d
    
  2. תאר את StorageClass בשם standard. שימו לב שהסוג שלו הוא pd-standard:
    kubectl describe sc standard

    לדוגמה:

    kubectl describe sc standard
      Name:                  standard
      IsDefaultClass:        Yes
      Annotations:           storageclass.beta.kubernetes.io/is-default-class=true
      Provisioner:           kubernetes.io/gce-pd
      Parameters:            type=pd-standard
      AllowVolumeExpansion:  <unset>
      MountOptions:          <none>
      ReclaimPolicy:         Delete
      VolumeBindingMode:     Immediate
      Events:                <none>
  3. יוצרים קובץ חדש בשם storageclass.yaml.
  4. מוסיפים את הקוד הזה לקובץ. שימו לב שהשם של המחלקה החדשה הוא apigee-sc. אתם יכולים להשתמש בכל שם שתרצו. חשוב גם לשים לב שסוג האחסון הוא pd-ssd:
    ---
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: "apigee-sc"
    provisioner: kubernetes.io/gce-pd
    parameters:
      type: pd-ssd
      replication-type: none
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true
    
  5. מחילים את ה-StorageClass החדש על אשכול Kubernetes:
    kubectl apply -f storageclass.yaml
  6. מריצים את שתי הפקודות הבאות כדי לשנות את ברירת המחדל של StorageClass:
    kubectl patch storageclass standard \
      -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
    kubectl patch storageclass apigee-sc \
      -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
  7. מריצים את הפקודה הזו כדי לוודא ש-StorageClass החדש שמוגדר כברירת מחדל נקרא apigee-sc:
    kubectl get sc

    לדוגמה:

    kubectl get sc
      NAME                 PROVISIONER            AGE
      apigee-sc (default)  kubernetes.io/gce-pd   1d
      standard             kubernetes.io/gce-pd   98d