使用 Azure 磁盘卷
GKE on Azure 会自动部署 azuredisk-csi-driver
,以在集群中预配和管理 Azure 磁盘卷。
GKE on Azure Azure Disk CSI 驱动程序版本与 Kubernetes 集群版本相关联。此驱动程序版本通常是发布 GKE 版本时可用的最新版本。集群升级后,驱动程序会自动更新。
如需详细了解 GKE on Azure 如何提供永久性存储,请参阅存储概览。
默认存储类别
GKE on Azure 默认提供以下 StorageClass 选项:
standard-rwo
(默认):使用 LRS 预配标准 SSD Azure 磁盘premium-rwo
:使用 LRS 预配高级 SSD Azure 磁盘
准备工作
使用默认 StorageClass
如果您在不设置字段 spec.storageClassName
的情况下创建 PersistentVolumeClaim,则 GKE on Azure 会使用默认的 GKE on Azure Azure Disk CSI 驱动程序 StorageClass 预配 Azure 标准 SSD 卷。
以下 YAML 会创建一个名为 mypvc
的 PersistentVolumeClaim (PVC),其大小为 30 吉比字节。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
使用 Premium 存储类别
当您创建 PersistentVolumeClaim 并将字段 spec.storageClassName
重命名为 premium-rwo
时,GKE on Azure 会预配 Azure 付费 SSD 卷。
以下 YAML 会创建一个名为 mypvc
的 PersistentVolumeClaim (PVC),其大小为 30 吉比字节。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mypvc
spec:
storageClassName: premium-rwo
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 30Gi
在 StatefulSet 中引用 StorageClass
要使用新的 StorageClass,您可以在 StatefulSet 的 volumeClaimTemplates
中引用它。
当您在 StatefulSet 的 volumeClaimTemplates
规范中引用 StorageClass 时,Kubernetes 会使用 PersistentVolume (PV) 提供稳定的存储。Kubernetes 会调用在 StorageClass 中定义的预配工具以创建新的存储卷。预配了卷之后,Kubernetes 会自动创建一个 PV。
以下 StatefulSet 引用 premium-rwo
StorageClass,并预配 1 GiB 的卷:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: registry.k8s.io/nginx-slim:0.8
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates: # This is the specification in which you reference the StorageClass
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
storageClassName: premium-rwo # This field references the existing StorageClass
后续步骤
阅读 Azure Disk CSI 驱动程序的文档。
使用特定参数创建自定义存储类别。
了解 GKE 中的永久性卷。
在 GKE on Azure 集群上安装存储驱动程序。