You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes Worker节点资源异常及Pod调度相关技术咨询

Kubernetes 调度与扩容问题答疑

结合你提供的节点信息和作为K8s新手遇到的几个问题,我来逐一帮你分析解决:

问题1:无法在worker节点扩容Pod,且内存使用率始终为0

从kubectl describe nodes worker-node的输出里,能看到最关键的问题:这个worker节点带有**node.kubernetes.io/disk-pressure:NoSchedule污点**,同时节点状态中的DiskPressure显示为True——这说明节点的磁盘空间不足了。

Kubernetes的调度器会自动避开带有NoSchedule污点的节点,所以新Pod根本不会被调度到这个worker节点上。既然节点上没有运行任何Pod,内存使用率自然显示为0。你需要先清理worker节点的磁盘空间,等kubelet检测到磁盘压力缓解后,会自动移除这个污点,之后就能正常往这个节点调度Pod了。

问题2:扩容时新实例总是创建在master节点

这其实是问题1的连锁反应:你的worker节点因为磁盘压力被标记为不可调度,集群里就只剩master节点能接收新Pod了(默认情况下master节点是允许调度Pod的,除非你手动给它打上了禁止调度的污点)。所以扩容时,调度器只能把所有新Pod安排到master节点上。

如果不想让Pod运行在master节点,你可以给master节点打上禁止调度的污点,执行命令:

kubectl taint nodes <你的master节点名称> node-role.kubernetes.io/master:NoSchedule

不过优先解决worker节点的磁盘问题才是核心,不然集群会没有可用的工作节点。

问题3:是否有办法将Pod限制在特定节点上

当然可以,常用的两种方案:

  • 节点选择器(NodeSelector):先给目标节点打上自定义标签,比如给worker-node打标签:
    kubectl label nodes worker-node app-group=backend
    
    然后在Pod的Deployment配置中添加nodeSelector字段,指定要匹配的标签:
    spec:
      template:
        spec:
          nodeSelector:
            app-group: backend
    
  • 节点亲和性(NodeAffinity):比NodeSelector更灵活,支持软约束(尝试匹配,不强制)和硬约束(必须匹配),以及更复杂的匹配规则,示例配置:
    spec:
      template:
        spec:
          affinity:
            nodeAffinity:
              requiredDuringSchedulingIgnoredDuringExecution: # 硬约束,必须满足
                nodeSelectorTerms:
                - matchExpressions:
                  - key: app-group
                    operator: In
                    values:
                    - backend
    

问题4:扩容时Pod是如何分配的

Kubernetes调度器分配Pod的逻辑分为两个核心阶段:

  1. 过滤阶段:先排除所有不符合条件的节点,比如带有不可调度污点、资源不足、不满足节点选择器/亲和性规则的节点,剩下的节点称为「可行节点」。
  2. 打分阶段:给每个可行节点计算分数,分数最高的节点会被选中来运行新Pod。打分的依据包括节点剩余资源量、Pod亲和性/反亲和性要求、节点标签匹配度等。

你当前的情况是worker节点在过滤阶段就被排除了,所以只有master节点进入打分环节,自然所有新Pod都会被调度到master节点上。


内容的提问来源于stack exchange,提问作者Bhargav Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:54:13