k8s(四)Deployment控制器

本文详细介绍了Kubernetes中的三种控制器——RC、RS和Deployment的区别和功能,重点讲解了Deployment的使用,包括创建、查看、更新、回滚、扩容缩容和暂停恢复等操作。此外,还提供了yaml配置示例和实际操作命令,帮助读者深入理解Kubernetes集群管理。
摘要由CSDN通过智能技术生成

目录

RC、RS、Deployment 区别:

Deployment 功能:

Deployment yaml:

Deployment 操作:

创建deployment:

查看deployment:

查看RS:

更新Deployment:

yaml方式更新:

查看rollout滚动更新状态:

回退Deployment:

扩容缩容Deployment:

暂停恢复Deployment:


RC、RS、Deployment 区别:

  • RC:用来确保容器应用的副本数始终保持在用户定义的数量,如果有容器异常退出,就会自动创建新Pod来补充,超过定义数量的Pod也会被销毁;
  • RS:代替RC的控制器,与RC功能一样,多了selector,官方推荐RS或Deployment;
  • Deployment:Deployment可以通过RS去创建管理Pod,且可以通过不同的RS来实现滚动更新,当前最常用的控制器就是Deployment;

Deployment 功能:

  • 创建RS和Pod;
  • 滚动升级和快速回滚;
  • 扩容缩容;
  • 暂停继续;

Deployment yaml:

# cat nginx-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
    name: nginx-deployment
spec:
    replicas: 3
    template: 
       metadata: 
         labels:
           app: nginx
       spec:
         containers:
         - name: nginx
           image: nginx:v1
           ports: 
           - containerPort: 80

Deployment 操作:

创建deployment:

# kubectl apply -f nginx-deployment.yaml

查看deployment:

# kubectl get deployment

NAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3         0         0            0           1s

过几秒再看
NAME               DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   3         3         3            3           18s
  • DESIRED:预期的副本数
  • CURRENT:已创建的副本数(升级策略不同,可能大于预期副本数)
  • UP-TO-DATE:新创建的副本数(滚动更新时会创建新的副本)
  • AVAILABLE:当前可用的副本数

查看RS:

# kubectl get rs
NAME                          DESIRED   CURRENT   READY   AGE
nginx-deployment-2035384211   3         3         0       18s

更新Deployment:

# kubectl set image deployment/nginx-deployment nginx=nginx:1.18.1

yaml方式更新:

# kubectl edit deployment/nginx-deployment

wq保存后自动更新副本

查看rollout滚动更新状态:

# kubectl rollout status deployment/nginx-deployment

Waiting for rollout to finish: 2 out of 3 new replicas have been updated...
deployment "nginx-deployment" successfully rolled out

这时查看RS会发现有两组RS,一组的pod慢慢会变成0

回退Deployment:

先查看升级的历史记录
# kubectl rollout history deployment/nginx-deployment

回退到历史版本
回退到当前版本的前一版本
# kubectl rollout undo deployment/nginx-deployment

回退到指定历史版本
# kubectl rollout undo deployment/nginx-deployment --to-revision=2

默认保留所有版本,如果 .spec.revisonHistoryLimit 被设置为0,则不允许回退; 

扩容缩容Deployment:

# kubectl scale deployment nginx-deployment --replicas 10

暂停恢复Deployment:

暂停

# kubectl rollout pause deployment/nginx-deployment

恢复

# kubectl rollout resume deploy nginx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值