Kubernetes利用ReplicationController、Replica Set、Deploym(2)

使用Deployment升级Pod,只需要定义Pod的最终状态,k8s会为你执行必要的操作,虽然能够使用命令 # kubectl rolling-update 完成升级,但它是在客户端与服务端多次交互控制RC完成的,所以REST API中并没有rolling-update的接口,这为定制自己的管理系统带来了一些麻烦。

Deployment拥有更加灵活强大的升级、回滚功能。

目前,Replica Set与RC的区别只是支持的selector不同,后续肯定会加入更多功能。Deployment使用了Replica Set,是更高一层的概念。除非需要自定义升级功能或根本不需要升级Pod,一般情况下,我们推荐使用Deployment而不直接使用Replica Set。

使用子命令create,创建Deployment

# kubectl create -f deployment.yaml --record

注意–record参数,使用此参数将记录后续创建对象的操作,方便管理与问题追溯

使用子命令edit,编辑spec.replicas/spec.template.spec.container.image字段,完成deployment的扩缩容与滚动升级(这要比子命令rolling-update速度快很多)

# kubectl edit deployment hello-deployment

使用rollout history命令,查看Deployment的历史信息

# kubectl rollout history deployment hello-deployment

上面提到RC在rolling-update升级成功后不能直接回滚,而使用Deployment却可以回滚到上一版本,但要加上–revision参数,指定版本号

# kubectl rollout history deployment hello-deployment --revision=2

使用rollout undo回滚到上一版本

# kubectl rollout undo deployment hello-deployment

使用–to-revision可以回滚到指定版本

# kubectl rollout undo deployment hello-deployment --to-revision=2 三、总结

通过对比,我们发现新的Replica Set、Deployment,比RC要强大易用很多。

Docker中部署Kubernetes

Kubernetes集群部署 

Kubernetes 滚动升级

OpenStack, Kubernetes, Mesos 谁主沉浮 

Kubernetes集群搭建过程中遇到的问题及解决 

Ubuntu下部署Kubernetes集群 

Kubernetes 的详细介绍请点这里
Kubernetes 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/97249d096b17cd5ad7748bed4d5aa4a8.html