AKS 中用于多区域存储的正确 PVC 配置是什么?

What is the correct PVC configuration in AKS for multi-zone storage?

我们有一个 AKS 集群设置有多个可用区节点池。使用default存储class,如果一个Pod需要移动到另一个节点,而唯一可用的节点在不同的区域,Pod无法启动,因为存储卡在原来的区域.是否有任何其他内置存储 classes 支持跨多区域池重新定位工作负载?

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: data
  namespace: $NAMESPACE
  labels:
    service: db
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: default
  resources:
    requests:
      storage: 4Gi

是的,您可以根据需要使用以下配置。

例子StorageClass.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: azurefile
provisioner: kubernetes.io/azure-file
parameters:
  skuName: Standard_ZRS
  location: eastus
  storageAccount: azure_storage_account_name  
allowedTopologies:
- matchLabelExpressions:
  - key: failure-domain.beta.kubernetes.io/zone
    values:
    - eastus2-1
    - eastus2-2
    - eastus2-3

根据以下 skuName 在 Azure 中可用 —

  • Standard_LRS — 标准本地冗余存储 (LRS)
  • Standard_GRS — 标准地理冗余存储 (GRS)
  • Standard_ZRS — 标准区域冗余存储 (ZRS)
  • Standard_RAGRS — 标准读取访问异地冗余存储 (RA-GRS)
  • Premium_LRS — 高级本地冗余存储 (LRS)
  • Premium_ZRS — 高级区域冗余存储 (GRS)

参考文献:K8s Allowed Topologies, AKS - Availability Zones, AKS - StorageClasses