nodeSelector
在我的 Kubernetes 清单中使用时遇到问题。我在 EKS 中有一个带有标签的节点组eks.amazonaws.com/nodegroup=dev-nodegroup
。这个节点有一个名称和对应的 ip,就像在 AWS 中一样。如果我nodeName
在清单中设置,一切正常,并且 pod 部署在相应的节点中,但是当我这样做时:
nodeSelector:
eks.amazonaws.com/nodegroup: dev-nodegroup
在我的清单中,在与 相同的缩进containers
级别FailedScheduling
Warning FailedScheduling 3m31s (x649 over 11h) default-scheduler 0/1 nodes are available: 1 node(s) had no available disk.
难道我做错了什么?我还想将zone
标签添加到节点选择器,但它会产生同样的问题。
“没有可用磁盘”是什么意思?我已经检查了我的节点,df -h
并且有足够的可用磁盘空间。我已经看到其他问题的输出是节点无法访问或有一些污点,我的没有。
任何帮助是极大的赞赏。
编辑
我在 pod 中安装了一个卷,如下所示:
volumes:
- name: <VOLUME_NAME>
awsElasticBlockStore:
volumeID: <EBS_ID>
fsType: ext4
由于 EBS 仅部署在一个中,zone
因此我还需要设置zone
选择器。
我也有这个 storageClass (刚刚注意到它):
Name: gp2
IsDefaultClass: Yes
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"storage.k8s.io/v1","kind":"StorageClass","metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"},"name":"gp2"},"parameters":{"fsType":"ext4","type":"gp2"},"provisioner":"kubernetes.io/aws-ebs","volumeBindingMode":"WaitForFirstConsumer"}
,storageclass.kubernetes.io/is-default-class=true
Provisioner: kubernetes.io/aws-ebs
Parameters: fsType=ext4,type=gp2
AllowVolumeExpansion: <unset>
MountOptions: <none>
ReclaimPolicy: Delete
VolumeBindingMode: WaitForFirstConsumer
Events: <none>
编辑2
我的集群只有一个节点组和一个节点,以防这也有帮助。