Pod处于Pending状态,请求提供在Worker节点部署的解决方案
Pod Pending状态(调度失败)解决方案
根据事件信息,调度失败的核心原因:1个Worker节点不匹配Pod的节点亲和性规则,1个控制平面节点存在node-role.kubernetes.io/controlplane: true污点且Pod未配置容忍。以下是部署到Worker节点的具体解决步骤:
1. 修正节点亲和性规则,匹配Worker节点
- 先查看当前Pod的节点亲和性配置:
kubectl describe pod <你的Pod名称> | grep -A 15 "Node Affinity" - 调整Pod的
nodeAffinity配置,确保规则匹配Worker节点的标签(通常Worker节点带有node-role.kubernetes.io/worker标签)。示例配置:spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/worker operator: Exists - 如果不需要强制亲和性,可直接删除Pod配置中的
nodeAffinity字段,让调度器自动选择可用的Worker节点。
2. 检查并确保Worker节点状态正常
- 查看集群所有节点的状态和标签:
kubectl get nodes --show-labels - 确认Worker节点处于
Ready状态,且标签符合你设置的亲和性规则(如果保留亲和性)。 - 若Worker节点存在其他自定义污点,需根据需求为Pod添加对应的容忍配置,或移除Worker节点上不必要的污点(仅在业务允许时操作)。
3. 确保Pod不调度到控制平面节点(可选)
如果不需要Pod调度到控制节点,请勿在Pod配置中添加针对node-role.kubernetes.io/controlplane污点的容忍规则,避免调度器尝试将Pod调度到控制节点。
内容的提问来源于stack exchange,提问作者Pawara Tharkana
相关产品推荐
相关产品推荐

