匯入現有的 Azure 磁碟區
如果您已有要搭配 GKE on Azure 使用的 Azure 磁碟磁碟區,可以建立 PersistentVolume (PV) 物件,並為特定 PersistentVolumeClaim (PVC) 保留該物件。
本頁面說明如何使用已填入資料的現有磁碟區建立 PV,以及如何在 Pod 中使用 PV。
事前準備
為預先存在的磁碟區建立 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
更改下列內容:
將 YAML 套用至叢集
kubectl apply -f existing-volume.yaml
確認建立 PV
kubectl describe pv VOLUME_NAME
這項指令的輸出內容會包含 PV 的狀態。
使用 PersistentVolumeClaim 和 Pod 存取磁碟區
匯入磁碟區後,您可以建立 PVC 和 Pod,並掛接 PVC。
下列 YAML 會建立 PVC,並將其附加至執行 Nginx 網路伺服器的 Pod。將其複製到名為
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:您先前建立的 PersistentVolume 中的 StorageClass 名稱。例如:
standard-rwo
。 - ACCESS_MODE:磁碟區的存取模式。如果是 Azure 磁碟,請使用
ReadWriteOnce
。如果是 Azure 檔案,請使用ReadWriteMany
。 - VOLUME_CAPACITY:磁碟區大小。例如:
30Gi
。
- STORAGE_CLASS:您先前建立的 PersistentVolume 中的 StorageClass 名稱。例如:
將 YAML 套用至叢集
kubectl apply -f nginx.yaml
使用
kubectl describe
檢查 Nginx 執行個體的狀態。輸出內容應包含STATUS
為Running
的項目。kubectl describe pod web-server
後續步驟
- 在 Azure 上的 GKE 中使用額外的儲存空間驅動程式。
- 請參閱 Azure Disk CSI 驅動程式的說明文件。