Deployment、ReplicaSet和Pod三者关系
Deployment控制ReplicaSet(版本),ReplicaSet控制Pod(副本数)。
更新策略
Recreate
删除所有已存在的pod,重新创建新的;
RollingUpdate
滚动升级
spec.minReadySeconds: 新建Pod状态保持Ready持续时间的最小值,才被认为Pod Ready。
spec.strategy.rollingUpdate.maxSurge: 整数或者百分比,计算时向上取整(3.4取4),Pod数超过replicas的最大值。
spec.strategy.rollingUpdate.maxUnavailable: 整数或者百分比,计算时向下取整(3.6取3),不Ready Pod数的最大值。
滚动更新过程中,保证Ready Pod数不低于replicas - maxUnavailable,Pod数不多于 replicas + maxSurge。
刚开始,滚动更新时,创建maxSurge个Pod,删除maxUnavailable个Pod。后面根据实际情况确定。
参考资料
《深入剖析Kubernetes》