kubernetes 控制器
admin
2023-02-23 08:40:04
0

1.基础

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy
  namespace: default
spec:
  replicas: 2
  selector:
    matchLabels:
      app: myapp
      release: dev
  template:
    metadata:
      labels:
        app: myapp
        release: dev
    spec:
      containers:
      - name: myapp-rongqi
        image: ikubernetes/myapp:v1

2.滚动升级

vim de.yaml #修改yaml里的镜像版本
kubernetes 控制器

 apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deploy
  namespace: default
spec:
  replicas: 5
  selector:
    matchLabels:
      app: myapp
      release: dev
  strategy:
    rollingUpdate:
    #设置策略为滚动更新,还有一个重建更新,全部一起结束一起新建 不友好这里就不介绍了
      maxSurge: 1
      #最大可超出预设值1个容器
      maxUnavailable: 0
      #最大可有0个容器不可用 ,整体表示更新时可同时可有6个容器,必须保证有5个容器可用
  template:
    metadata:
      labels:
        app: myapp
        release: dev
    spec:
      containers:
      - name: myapp-rongqi
        image: ikubernetes/myapp:v1

kubectl apply -f de.yaml #用apply更新配置

[root@cs25 ~]# kubectl get pod  -l app=myapp -w
NAME                            READY   STATUS    RESTARTS   AGE
myapp-deploy-576d479bcc-bt7hz   1/1     Running   0          47m
myapp-deploy-576d479bcc-bzqwv   1/1     Running   0          11m
myapp-deploy-576d479bcc-hf6kb   1/1     Running   0          47m
myapp-deploy-576d479bcc-hgb6w   1/1     Running   0          11m
myapp-deploy-576d479bcc-vztqp   1/1     Running   0          11m
myapp-deploy-7f969b64fb-2frdn   0/1     Pending   0          0s
myapp-deploy-576d479bcc-vztqp   1/1     Terminating   0          12m
myapp-deploy-7f969b64fb-6lhjw   0/1     Pending       0          0s
myapp-deploy-7f969b64fb-2frdn   0/1     Pending       0          0s
myapp-deploy-7f969b64fb-6lhjw   0/1     Pending       0          0s
myapp-deploy-7f969b64fb-5ms8f   0/1     Pending       0          0s
myapp-deploy-7f969b64fb-5ms8f   0/1     Pending       0          0s
myapp-deploy-7f969b64fb-6lhjw   0/1     ContainerCreating   0          1s
myapp-deploy-7f969b64fb-2frdn   0/1     ContainerCreating   0          1s
myapp-deploy-7f969b64fb-5ms8f   0/1     ContainerCreating   0          0s
myapp-deploy-7f969b64fb-2frdn   0/1     ContainerCreating   0          35s
myapp-deploy-7f969b64fb-5ms8f   0/1     ContainerCreating   0          35s
myapp-deploy-7f969b64fb-6lhjw   0/1     ContainerCreating   0          36s
myapp-deploy-576d479bcc-vztqp   0/1     Terminating         0          12m
myapp-deploy-576d479bcc-vztqp   0/1     Terminating         0          12m
myapp-deploy-576d479bcc-vztqp   0/1     Terminating         0          12m
myapp-deploy-7f969b64fb-5ms8f   1/1     Running             0          43s
myapp-deploy-7f969b64fb-2frdn   1/1     Running             0          47s
myapp-deploy-7f969b64fb-6lhjw   1/1     Running             0          51s
myapp-deploy-576d479bcc-hgb6w   1/1     Terminating         0          13m
myapp-deploy-576d479bcc-bzqwv   1/1     Terminating         0          13m
myapp-deploy-576d479bcc-bt7hz   1/1     Terminating         0          49m
myapp-deploy-7f969b64fb-gprvk   0/1     Pending             0          0s
myapp-deploy-7f969b64fb-fwdbr   0/1     Pending             0          0s
myapp-deploy-7f969b64fb-fwdbr   0/1     Pending             0          1s
myapp-deploy-7f969b64fb-gprvk   0/1     Pending             0          1s
myapp-deploy-7f969b64fb-fwdbr   0/1     ContainerCreating   0          1s
myapp-deploy-7f969b64fb-gprvk   0/1     ContainerCreating   0          1s
myapp-deploy-576d479bcc-hgb6w   0/1     Terminating         0          13m
myapp-deploy-576d479bcc-bzqwv   0/1     Terminating         0          13m
myapp-deploy-7f969b64fb-fwdbr   0/1     ContainerCreating   0          18s
myapp-deploy-7f969b64fb-gprvk   0/1     ContainerCreating   0          19s
myapp-deploy-576d479bcc-hgb6w   0/1     Terminating         0          13m
myapp-deploy-576d479bcc-bt7hz   0/1     Terminating         0          49m
myapp-deploy-576d479bcc-bzqwv   0/1     Terminating         0          13m
myapp-deploy-7f969b64fb-gprvk   1/1     Running             0          20s
myapp-deploy-7f969b64fb-fwdbr   1/1     Running             0          20s

kubectl get rs -o wide #使用命令查看
kubernetes 控制器
可以看到当前镜像版本已经换成了v2 且模板也变了,之前的v1版本还保这方便回滚,yaml文件内容修改一次就会当做一次更新,最后一串数字就是通过yaml文件计算出来的
注意: deployment的pod模板被更改时才会创建新的修订版本,例如更新模板标签或者容器镜像可以触发滚动更新, 其它操作例如扩展副本数将不会触发deployment的更新操作

金丝雀发布

kubectl set image deploy myapp-deploy myapp-rongqi=ikubernetes/myapp:v3 && kubectl rollout pause deploy myapp-deploy
#kubectl set image deploy "控制器Name" "容器name"=ikubernetes/myapp:v3 && kubectl rollout pause deploy "控制器Name"
#原理就是先升级一个容器的版本,执行pause 暂停升级任务,待升级的那个容器经过真实用户测试后无错后解除暂停
kubernetes 控制器
kubectl get rs -o wide #查看控制器能看到,有1个v3版,5个v2版本,出现6个的原因是我滚动策略定义了升级可允许存在6个
kubectl rollout resume deploy myapp-deploy
#解除暂停
kubernetes 控制器
#解除暂停后能看到,v2版本在一点点的关闭向v3版转移,最终v2全部关闭,v3版5个容器全部正常上线

回滚

 kubectl rollout history deployment/nginx-deployment
 #查看升级历史记录
 kubectl rollout history deployment/nginx-deployment --revision=2
 #查看某个升级历史记录的的详细信息
kubectl rollout undo deployment/nginx-deployment
#回滚到上一个版本
kubectl rollout undo deployment/nginx-deployment --to-revision=2
#回滚到指定版本

相关内容

热门资讯

携程被罚没51.79亿元 7月25日,市场监管总局依法对携程集团有限公司(以下简称携程)滥用市场支配地位实施垄断行为作出行政处...
多地停运停航停课,台风“红霞”... 中央气象台7月25日06时继续发布台风橙色预警:今年第12号台风“红霞”已于今天(25日)早晨由强热...
“直-20家族”全亮相 近日,在陆军某旅直升机分队演训中,直-20与直-20T表现亮眼。075型两栖攻击舰日前也搭载直-20...
蒋万安借“725上凯道”成蓝营... 中国国民党25日将于台北凯道举办“我是人,我反毒台”集会,向民进党当局抗议中联毒油案。对此,资深媒体...
波轮式全自动洗衣机脱水时波轮转 波轮式全自动洗衣机脱水时波轮转1、衣物放置不平导致;2、排水系统发生阻塞。3、顶部的安全开关损坏;4...
洗衣机不出水怎么查原因 当洗衣机不出水时,一定是出了问题。下面就是一些可能的原因及其解决方法:1. 电源问题洗衣机不能正常工...
半自动洗衣机放不出水是什么原因... 1、检查过滤网是否堵塞。若堵塞了需要将脏东西取出来,然后再用清水将过滤网清洗干净。2、检查一下是不是...
全自动洗衣机不出水是什么原因 1、进水口的滤网被水中的杂质堵住。2、控制板上的进水继电器坏了。3、电路故障,进水电磁阀有故障或者插...
抽油烟机只通电不转怎么回事 只通电不转的故障原因和解决方法:1、电容量减小或损坏。解决方法:抽油烟机电机不转,还有嗡嗡声,一般是...
谷歌被罚9亿欧元后,特朗普称欧... 当地时间7月23日,欧盟委员会指控美国谷歌公司违反欧盟《数字市场法》,对其处以8.9亿欧元罚款。这一...