容器与编排无状态部署
Deployment 是什么?
声明要几个副本,负责滚动更新和回滚
类比:包工头,保证工地上始终有 3 个人在干活
它管什么
Deployment 声明「我要 3 个这个镜像的 Pod」,它创建 ReplicaSet 来维持副本数,并通过新建/缩容 ReplicaSet 完成滚动更新。
滚动更新参数
这两个参数决定了更新的激进程度。
- maxSurge:最多可以多出几个 Pod(默认 25%)
- maxUnavailable:最多可以少几个 Pod(默认 25%)
- 两者都设 0 会卡住,都设很大则可能瞬间翻倍占资源
- minReadySeconds + readinessProbe 决定新 Pod 什么时候算就绪
回滚与暂停
kubectl rollout undo deployment/app 回到上一版;rollout history 看历史;rollout pause 暂停更新做金丝雀观察。
注意:Deployment 只管无状态服务,有状态(数据库)要用 StatefulSet。