יצירת תמונות מצב של נפח אחסון

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

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

לפני שמתחילים

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

שליחת בקשה לתפקידי IAM

כדי ליצור, למחוק, לערוך או להציג תמונות מצב של נפח באשכול Kubernetes, צריך לבקש מאדמין ה-IAM בארגון להקצות לכם את התפקיד אדמין של מרחב שמות (namespace-admin). התפקיד הזה משויך למרחב השמות של הפרויקט.

הכנת הסביבה

כדי להריץ פקודות באשכול Kubernetes בשרת פיזי שהוגדר מראש, צריך לוודא שיש לכם את המשאבים הבאים:

  1. מאתרים את שם אשכול Kubernetes או שואלים את מנהל הפלטפורמה מה שם האשכול.

  2. אם אין לכם קובץ kubeconfig, אתם צריכים להיכנס וליצור אותו עבור אשכול Kubernetes.

  3. משתמשים בנתיב kubeconfig של אשכול Kubernetes כדי להחליף את הערך CLUSTER_KUBECONFIG בהוראות האלה.

יצירת תמונת מצב של נפח אחסון

כדי לצלם תמונה של אובייקט PersistentVolumeClaim, יוצרים אובייקט VolumeSnapshot. המערכת לא מבטיחה עקביות בנתונים. להשהות את האפליקציה ולנקות את הנתונים לפני שמצלמים תמונת מצב.

  1. יוצרים משאב מותאם אישית VolumeSnapshot:

    kubectl --kubeconfig CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshot
    metadata:
      name: VOLUME_SNAPSHOT_NAME
    spec:
      source:
        persistentVolumeClaimName: PVC_NAME
    EOF
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes.

    • ‫NAMESPACE: מרחב השמות של הפרויקט שבו ייצור קובץ ה-snapshot של אמצעי האחסון.

    • ‫VOLUME_SNAPSHOT_NAME: שם האובייקט VolumeSnapshot.

    • ‫PVC_NAME: השם של ה-PVC שעבורו יוצרים snapshot.

  2. פעולת הצילום הושלמה כשהערך של השדה .status.readyToUse הופך ל-true. כדי לבדוק את הסטטוס, אפשר להשתמש בפקודה הבאה:

      kubectl --kubeconfig CLUSTER_KUBECONFIG get volumesnapshot \
        -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'
    
  3. מעדכנים את המניפסט של ה-PVC עם תמונת מצב של נפח האחסון שצוינה כמקור נתונים:

    kubectl --kubeconfig CLUSTER_KUBECONFIG \
        --namespace NAMESPACE apply -f - <<EOF
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: PVC_NAME
    spec:
      dataSource:
        name: VOLUME_SNAPSHOT_NAME
        kind: VolumeSnapshot
        apiGroup: snapshot.storage.k8s.io
      storageClassName: standard-rwo
      accessModes:
        - ReadWriteOnce
     resources:
       requests:
       storage: 10Gi
    EOF
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes.

    • ‫NAMESPACE: מרחב השמות שבו קיים משאב ה-PVC.

    • ‫PVC_NAME: השם של ה-PVC שעבורו יוצרים snapshot.

    • ‫VOLUME_SNAPSHOT_NAME: השם של תמונת המצב של אמצעי האחסון.

המאמרים הבאים