ייבוא נפח אחסון קיים של Azure Disk
אם כבר יש לכם נפח של Azure Disk לשימוש עם GKE ב-Azure, אתם יכולים ליצור אובייקט PersistentVolume (PV) ולשריין אותו ל-PersistentVolumeClaim (PVC) ספציפי.
בדף הזה מוסבר איך ליצור PV באמצעות נפח קיים שאוכלס בנתונים, ואיך להשתמש ב-PV ב-Pod.
לפני שמתחילים
יצירת PersistentVolume עבור נפח אחסון קיים
אפשר לייבא כרך קיים על ידי ציון PV חדש.
מעתיקים את קוד ה-YAML הבא לקובץ בשם
existing-volume.yaml:apiVersion: v1 kind: PersistentVolume metadata: name: VOLUME_NAME annotations: pv.kubernetes.io/provisioned-by: disk.csi.azure.com spec: capacity: storage: VOLUME_CAPACITY accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: STORAGE_CLASS_NAME claimRef: name: my-pvc namespace: default csi: driver: disk.csi.azure.com volumeHandle: /subscriptions/SUBSCRIPTION_ID/resourcegroups/RESOURCE_GROUP_NAME/providers/microsoft.compute/disks/DISK_NAME fsType: FILE_SYSTEM_TYPEמחליפים את מה שכתוב בשדות הבאים:
- VOLUME_NAME: שם לנפח האחסון
- VOLUME_CAPACITY: גודל הכרך. לדוגמה,
30Gi. מידע נוסף על הגדרת נפח אחסון ב-Kubernetes זמין במאמר בנושא משמעות הזיכרון. STORAGE_CLASS_NAME: השם של StorageClass שמקצה את נפח האחסון. לדוגמה, אפשר להשתמש ב-
standard-rwoשמוגדר כברירת מחדל.SUBSCRIPTION_ID: מזהה המינוי ל-Azure שמכיל את אמצעי האחסון.
RESOURCE_GROUP_NAME: קבוצת המשאבים ב-Azure שמכילה את אמצעי האחסון.
DISK_NAME: השם של נפח האחסון ב-Azure Disk.
FS_TYPE: סוג מערכת הקבצים של אמצעי האחסון. לדוגמה,
ext4.
החלת ה-YAML על האשכול
kubectl apply -f existing-volume.yamlאישור יצירת ה-PV
kubectl describe pv VOLUME_NAMEהפלט של הפקודה הזו כולל את הסטטוס של ה-PV.
שימוש בנפח עם PersistentVolumeClaim ו-Pod
אחרי שמייבאים את אמצעי האחסון, אפשר ליצור PVC ו-Pod שמבצעים mount ל-PVC.
קובץ ה-YAML הבא יוצר PVC ומצרף אותו ל-Pod שמריץ את שרת האינטרנט Nginx. מעתיקים אותו לקובץ בשם
nginx.yaml:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: my-pvc spec: storageClassName: STORAGE_CLASS_NAME volumeName: VOLUME_NAME accessModes: - ACCESS_MODE resources: requests: storage: VOLUME_CAPACITY --- apiVersion: v1 kind: Pod metadata: name: web-server spec: containers: - name: web-server image: nginx volumeMounts: - mountPath: /var/lib/www/html name: data volumes: - name: data persistentVolumeClaim: claimName: my-pvcמחליפים את מה שכתוב בשדות הבאים:
- STORAGE_CLASS: השם של StorageClass מ-PersistentVolume שיצרתם קודם. לדוגמה,
standard-rwo. - ACCESS_MODE: מצב הגישה של אמצעי האחסון. במקרה של Azure Disk, משתמשים ב-
ReadWriteOnce. במקרה של Azure File, משתמשים ב-ReadWriteMany. - VOLUME_CAPACITY: גודל הכרך. לדוגמה,
30Gi.
- STORAGE_CLASS: השם של StorageClass מ-PersistentVolume שיצרתם קודם. לדוגמה,
החלת ה-YAML על האשכול
kubectl apply -f nginx.yamlבודקים את הסטטוס של מופע Nginx עם
kubectl describe. הפלט צריך לכלול את הערךRunningשלSTATUS.kubectl describe pod web-server
המאמרים הבאים
- אפשר להשתמש במנהלי התקנים נוספים לאחסון עם GKE ב-Azure.
- אפשר לקרוא את התיעוד של Azure Disk CSI driver.