欢迎光临
我们一直在努力

K8s容器一直处于Pending状态问题排查

公司产品基于K8s部署,在通过yaml编排启动对应容器时,发现POD一直处于Pending状态。

通常是由于pod的nodeSelector选择器未匹配节点所导致的,需要检查pod配置中定义的nodeSelector相关字段,确保能够与节点标签相匹配。

$ kubectl describe pod pod-xxx
Warning  FailedScheduling    default-scheduler  0/1 nodes are available: 1 node(s) didn't match node selector.

排查思路

查看容器配置

可以通过查看deployment或者pod中nodeSelector的配置,来判断节点分配规则。

[[email protected] ~]# kubectl edit job -n prophet flyway-test
    # 节点标签
      nodeSelector:
        lolicp.com/system: "true"
[[email protected] ~]# kubectl edit pod -n monitoring prometheus-k8s-0
        nodeSelectorTerms:
        - matchExpressions:
          - key: lolicp.com/prometheus
            operator: In
            values:
            - "true"
节点打标签

根据nodeSelector的配置内容,容器分配至指定labels的节点中。

kubectl label nodes =

示范:

kubectl label nodes 192.168.252.145 lolicp.com/prometheus=true

添加标签完成后,容器恢复正常。

文章来源于互联网:K8s容器一直处于Pending状态问题排查

赞(0)
未经允许不得转载:莱卡云 » K8s容器一直处于Pending状态问题排查