k8s使用scale扩缩容与版本的滚动更新

艺帆风顺 发布于 2025-04-02 22 次阅读


使用kubectl run创建应用

    kubectl run kubernetes-bootcamp > --image=docker.io/jocatalin/kubernetes-bootcamp:v1 > --port=8080

             

    端口暴露出去

    kubectl expose pod kubernetes-bootcamp --type="NodePort" --port 8080

             

    使用kubectl create创建应用

      kubectl create deployment kubernetes-bootcamp --image=docker.io/jocatalin/kubernetes-bootcamp:v1

      端口暴露出去

        kubectl expose deployment/kubernetes-bootcamp > --type="NodePort" > --port 8080

        run与create区别:

        run为一次性的创建运行,删除后不会自动生成,没有pod控制器

        create创建的,删除后还会自动生成,有pod控制器,拥有副本集控制

                 

        scale应用

        默认情况下

        应用只会运行一个副本,可以通过命令查看副本数

        kubectl get deployments

                 

        执行如下命令将副本数增加到3个,如图所示。

        kubectl scale deployments/kubernetes-bootcamp --replicas=3

        查看当前pod

        通过curl访问应用,可以看到每次请求发送到不同的Pod,3个副本轮询处理,这样就实现了负载均衡

                 

        缩减副本

        kubectl scale deployment/kubernetes-bootcamp --replicas=2

        显示其中一个副本被删除了

                 

        滚动更新

        现在将其升级为v2

        kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2

        验证-更新成功

                 

        回退到上一个版本

        执行 kubectl rollout undo命令

        kubectl rollout undo deployment/kubernetes-bootcamp

        验证-回滚成功