k8s pod被驱逐时间问题

90 篇文章 6 订阅
在默认配置下,k8s节点故障时,工作负载的调度周期约为6分钟,
参数概念:
  • node-monitor-period
    节点控制器(node controller) 检查每个节点的间隔,默认5秒。
  • node-monitor-grace-period
    节点控制器判断节点故障的时间窗口, 默认40秒。即40 秒没有收到节点消息则判断节点为故障。
  • pod-eviction-timeout
    当节点故障时,kubelet允许pod在此故障节点的保留时间,默认300秒。即当节点故障5分钟后,kubelet开始在其他可用节点重建pod。
    5+40+300 ≈ 6分钟

kubernetes节点失效后pod的调度过程:

  • 0、Master每隔一段时间和node联系一次,判定node是否失联,这个时间周期配置项为 node-monitor-period ,默认5s

  • 1、当node失联后一段时间后,kubernetes判定node为notready状态,这段时长的配置项为 node-monitor-grace-period ,默认40s

  • 2、当node失联后一段时间后,kubernetes判定node为unhealthy,这段时长的配置项为 node-startup-grace-period ,默认1m0s

  • 3、当node失联后一段时间后,kubernetes开始删除原node上的pod,这段时长配置项为 pod-eviction-timeout ,默认5m0s
    以下我的参数

vim /etc/kubernetes/manifests/kube-controller-manager.yaml

在这里插入图片描述
更多详细参数见官网:点击

最后再设置pods漂移时间
方法 1 统一设置时间

vim  /etc/kubernetes/manifests/kube-apiserver.yaml
添加以下参数
    - --default-not-ready-toleration-seconds=30
    - --default-unreachable-toleration-seconds=30

在这里插入图片描述

方法.2
再yaml文件上配置

#调整默认容忍时长
1 Kubernetes 为 Pod 自动添加的针对 unreachable / not-ready 污点的容忍时长由 APIServer 中的相应参数控制,如需修改请逐台在三台 Master 节点上进行如下操作:

在 APIServer 配置文件/etc/kubernetes/apiserver 中添加参数 --default-not-ready-toleration-seconds=100--default-unreachable-toleration-seconds=100,将对污点 NotReady:NoExecute 及 Unreachable:NoExecute 的容忍时长(以秒记,默认为 300)调整为 100s,修改前请做好配置文件备份;

2. 执行 systemctl restart kube-apiserver 重启 APIServer

3 . 执行 systemctl status kube-apiserver 确认 APIServer 状态为 active。

spec:
  template:
    spec:
      tolerations:
      - key: "node.kubernetes.io/unreachable"
        operator: "Exists"
        effect: "NoExecute"
        # 调整 Pod 对污点 Unreachable:NoExecute 的容忍时长为 100s
        tolerationSeconds: 100
      - key: "node.kubernetes.io/not-ready"
        operator: "Exists"
        effect: "NoExecute"
        # 调整 Pod 对污点 NotReady:NoExecute 的容忍时长为 100s
        tolerationSeconds: 100
      nodeSelector:
        storagenode: momo
      tolerations:
      - key: "node.kubernetes.io/unreachable"
        operator: "Exists"
        effect: "NoExecute"
        tolerationSeconds: 10
      - key: "node.kubernetes.io/not-ready"
        operator: "Exists"
        effect: "NoExecute"
        tolerationSeconds: 10

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值