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

k8s节点网络失联后会发生什么

Kubernetes节点网络失联的影响

当Kubernetes节点因网络问题失联时,集群行为会因配置和组件状态产生连锁反应。以下是关键影响点:

节点状态变为NotReady
kube-controller-manager通过kubelet心跳(默认10秒间隔)检测节点健康状态。若持续失联超过node-monitor-grace-period(默认40秒),节点状态标记为NotReady。此时:

  • 节点上的Pod仍显示在API中,但状态不会更新
  • 控制平面无法通过kubelet操作该节点上的Pod

Pod驱逐与重新调度
若节点失联超过pod-eviction-timeout(默认5分钟),kube-controller-manager会触发驱逐逻辑:

  • DaemonSet Pod会被保留,等待节点恢复
  • 其他Pod被标记为Terminating并从API删除
  • 若Pod由Deployment等控制器管理,新Pod会在其他健康节点重建

服务流量中断
失联节点上的Service Endpoints会被kube-controller-manager从Endpoint对象中移除:

  • 已建立的TCP连接可能继续工作(依赖具体CNI实现)
  • 新连接请求会被转发到其他健康节点
  • 若所有副本均在同一失联节点,服务完全不可用

存储卷行为
有状态应用可能受影响:

  • 使用本地存储的Pod数据可能丢失
  • 网络存储(如EBS、NFS)通常能保持数据,但需等待恢复或手动干预
  • StatefulSet会等待persistentVolumeReclaimPolicy决定的处理方式

关键配置参数调整建议

延长容忍时间
修改kube-controller-manager参数应对临时网络抖动:

--node-monitor-grace-period=60s      # 默认40秒
--pod-eviction-timeout=10m           # 默认5分钟

配置PDB防止大规模中断
通过PodDisruptionBudget限制驱逐比例:

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:name: zk-pdb
spec:minAvailable: 2selector:matchLabels:app: zookeeper

使用拓扑分布约束
避免单点故障导致全部副本不可用:

topologySpreadConstraints:
- maxSkew: 1topologyKey: kubernetes.io/hostnamewhenUnsatisfiable: DoNotSchedule

网络分区特殊场景处理

控制平面隔离
当部分control-plane节点失联时:

  • etcd集群需要多数节点存活才能维持写入
  • 存活节点少于(N/2)+1时,集群进入只读模式
  • 需要手动干预恢复quorum

工作节点隔离
完全隔离的工作节点会出现:

  • kubelet无法上报状态
  • Pod可能被误驱逐(若控制平面误判)
  • 节点恢复后可能出现资源冲突

解决方案建议

  • 部署多区域控制平面(使用--apiserver-count
  • 配置--node-status-update-frequency调整心跳频率
  • 使用kubectl cordon手动标记节点避免自动调度

网络恢复后,节点重新加入集群时会经历kubelet重启、容器检查等过程,系统会自动尝试恢复工作负载到期望状态。


文章转载自:

http://pBINqRpR.bxczt.cn
http://zm2ytGWe.bxczt.cn
http://aM7CRb6y.bxczt.cn
http://S3m64xUj.bxczt.cn
http://q4Tww5TX.bxczt.cn
http://TeRcYs9m.bxczt.cn
http://IYwltLeX.bxczt.cn
http://pMFAxbR7.bxczt.cn
http://vAimGXPH.bxczt.cn
http://0l8DbSEq.bxczt.cn
http://HGD4F5pS.bxczt.cn
http://Api6rErd.bxczt.cn
http://F6CWFwJ4.bxczt.cn
http://U4Bmh2NC.bxczt.cn
http://JGxmFIqO.bxczt.cn
http://ug6wLMWN.bxczt.cn
http://EVTLXe3M.bxczt.cn
http://ZMe3byj6.bxczt.cn
http://Kd6m59XP.bxczt.cn
http://5vFlbkFQ.bxczt.cn
http://XhsYPbPa.bxczt.cn
http://OWJaFzIj.bxczt.cn
http://ufAiu7Sd.bxczt.cn
http://gMiOok7i.bxczt.cn
http://jc6uLRfQ.bxczt.cn
http://pPCUBaJK.bxczt.cn
http://vhn0bPZO.bxczt.cn
http://293WojMJ.bxczt.cn
http://zDofSaiZ.bxczt.cn
http://6rt8zfLM.bxczt.cn
http://www.dtcms.com/a/386547.html

相关文章:

  • 3分钟掌握C++/Lua双向通信:一个高性能内核 + N个动态脚本
  • Spring MVC小点
  • SpringBoot的自动配置原理
  • 动力电池组半自动生产线:效率与灵活性的平衡之道|深圳比斯特自动化
  • 前端开发编辑器有哪些?常用前端开发编辑器推荐、前端开发编辑器对比与最佳实践分析
  • 【Linux】自动化构建工具——make/Makefile
  • Playwright MCP浏览器自动化教程
  • Linux 内存管理章节十四:多核世界的交通规则:深入Linux内存屏障与并发控制
  • .NET Core 中生成 JWT(JSON Web Token)
  • webRTc 为何深受直播实现的青睐?
  • iOS App 卡顿与性能瓶颈排查实战 如何定位CPU内存GPU帧率问题、优化耗电与网络延迟(uni-app开发性能优化全流程指南)
  • Tomcat的基本配置
  • Delphi6中实现PDF文件打印功能
  • 工作笔记-----基于FreeRTOS的lwIP网络任接收过程,从MAC至协议栈
  • ZipVoice小米语音合成-MacOS可运行
  • 技术驱动学术论文写作创新:以智能工具高效生成论文提纲为例
  • (笔记)进程间通讯
  • 电力行业数字化——解读麦肯锡企业数据架构数据治理架构设计规划【附全文阅读】
  • 如何搭建redis集群(docker方式非哨兵)
  • AWS Free Tier 2.0深度技术解析与实战指南
  • 深度学习-PyTorch基本使用
  • 飞书智能查询机器人搭建说明文档
  • 速通ACM省铜第六天 赋源码(MEX Count)
  • Python自动化测试·Selenium简单介绍
  • 腾讯云轻量服务器CentOSdocker报错信息
  • 玩转Docker小游戏项目系列: Docker部署红心纸牌网页小游戏
  • Spring Cloud 注册中心:Eureka 与 Nacos 深度对比
  • 机器视觉检测中光源的作用以及分类
  • php7.4使用systemd服务器管理文件无法启动的解决办法
  • 机器视觉检测中工业相机的作用以及分类