尝试创建 pod 但出现以下错误:
0/3 个节点可用:1 个节点没有可用的卷区域。
我尝试附加更多卷,但错误仍然相同。
Warning FailedScheduling 2s (x14 over 42s) default-scheduler 0/3 nodes are available: 1 node(s) had no available volume zone, 2 node(s) didn't have free ports for the requested pod ports.
最佳答案
我的问题是 AWS EC2 卷和 Kubernetes PersistentVolume (PV)状态以某种方式不同步/损坏。 Kubernetes 认为存在绑定(bind)的 PV,而 EC2 卷显示为“可用”,未安装到工作节点。 更新:卷的效用不同。 zone 然后是 2 个 EC2 节点中的任何一个,因此无法附加到它们。
解决方案是删除所有相关资源 - StatefulSet,PVC (crucial!) , 光伏。然后我能够再次应用
它们,Kubernetes 成功创建了一个新的 EC2 卷并将其附加到实例。
如你所见in my configuration ,我有一个带有“volumeClaimTemplate”(=> PersistentVolumeClaim,PVC)(和一个 matching StorageClass definition )的 StatefulSet,因此 Kubernetes 应该动态提供一个 EC2 Volume,将它附加到一个 worker 并将它作为一个 PersistentVolume 公开。
请参阅 kubectl get pvc
、kubectl get pv
和 AWS 控制台 - EC2 - Volumes。
注意:“绑定(bind)”= PV 为 bound到 PVC。
如果您有 EBS 卷的快照 (5/2018),这里描述了一种在 AWS 上恢复 StatefulSet 的费力方法:https://medium.com/@joatmon08/kubernetes-statefulset-recovery-from-aws-snapshots-8a6159cda6f1
关于kubernetes - 节点在 AWS EKS 中没有可用的卷区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54439356/