导入预先存在的 Azure 磁盘卷
如果您已经有一个 Azure 磁盘卷要用于 GKE on 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 和一个装载该 PVC 的 pod。
以下 YAML 会创建一个 PVC 并将其挂接到运行 Nginx Web 服务器的 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
后续步骤
- 将其他存储驱动程序与 GKE on Azure 搭配使用。
- 阅读 Azure Disk CSI 驱动程序的文档。