-
Pod的扩容和缩容
kubectl scale [资源对象rc,Deployment,...] [资源对象名称metadata.name] --replicas=NUM
eg: kubectl scale rc myweb --replicas=3
升级与回滚
rolling-update OLD_CONTROLLER_NAME ([NEW_CONTROLLER_NAME] --image=NEW_CONTAINER_IMAGE | -f NEW_CONTROLLER_SPEC)
- 滚动升级(rolling-update):rolling-update命令一键完成升级,该命令会创建一个新的资源对象如RC,Deployment..然后控制旧的中的Pod数量,同时新的RC中的Pod数量主键增加到目标值,最终实现Pod升级。(新旧RC需在同一个Namespace中)
#更新frontend-v1的pod到frontend-v2
kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 --record
#更新frontend的pods,不更改replication controller的名称
kubectl rolling-update frontend --image=image:v2 --record
#不仅仅更新镜像:
如果你不仅仅是需要更新镜像,(例如,更新命令参数,环境变量等),你可以创建一个新的replication controller配置文件,
包含一个新的名称和不同的标签值 kubectl rolling-update my-nginx -f ./nginx-rc.yaml --record
-
非滚动升级方案:
旧版本:kubectl apply -f httpd.v1.yml --record
升级:kubectl apply -f httpd.v2.yml --record
回滚:查看旧版本号 kubectl rollout history deployment httpd
回滚到指定版本:kubectl rollout undo deployment httpd --to-revision=1
注:此方法可以在新的yml中指定滚动升级的参数,实现滚动升级https://www.jianshu.com/p/7411d15215b5