שימוש בשיתוף קבצים ב-Azure
GKE ב-Azure תומך בהרכבה של שיתופי Azure Files. אם כבר יש לכם שיתוף קבצים ב-Azure שאתם רוצים להשתמש בו עם GKE ב-Azure, אתם יכולים ליצור אובייקט PersistentVolume (PV) ולשמור אותו ל-PersistentVolumeClaim (PVC) ספציפי.
בדף הזה מוסבר איך ליצור PV באמצעות שיתוף קיים שמלא בנתונים, ואיך להשתמש ב-PV ב-Pod.
לפני שמתחילים
- התחברות לאשכול
- יש לכם גישה לשיתוף קבצים ב-Azure או שאתם יכולים ליצור שיתוף קבצים ב-Azure. מידע נוסף זמין במאמר בנושא יצירת שיתוף קבצים ב-Azure.
שמירת פרטי חשבון האחסון ב-Azure
GKE ב-Azure מאחסן מידע לגישה לחשבון האחסון שלכם ב-Azure בסוד. אם לא יצרתם סוד באשכול, אתם צריכים להוסיף אחד. אם הסוד הזה קיים באשכול, אפשר לדלג אל יצירת PersistentVolume לשיתוף קיים.
כדי ליצור את הסוד, מעתיקים את המניפסט הבא לקובץ בשם azure-service-account-key.yaml.
--- apiVersion: v1 kind: Secret metadata: name: azure-secret-account-key type: Opaque stringData: accountname: STORAGE_ACCOUNT_NAME accountkey: STORAGE_ACCOUNT_KEYמחליפים את מה שכתוב בשדות הבאים:
- STORAGE_ACCOUNT_NAME: השם של חשבון האחסון שלכם ב-Azure
- STORAGE_ACCOUNT_KEY: המפתח של חשבון האחסון שלכם ב-Azure
מחילים את הקובץ על האשכול באמצעות הכלי
kubectl:kubectl apply -f azure-service-account-key.yaml
יצירת PersistentVolume לשיתוף קיים
מייבאים שיתוף קבצים קיים ב-Azure על ידי ציון PV חדש באשכול. כדי ליצור את ה-PV:
מעתיקים את קוד ה-YAML הבא לקובץ בשם
existing-volume.yaml:apiVersion: v1 kind: PersistentVolume metadata: name: VOLUME_NAME spec: capacity: storage: VOLUME_CAPACITY storageClassName: standard-rwx accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain csi: driver: file.csi.azure.com readOnly: false volumeHandle: VOLUME_IDמחליפים את מה שכתוב בשדות הבאים:
- VOLUME_NAME: שם לנפח האחסון
- VOLUME_CAPACITY: גודל הכרך. לדוגמה,
30Gi. מידע נוסף על הגדרת נפח אחסון ב-Kubernetes זמין במאמר בנושא משמעות הזיכרון. - VOLUME_ID: מזהה ייחודי לנפח, בפורמט של מחרוזת
RESOURCE_GROUP_NAME#STORAGE_ACCOUNT_NAME#FILESHARE_NAME#, כאשר - FILE_SHARE_NAME: שם שיתוף הקבצים ב-Azure
אם חשבון האחסון נמצא בקבוצת משאבים שונה מהאשכול, צריך להוסיף הפניה לסוד שמכיל את מפתח חשבון האחסון. כדי להוסיף את ההפניה, מוסיפים את הטקסט הבא לקטע
spec.csi:# Optional. Only required if your storageAccount is in a different resource group than the cluster. nodeStageSecretRef: name: NODE_STAGE_SECRET_NAME namespace: NODE_STAGE_SECRET_NAMESPACEמחליפים את מה שכתוב בשדות הבאים:
- NODE_STAGE_SECRET_NAME: השם של הסוד
- NODE_STAGE_SECRET_NAMESPACE Namespace שמכיל את הסוד
מחילים את ה-YAML על האשכול.
kubectl apply -f existing-volume.yamlמאשרים את יצירת ה-PV באמצעות
kubectl describe 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כדי למחוק את ה-Pod, משתמשים בפקודה
kubectl delete.kubectl delete -f nginx.yaml
המאמרים הבאים
- אפשר להשתמש במנהלי התקנים נוספים לאחסון עם GKE ב-Azure.
- קראו את התיעוד של Azure File CSI driver.