容器编排进阶:如何使用 Kubernetes Deployment 实现高可用

冷漠man

冷漠man

2026-07-04

1009人浏览

原创

kubernetes通过deployment协同多副本、健康探针、滚动更新、反亲和调度及集群高可用架构实现应用高可用:设置replicas≥3并分散节点,配置livenessprobe与readinessprobe,启用rollingupdate策略,结合podantiaffinity和topologyspreadconstraints跨区打散,依赖多master与etcd集群保障控制平面稳定。

容器编排进阶:如何使用 kubernetes deployment 实现高可用

要让应用在 Kubernetes 上真正高可用,单靠 Deployment 本身不够,它只是实现高可用的关键一环——负责无状态应用的弹性伸缩、滚动更新和故障自愈。真正的高可用需要 Deployment 与集群架构、健康检查、资源约束等协同配合。

Deployment 本身如何支撑高可用

Deployment 不直接管理 Pod,而是通过 ReplicaSet 控制副本数量,并保障 Pod 始终处于期望状态。当某个 Pod 异常退出,Deployment Controller 会自动拉起新 Pod 补足副本数,这是服务不中断的基础。

  • 设置 replicas ≥ 2,避免单点失效;生产环境建议至少 3 个副本,分散在不同节点上
  • 使用 RollingUpdate 策略,配合 maxUnavailable: 0maxSurge: 1,确保升级过程中始终有完整服务能力
  • 配置 revisionHistoryLimit(如设为 10),保留足够历史版本,便于快速回滚
  • 启用 progressDeadlineSeconds(如 600 秒),防止卡住的部署无限等待,触发失败告警

必须搭配的健康探针

没有探针的 Deployment 就像没装刹车的车——副本数对了,但流量可能打到还没就绪或已僵死的容器上。

Amper Music
Amper Music

允许用户使用人工智能生成和循环创建和定制音乐。

下载
  • readinessProbe 决定 Pod 是否加入 Service 的 endpoints:路径 /actuator/health/readinessinitialDelaySeconds: 30periodSeconds: 5 是常见合理值
  • livenessProbe 决定是否重启容器:路径 /actuator/health/livenessinitialDelaySeconds: 60(留出启动时间)、failureThreshold: 3 防止误杀
  • 两个探针的 port 必须与容器实际监听端口一致,且路径需由应用真实暴露

跨节点与跨可用区调度保障

即使副本数达标,如果所有 Pod 都挤在同一个节点或同一可用区,节点宕机或机房故障仍会导致服务中断。

  • 利用 PodAntiAffinity 规则,强制相同 label 的 Pod 尽量不调度到同一节点
  • 结合 topologySpreadConstraints,按 topologyKey: topology.kubernetes.io/zone 均匀打散到多个可用区
  • Worker 节点本身需跨物理机、跨机架甚至跨机房部署,这是集群层前提

与集群高可用能力联动

Deployment 运行依赖控制平面稳定。若 Master 全挂,Deployment Controller 停摆,新故障无法恢复。

  • 集群必须是多 Master 架构(≥3),通过负载均衡暴露统一 API 地址
  • etcd 至少 3 节点集群部署,开启 election-timeoutheartbeat-interval 优化选举响应
  • 为关键 Deployment 配置 PodDisruptionBudget(PDB),例如 minAvailable: 2,防止运维操作(如节点驱逐)导致副本低于可用底线

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

kubernetes

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Docker容器化部署与DevOps实践
Docker容器化部署与DevOps实践

本专题面向后端与运维开发者,系统讲解 Docker 容器化技术在实际项目中的应用。内容涵盖 Docker 镜像构建、容器运行机制、Docker Compose 多服务编排,以及在 DevOps 流程中的持续集成与持续部署实践。通过真实场景演示,帮助开发者实现应用的快速部署、环境一致性与运维自动化。

2026.02.11

138

16

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

2025.12.22

74

5

Go云原生应用与Kubernetes服务部署实战
Go云原生应用与Kubernetes服务部署实战

本专题围绕 Go 语言在云原生环境中的应用展开,讲解容器化部署、Kubernetes 编排、服务发现、健康检查与弹性扩缩容机制。通过真实云端案例,帮助开发者构建可扩展的云原生微服务架构。

2026.06.29

42

19

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

0

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

0

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

8

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

10

14

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习