节点宕机后驱离pod到健康的节点

网友投稿 218 2022-10-24

节点宕机后驱离pod到健康的节点

默认情况下:

一个节点宕机后,

Kubernetes 会自动给 Pod 添加一个 key 为 node.kubernetes.io/not-ready 的容忍度 并配置 tolerationSeconds=300,除非用户提供的 Pod 配置中已经已存在了 key 为 node.kubernetes.io/not-ready 的容忍度。

同样,Kubernetes 会给 Pod 添加一个 key 为 node.kubernetes.io/unreachable 的容忍度 并配置 tolerationSeconds=300,除非用户提供的 Pod 配置中已经已存在了 key 为 node.kubernetes.io/unreachable 的容忍度。

这种自动添加的容忍度意味着在其中一种问题被检测到时 Pod 默认能够继续停留在故障节点运行 5 分钟。

通过改变容忍度的时间定义,可以更快速的自动迁移pod到健康的节点:

tolerations:      - key: node.kubernetes.io/not-ready        operator: Exists        effect: NoExecute        tolerationSeconds: 2      - key: node.kubernetes.io/unreachable        operator: Exists        effect: NoExecute        tolerationSeconds: 2

deployment的yaml代码如下:

apiVersion: apps/v1 kind: Deployment metadata: labels: app: www name: www namespace: webapp spec: progressDeadlineSeconds: 600 replicas: 6 revisionHistoryLimit: 10 selector: matchLabels: app: www strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: creationTimestamp: null labels: app: www spec: containers: - image: nginx imagePullPolicy: Always name: nginx resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File tolerations: - key: node.kubernetes.io/not-ready operator: Exists effect: NoExecute tolerationSeconds: 2 - key: node.kubernetes.io/unreachable operator: Exists effect: NoExecute tolerationSeconds: 2 dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30

kubectl apply -f "False"。 node.kubernetes.io/unreachable:节点控制器访问不到节点. 这相当于节点状态 Ready 的值为 "Unknown"。 node.kubernetes.io/memory-pressure:节点存在内存压力。 node.kubernetes.io/disk-pressure:节点存在磁盘压力。 node.kubernetes.io/pid-pressure: 节点的 PID 压力。 node.kubernetes.io/network-unavailable:节点网络不可用。 node.kubernetes.io/unschedulable: 节点不可调度。 node.cloudprovider.kubernetes.io/uninitialized:如果 kubelet 启动时指定了一个 "外部" 云平台驱动, 它将给当前节点添加一个污点将其标志为不可用。在 cloud-controller-manager 的一个控制器初始化这个节点后,kubelet 将删除这个污点。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker部署searchcode
下一篇:浅析数字电缆中的模拟接口和数字接口
相关文章

 发表评论

暂时没有评论,来抢沙发吧~