38 k8s-Deployment 20220505
互联网 2022/5/5 6:15:27
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值>
搜索
复制

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[38 k8s-Deployment 20220505]http://www.zyiz.net/tech/detail-319380.html
- 2023-06-01聊聊部署在K8S的项目如何获取客户端真实IP
- 2023-05-10为什么Kubernetes已经成为程序员必备技能
- 2023-04-02一文读懂k8s的外网访问方式,Ingress/NodePort/LoadBanlancer
- 2023-04-02基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3
- 2023-04-02基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3
- 2023-03-12K8S 性能优化 - 大型集群 CIDR 配置
- 2023-03-12K8S 性能优化 - K8S APIServer 调优
- 2023-03-12K8S 性能优化-K8S Node 参数调优
- 2023-03-08K8S 实用工具之二 - 终端 UI K9S
- 2023-03-08K8S 实用工具之三 - 图形化 UI Lens