ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

38 k8s-Deployment 20220505

2022-05-05 00:33:17  阅读:189  来源: 互联网

标签:kubectl 38 .# master01 nginx 20220505 k8s root


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值>

搜索

复制

标签:kubectl,38,.#,master01,nginx,20220505,k8s,root
来源: https://www.cnblogs.com/kevin306/p/16223082.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有