当前位置: 首页 > news >正文

节点NotReady后容器驱逐时间调整

一、简介

早期k8s版本中,Kubernetes Controller Manager 有一些相关参数,用于控制节点监控和 Pod 驱逐的行为。

  • --node-monitor-grace-period=40s(节点失联后等待多久才标记为不健康)

  • --node-monitor-period=30s(Controller Manager 检查节点状态的频率)

  • --pod-eviction-timeout=5m0s(节点标记为不健康后,等待多久才开始驱逐 Pod)

但是在k8s 1.20版本后,节点失联后 Pod 的驱逐逻辑已完全由基于污点的驱逐 (Taint Based Evictions)机制接管。完全废弃了--pod-eviction-timeout参数。

参考官方链接:https://kubernetes.io/zh-cn/docs/reference/command-line-tools-reference/kube-apiserver/

接下来,我们测试一下,看看是否有效。

二、验证

2.1 先创建一个测试用例

现在可以看到,默认的容忍度时间是300秒。

2.2 修改kube-apiserver的启动参数

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

#重启kube-apsierver容器 mv kube-apiserver.yaml /tmp/ mv /tmp/kube-apiserver.yaml . #检查容器是否正常启动 docker ps|grep apiserver docker logs ${docker_id} kubectl get pod -n kube-system -o wide|grep kube-apiserver

2.3 验证驱逐时间

修改完kube-apiserver的启动参数后,只对新增容器有效,存量容器需要重启后生效:

接下来咱们模拟node节点故障,触发节点驱逐:

结果符合预期(可能有微小误差):

时间

动作

10:34:20

节点关机

10:35:11

节点NotReady

10:36:10

驱逐容器

三、扩展

有关于pod驱逐的效率可以参考kube-controller-manager的启动参数,官方链接:https://kubernetes.io/zh-cn/docs/reference/command-line-tools-reference/kube-controller-manager/

相关参数:

参数

含义

--large-cluster-size-threshold int32 默认值:50

node-lifecycle-controller 在执行 Pod 驱逐操作逻辑时, 基于此标志所设置的节点个数阈值来判断所在集群是否为大规模集群。 当集群规模小于等于此规模时,--secondary-node-eviction-rate会被隐式重设为 0。 注意:如果节点位于多个区域中,则此阈值将被每个区域视为区域节点大小阈值,以独立确定节点驱逐率。

--node-eviction-rate float 默认值:0.1

当某区域健康时,在节点故障的情况下每秒删除 Pods 的节点数。 请参阅--unhealthy-zone-threshold以了解“健康”的判定标准。 这里的区域(zone)在集群并不跨多个区域时指的是整个集群。

--secondary-node-eviction-rate float32 默认值:0.01

当一个区域不健康造成节点失效时,每秒钟从此标志所给的节点上删除 Pod 的节点个数。 参见--unhealthy-zone-threshold以了解“健康与否”的判定标准。 在只有一个区域的集群中,区域指的是整个集群。如果集群规模小于--large-cluster-size-threshold所设置的节点个数时, 此值被隐式地重设为 0。

http://www.jsqmd.com/news/76290/

相关文章:

  • 2025南京的留学中介有哪些 - 留学品牌推荐官
  • 2025南京商科留学机构十大排名 - 留学品牌推荐官
  • YOLOv5终极优化指南:从服务器到边缘的完整部署方案
  • 华为2025营销回顾,产品广告依旧遥遥领先
  • 【Java毕设源码分享】基于springboot+vue的个人博客系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • AI金融风控:从理论框架到产业实践的技术演进
  • Vue.Draggable版本管理深度解析:从语义化版本到风险控制
  • GreatSQL MGR三节点基于时间点恢复
  • 【OpenHarmony】设计模式模块详解
  • 2025年pet薄膜开关直销厂家推荐榜单:专业薄膜开关‌/导电薄膜开关‌/微波炉薄膜开关源头厂家精选 - 品牌推荐官
  • 3步搞定Go版本管理:从环境混乱到高效开发的终极指南
  • 如何在管家婆网店ERP中创建物流单模板?
  • 2025年中国不锈钢盘管制造企业排名:靠谱的不锈钢盘管制造企 - 工业推荐榜
  • 闪电AI文档转换Lite:离线免费的全能文档处理神器
  • 2025年质量好的抽屉阻尼隐藏轨/橱柜阻尼隐藏轨厂家实力及用户口碑排行榜 - 行业平台推荐
  • IonicRange滑动控件全解析
  • IonicTab入门:打造高效导航应用
  • 2025年多乙烯多胺环保型厂家TOP5权威推荐:源头供应企业 - 工业品牌热点
  • 管理系统权限管理(菜单、页面、按钮)react+redux/vue3 pinia实现方式
  • 2025年质量好的女士护手霜TOP实力厂家推荐榜 - 行业平台推荐
  • 12、深入探索Shell环境定制与任务管理
  • iOS调试救星:告别真机测试兼容性难题的终极指南
  • 东莞注塑加工厂哪里多
  • C++ 模板进阶:解锁泛型编程的高级玩法 - 详解
  • 助听器最新科技盘点:西嘉音聚平台,聚焦嘈杂环境多人对话 - 品牌排行榜单
  • windows部署Open-AutoGLM模型
  • 3分钟极速部署OpenMetadata元数据平台的完整指南
  • 永别了,控制台!
  • 2025年评价高的毛绒玩具激光切割机/自动送料激光切割机厂家实力及用户口碑排行榜 - 品牌宣传支持者
  • 机械故障诊断与振动信号数据集:工业设备健康监测的终极指南