בדף הזה מוסבר איך ליצור עותק, או תמונת מצב, של נפח אחסון בנקודת זמן ספציפית עבור אפליקציית הקונטיינר. תמונת מצב של נפח מאפשרת להחזיר נפח למצב קודם או להקצות נפח חדש.
הדף הזה מיועד למפתחים בקבוצת מפעילים של אפליקציות, שאחראים על יצירת עומסי עבודה של אפליקציות בארגון שלהם.
לפני שמתחילים
כדי להשלים את המשימות שמתוארות במאמר הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
שליחת בקשה לתפקידי IAM
כדי ליצור, למחוק, לערוך או להציג תמונות מצב של נפח באשכול Kubernetes, צריך לבקש מאדמין ה-IAM בארגון להקצות לכם את התפקיד אדמין של מרחב שמות (namespace-admin). התפקיד הזה משויך למרחב השמות של הפרויקט.
הכנת הסביבה
כדי להריץ פקודות באשכול Kubernetes בשרת פיזי שהוגדר מראש, צריך לוודא שיש לכם את המשאבים הבאים:
מאתרים את שם אשכול Kubernetes או שואלים את מנהל הפלטפורמה מה שם האשכול.
אם אין לכם קובץ kubeconfig, אתם צריכים להיכנס וליצור אותו עבור אשכול Kubernetes.
משתמשים בנתיב kubeconfig של אשכול Kubernetes כדי להחליף את הערך
CLUSTER_KUBECONFIGבהוראות האלה.
יצירת תמונת מצב של נפח אחסון
כדי לצלם תמונה של אובייקט PersistentVolumeClaim, יוצרים אובייקט VolumeSnapshot. המערכת לא מבטיחה עקביות בנתונים. להשהות את האפליקציה ולנקות את הנתונים לפני שמצלמים תמונת מצב.
יוצרים משאב מותאם אישית
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.
פעולת הצילום הושלמה כשהערך של השדה
.status.readyToUseהופך ל-true. כדי לבדוק את הסטטוס, אפשר להשתמש בפקודה הבאה:kubectl --kubeconfig CLUSTER_KUBECONFIG get volumesnapshot \ -o custom-columns='NAME:.metadata.name,READY:.status.readyToUse'מעדכנים את המניפסט של ה-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: השם של תמונת המצב של אמצעי האחסון.