Deployment
Deployment概念:
用于部署无状态的服务,这个最常用的控制器。一般用于管理维护企业内部无状态的微服务,比如configserver、zuul、springboot。他可以管理多个副本的Pod实现无缝迁移、自动扩容缩容、自动灾难恢复、一键回滚等功能。
1. 创建一个Deployment
01.#deployment就是要创建的资源,Nginx是名称,它使用的镜像名字叫Nginx:1.15.2
[root@k8s-master01 ~]# kubectl create deployment Nginx --image=Nginx:1.15.2
02.##查看是否创建成功,利用重定向导出yaml文件
[root@k8s-master01 ~]# kubectl create deployment Nginx –o yaml > Nginx-deploy.yaml
03.[root@k8s-master01 ~]# kubectl get deploy
# 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息
[root@k8s-master01 ~]# kubectl get deploy -owide
#查看Pod标签
[root@k8s-master01 ~]# kubectl get pod -show-labels
# 查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息
[root@k8s-master01 ~]# kubectl get rs
2. 更改deployment的镜像并记录
[root@k8s-master01 ~]# kubectl set image deploy Nginx Nginx=Nginx:1.15.3 –record
#查看更新过程:
[root@k8s-master01 ~]# kubectl rollout status deploy Nginx
3. Deployment回滚
01.# 执行更新Nginx版本(假设误操作787977da)
[root@k8s-master01 ~]# kubectl set image deploy Nginx Nginx=Nginx:787977da --record
02.# 查看历史版本
[root@k8s-master01 ~]# kubectl rollout history deploy Nginx
03.# 回滚到上一个版本
[root@k8s-master01 ~]# kubectl rollout undo deploy Nginx
04.# 使用grep查找版本
[root@k8s-master01 ~]# kubectl get deploy Nginx -oyaml | grep Nginx
05.# 查看指定版本的详细信息
[root@k8s-master01 ~]# kubectl rollout history deploy Nginx --revision=5
06.# 回滚到指定的版本
[root@k8s-master01 ~]# kubectl rollout undo deploy Nginx --to-revision=5
07.# 查看deploy状态
[root@k8s-master01 ~]# kubectl get deploy -oyaml
4. Deployment的扩容和缩容
01.扩容:将deployment中的Nginx容器的pod副本数设置为3,pod创建中
#kubectl scale –replicas=3 deploy Nginx
02.缩容:将deployment中的Nginx容器的pod副本数设置由3改为2,pod删除中
#kubectl scale –replicas=2 deploy Nginx
03.查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息
# kubectl get rs
5. Deployment的暂停和恢复
✥1.#暂停#
01.# 只要deployment在暂停中,使用deployment更新将不会生效。
[root@k8s-master01 ~]# kubectl rollout pause deployment Nginx
02.# 进行第二次配置变更,添加内存cpu配置
[root@k8s-master01 ~]# kubectl set resources deploy Nginx -c Nginx --limits=cpu=200m,memory=128Mi --requests=cpu=10m,memory=16Mi
03.# 查看yaml文件配置是否生效
[root@k8s-master01 ~]# kubectl get deploy Nginx -oyaml
04.# 查看pod是否被更新
[root@k8s-master01 ~]# kubectl get pod
✥2.#恢复#
kubectl rollout resume 恢复已暂停的资源;
#被pause命令暂停的资源将不会被控制器协调使用。可以通过resume来恢复资源。目前仅支持恢复deployment资源
01.# 查看pod是否被更新
[root@k8s-master01 ~]# kubectl get pod
02.# 恢复已暂停的Nginx资源
[root@k8s-master01 ~]# kubectl rollout resume deployment Nginx
03.# 查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息
[root@k8s-master01 ~]# kubectl get rs
04.# 查看pod是否被更新,恢复过来然后继续创建容器
[root@k8s-master01 ~]# kubectl get pod
05.# 查看具体的Nginx-68db656dd8(实际名称)的yaml文件配置是否生效
[root@k8s-master01 ~]# kubectl get deploy Nginx-68db656dd8 -oyaml
执行kubectl get rs和kubectl get pods会显示Replica Set(RS)和Pod已创建的信息,可能会注意到Replica Set的名字总是<Deployment的名字>-<pod template的hash值>
复制
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。