Pod跨可用区迁移时Persistent Volume Claim绑定错误卷求助
EKS中Deployment绑定PVC跨可用区迁移Pod失败问题
问题描述
在EKS集群的可用区us-west-2a中部署了带有PVC的Deployment,PV创建正常,Pod运行无异常。但当Pod因节点故障或调度策略迁移至可用区us-west-2b时,Pod卡在Pending状态,报错信息如下:
pod didn't trigger scale-up: 5 node(s) didn't match Pod's node affinity/selector, 1 node(s) had volume node affinity conflict, 1 node(s) had no available volume zone
此时PVC仍绑定在可用区us-west-2a的PV上。
相关配置
PVC配置
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: appName-pvc-ebs namespace: appName-namespace labels: app: appName spec: accessModes: - ReadWriteOnce storageClassName: appName-sc-ebs resources: requests: storage: 1Gi
存储类(StorageClass)配置
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: appName-sc-ebs namespace: appName-namespace provisioner: kubernetes.io/aws-ebs volumeBindingMode: WaitForFirstConsumer parameters: type: gp3 zone: us-west-2a,us-west-2b allowVolumeExpansion: true reclaimPolicy: Retain allowedTopologies: - matchLabelExpressions: - key: topology.kubernetes.io/zone values: - us-west-2a - us-west-2b
已尝试的方案及结果
根据官方文档及资料,配置volumeBindingMode: WaitForFirstConsumer结合allowedTopologies应该能解决跨可用区调度问题,但并未生效。
后续将存储类的provisioner从kubernetes.io/aws-ebs改为ebs.csi.aws.com后问题有所缓解,但未达预期:当Pod尝试迁移至其他可用区时,由于PVC绑定了原可用区的EBS卷,Pod最终会被调度回原可用区,当前表现类似StatefulSet的固定节点调度特性,不符合Deployment的调度预期。
因成本限制无法使用EFS,寻求有类似经验的解决方案。
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

