注明:当前文档内容来源于51cto课堂‘宽哥’杜宽学习课程。
一、Deployment 扩容(此文章暂介绍手动扩容)
使用kubectl scale 动态调整Pod的副本数,比如增加Pod为5个
kubectl scale deployment nginx-deployment --replicas=5
如果需要进行缩容直接修改 --replicas 对应数字即可
注意:对当前方法为无状态资源类型方式,StatefulSet 有状态资源千万千万不要缩容
二、暂停和恢复Deployment 更新
场景:一些情况下可能需要针对一个资源文件更改多出地方,而并不需要多次触发更新,此时可以使用Deployment 暂停功能,临时禁用更新操作,对Deployment 进行多次后再进行更新。
使用kubectl rollout pause 命令即可暂停Deployment更新
kubectl rollout pause deployment nginx-deployment
经过多次更新资源文件后可以使用rollout history 查看是否被更新
kubectl rollout history deployment nginx-deployment
使用kubectl rollout resume 恢复Deployment 更新
kubectl rollout resume deployment nginx-deployment
可以查看到恢复更新的Deployment 创建了一个新的RS(ReplicaSet缩写)
kuectl get rs
三、Deployment 的注意事项
历史版本清理策略:
在默认情况下, revision保留10个旧的ReplicaSet, 其余的将在后台进行垃圾回收,可以在.spec.revisionHistoryLimit 设置保留ReplicaSet的个数。当时设置为0时,不保留历史记录。
更新策略: 1 .spec.strategy.type==Recreate,表示重建,先删掉就得Pod 在创建新的Pod
2 .spec.strategy.type==RollingUpdate,表示滚动更新,可以指定maxUnavailable 和maxSurge来控制滚动更新过程。
3 .spec.strategy.rollingUpdate.maxUnavailable,指定在回滚更新时最大不可用的Pod数量,可选字段,默认为25%,可以设置为数字或百分比,如果maxSurge为0,则该值不能为0
4 .spec.strategy.rollingUpdate.maxSurge 可以超过期望值的最大Pod数,可选字段,默认为25%,可以设置成数字或百分比,如果maxUnavailable为0,则该值不能为0
Ready 策略
.spec.minReadySeconds 可选参数,指定新创建的Pod应在在没有任何容器崩溃的情况下视为Ready(就绪)状态的最小秒数,默认为0,即一旦被创建就视为可用,通常和容器探针连用。