אחסון מתמיד במכשיר Google Distributed Cloud (GDC) עם air gap מאפשר לשמור נתונים של קונטיינרים בלי קשר למחזורי החיים של pod. אתם יכולים להצהיר על נפחים באמצעות משאבי PersistentVolumeClaim (PVC) ולהרחיב את הקיבולת כדי לשמור על המצב בכל הפעלה מחדש ותזמון מחדש.
המסמך הזה מיועד למפתחים בקבוצת מפעילי האפליקציות שיוצרים עומסי עבודה בארגון.
לפני שמתחילים
כדי להשלים את המשימות שבמסמך הזה, צריך לבקש את ההרשאות הנדרשות ולהכין את הסביבה.
בקשת תפקידים ב-IAM
כדי ליצור, למחוק, לערוך או להציג אמצעי אחסון קבועים באשכול Kubernetes, צריך לבקש מהאדמין של הארגון ב-IAM להקצות לכם את התפקיד אדמין של מרחב שמות (namespace-admin). התפקיד הזה קשור למרחב השמות של הפרויקט.
הכנת הסביבה
כדי להריץ פקודות באשכול Kubernetes שהוגדר מראש בשרת פיזי, צריך לוודא שיש לכם את המשאבים הבאים:
מאתרים את שם האשכול של Kubernetes, או שואלים את מנהל הפלטפורמה מה שם האשכול.
אם אין לכם קובץ kubeconfig לאשכול Kubernetes, נכנסים לחשבון ויוצרים קובץ כזה.
בהוראות הבאות, מחליפים את
CLUSTER_KUBECONFIGבנתיב kubeconfig של אשכול Kubernetes.
יצירת אמצעי אחסון מתמיד (persistent volume)
בהוראות הבאות מוסבר איך ליצור נפח באמצעות standard-rwo StorageClass של GDC. מידע נוסף על משאבי StorageClass שזמינים ב-GDC מופיע במאמר אחסון מתמיד לקונטיינרים.
יוצרים
PersistentVolumeClaimומגדירים אותו עם מצב גישהReadWriteOnceוסוג אחסוןstandard-rwo:kubectl --kubeconfig CLUSTER_KUBECONFIG \ --namespace NAMESPACE apply -f - <<EOF apiVersion: v1 kind: PersistentVolumeClaim metadata: name: PVC_NAME spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: standard-rwo EOFמחליפים את מה שכתוב בשדות הבאים:
CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes.
NAMESPACE: מרחב השמות של הפרויקט שבו יוצרים את ה-PVC.
PVC_NAME: השם של האובייקטPersistentVolumeClaim.
האובייקטים של
PersistentVolume(PV) מוקצים באופן דינמי. בודקים את הסטטוס של ה-PVs החדשים באשכול Kubernetes:kubectl get pv --kubeconfig CLUSTER_KUBECONFIGהפלט אמור להיראות כך:
NAME CAPACITY ACCESS MODES STATUS CLAIM STORAGECLASS AGE pvc-uuidd 10Gi RWO Bound pvc-name standard-rwo 60sמגדירים את עומסי העבודה של הקונטיינר כך שישתמשו ב-PVC. הדוגמה הבאה היא של pod של
nginxשמשתמש ב-PVC שלstandard-rwo:kubectl --kubeconfig CLUSTER_KUBECONFIG \ --namespace NAMESPACE apply -f - <<EOF apiVersion: apps/v1 kind: Pod metadata: name: web-server-deployment labels: app: nginx spec: containers: - name: nginx image: nginx volumeMounts: - mountPath: /usr/share/nginx/html name: data volumes: - name: data persistentVolumeClaim: claimName: PVC_NAME EOFמחליפים את
PVC_NAMEב-PVC שיצרתם.
הרחבת קיבולת הנפח
כדי להגדיל את הקיבולת של אובייקט PersistentVolumeClaim, מעדכנים את השדה spec.resources.storage לקיבולת החדשה. גודל הנפח המקסימלי שנתמך הוא 14.5Ti.
מעדכנים את הנפח לגודל גדול יותר בקובץ המניפסט של האובייקט
PersistentVolumeClaim:kubectl --kubeconfig CLUSTER_KUBECONFIG \ --namespace NAMESPACE apply -f - <<EOF apiVersion: v1 kind: PersistentVolumeClaim metadata: name: PVC_NAME spec: accessModes: - ReadWriteOnce resources: requests: storage: VOLUME_STORAGE_SIZE EOFמחליפים את מה שכתוב בשדות הבאים:
CLUSTER_KUBECONFIG: קובץ ה-kubeconfig של אשכול Kubernetes.
NAMESPACE: מרחב השמות של הפרויקט שבו נמצא משאב ה-PVC.
PVC_NAME: השם של ה-PVC שאתם מגדילים את נפח האחסון שלו.
VOLUME_SNAPSHOT_SIZE: נפח האחסון שרוצים להוסיף, למשל50Gi.
בודקים את הסטטוס של ה-PV המעודכנים באשכול:
kubectl get pv --kubeconfig CLUSTER_KUBECONFIG
המאמרים הבאים
- סקירה כללית של עומסי עבודה בקונטיינרים
- יצירת עומסי עבודה עם שמירת מצב
- יצירת תמונות מצב של אמצעי אחסון