zoukankan      html  css  js  c++  java
  • Kubernetes之应用升级回滚弹性伸缩

      通过命令可以替换镜像升级

    kubectl set image
    

      以上一篇的web.yaml为例

       把镜像替换成nginx

    kubectl set image deployment web java=nginx
    

      三个副本滚动升级,新容器处于运行状态会删除旧容器

     

       再次访问无法访问了

       因为之前java的后端端口是8080但是更新以后需要转发的端口是80

      通过edit编辑修改service的转发端口为80

    kubectl edit svc/web
    

      可以访问了访问的为nginx页面

       

       查看升级状态

    kubectl rollout status deployment/nginx
    

       部署的应用有问题需要回滚到之前的版本

      deployment会保留每次滚动更新的记录

    kubectl rollout history deployment web
    

       使用快捷命令回滚到上一个版本,很少回滚到之前的某个指定版本

    kubectl rollout undo deployment web
    

      查看状态

       再次把端口修改成8080即可 (生产环境应该都是相同的端口不需要反复修改)

    kubectl edit svc/web
    

      

       使用ip加端口即可访问

      回滚到指定版本

    kubectl rollout undo deployment/web --to-revision=2
    

      删除

    kubectl delete deploy/web
    kubectl delete svc/web
    

      如果直接删除pod会不起作用 因为删除一个会启动一个

    kubectl delete pod web-867dd4dcf-dkpvx
    

       deployment可以保证预期的副本数,如果少一个pod会启动一个,如果多了会删除

      当部署一个应用面对双11了 可以对应用实例进行扩容,传统的扩容方式是扩容虚拟机,比较繁琐

      在k8s中使用一条命令就可以扩容副本数

    kubectl scale  deployment web --replicas=5
    

       如果集群的资源不够这种扩容也意义不大,需要集群的资源够用

      设定副本数也可以缩容

    kubectl scale  deployment web --replicas=3
    

      部署一个depolyment会创建一个replicaset  

    kubectl get deploy,rs
    

       rs对比运行的副本数和运行的副本数,如果少了就新启一个副本

      还有一个作用是记录历史记录方便回滚等操作

      滚动更新会创建一个新的rs

       滚动更新期间会有一个新旧版本的存在,新创建的pod准备就绪了会kill掉旧pod 旧的rs副本数最后变成0了

        

  • 相关阅读:
    Windbg命令学习11(.dump)
    Windbg命令学习13(ln和伪寄存器)
    Windbg命令学习15(bp bm bu bl bc ba断点)
    Windbg命令学习16(!gle和g和p)
    Windbg命令学习0 (.symfix和.cls和设置Log文件)
    API拦截方法一:PE简介
    Windbg命令学习12(.lastevent和!analyze)
    Windbg命令学习14(dv)
    Davinci DM6446开发攻略——LINUX GPIO驱动源码移植
    Centos 编译安装高版本Python方法
  • 原文地址:https://www.cnblogs.com/minseo/p/12170044.html
Copyright © 2011-2022 走看看