1 个节点存在 pod 在 kubernetes 集群中无法容忍的污点

2024-04-08

今天我的 kubernetes 集群 v1.15.2 给我这个错误:1 node(s) had taints that the pod didn't tolerate并且 Pod 无法启动。

它告诉我一个节点有污点,我检查节点状态并且工作正常,如何知道它到底有污点?

我正在从互联网上搜索,所有内容都告诉我主节点无法分配默认运行的 Pod。但现在我的 kubernetes pod 没有运行主节点。

  • 什么可能导致我的节点有污点(例如该节点没有足够的资源)?
  • 我应该怎么做才能找出节点的污点并修复它?

您可以使用kubectl describe node <nodename>检查污点。

kubectl describe node masternode
Name:               masternode
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=ip-10-0-0-115
                    kubernetes.io/os=linux
                    node-role.kubernetes.io/master=
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                    node.alpha.kubernetes.io/ttl: 0
                    projectcalico.org/IPv4Address: 10.0.0.115/24
                    projectcalico.org/IPv4IPIPTunnelAddr: 192.168.217.0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Thu, 18 Jun 2020 10:21:48 +0530
Taints:             node-role.kubernetes.io/master:NoSchedule

当某些条件成立时,节点控制器会自动污染节点。内置了以下污点:

node.kubernetes.io/not-ready: 节点尚未准备好。这对应于 NodeCondition Ready 为“False”。

node.kubernetes.io/unreachable:从节点控制器无法访问节点。这对应于 NodeCondition Ready 为“未知”。

node.kubernetes.io/out-of-disk:节点磁盘不足。

node.kubernetes.io/memory-pressure: 节点有内存压力。

node.kubernetes.io/disk-pressure: 节点有磁盘压力。

node.kubernetes.io/network-unavailable: 节点网络不可用。

node.kubernetes.io/unschedulable: 节点不可调度。

node.cloudprovider.kubernetes.io/uninitialized:当 kubelet 通过“外部”云提供商启动时,会在节点上设置此污点以将其标记为不可用。在 cloud-controller-manager 中的控制器初始化此节点后,kubelet 会删除此污点。

除了上面的特殊污点node-role.kubernetes.io/master:NoSchedule默认添加到主节点。

如果存在以下情况,通常会出现该错误taint在您没有对应的节点上toleration在 Pod 规格中。

下面是一个具有容忍度的 Pod 示例。

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  tolerations:
  - key: "example-key"
    operator: "Exists"
    effect: "NoSchedule"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1 个节点存在 pod 在 kubernetes 集群中无法容忍的污点 的相关文章

随机推荐