k8s pod升级

  • 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

示例介绍 :

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容