这是GKE 上的示例,但是其他云提供商应该有类似的选项,但区域名称不同。
您可以通过Regional Persistent Disks 指定StorageClass 来完成。取决于您可以使用的需求:
要启用区域永久性磁盘的动态配置,请使用replication-type 参数创建StorageClass,并在allowedTopologies 中指定zone 约束。
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: regionalpd-storageclass
provisioner: pd.csi.storage.gke.io
parameters:
type: pd-standard
replication-type: regional-pd
volumeBindingMode: WaitForFirstConsumer
allowedTopologies:
- matchLabelExpressions:
- key: topology.gke.io/zone
values:
- europe-west1-b
- europe-west1-c
以上示例描述了一个名为 regionpd-storageclass 的 StorageClass,它使用标准永久性磁盘并将数据复制到 europe-west1-b 和 europe-west1-c 区域
gcloud compute disks create \
gce-disk-1 \
--size 500Gi \
--region europe-west1 \
--replica-zones europe-west1-b,europe-west1-c
如果您想在特定区域创建Persistent Volume,您可以在storageClass 中指定它,如下例所示:
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: PV-us-central-1a
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-standard
zone: us-central1-a
要在PersistentVolume 或PersistentVolumeClaim 中使用特定的StorageClass,您必须使用storageClassName。
下面是volumeClaimTemplates 和storageClassName 的示例
`volumeClaimTemplates`:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "my-storage-class"
resources:
requests:
storage: 1Gi
关于将PV移动到不同的区域,您可以使用Volume Snapshots或使用Velero等第三方软件。您可以使用Volume Snapshots 在线找到许多migrating PV 教程,例如Migrating Kubernetes PersistentVolumes across Regions and AZs on AWS。
其他文档