kubernetes学习(一) Scale应用 & 滚动更新

一、Scale应用

  默认请款下应用只会运行一个副本,可通过kubectl get deployments 查看副本数。

1
2
3
4
<strong>~$</strong> kubectl get deployments
NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
blogtest              1         1         1            1           3d
kubernetes-bootcamp   1         1         1            1           3d

  1、使用scale增加pod数量

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

1
2
<strong>~$</strong> kubectl scale deployments/blogtest --replicas=3
deployment.extensions "blogtest" scaled

    通过kubectl get pods 可以看到当前的Pod增加到了三个。

1
2
3
4
5
6
7
8
9
10
11
<strong>~$</strong> kubectl get deployment
NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
blogtest              3         3         3            1           3d
kubernetes-bootcamp   1         1         1            1           3d
 
<strong>~$</strong> kubectl get pods
NAME                                  READY     STATUS              RESTARTS   AGE
blogtest-7f9798c5b5-drvl8             0/1       ContainerCreating   0          8s
blogtest-7f9798c5b5-gwkm9             1/1       Running             0          3d
blogtest-7f9798c5b5-snppq             0/1       ContainerCreating   0          8s
kubernetes-bootcamp-56cdd766d-5nj9n   1/1       Running             0          3d

    每次请求发送到不同的Pod,3个副本轮询处理请求,这样就可以实现负载均衡了。

  2、使用scale减少Pod数量

 

1
2
<strong>~$</strong> kubectl scale deployments/blogtest --replicas=2
deployment.extensions "blogtest" scaled

 

 

二、滚动更新

  1、滚动更新

   当前使用版本为v1,使用以下命令将其升级到v2.

1
2
3
4
5
6
7
<strong>~$</strong> curl galaxy-k8s-test-master-02:17812
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-5nj9n | v=1
 
<strong>~$</strong> kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2deployment.apps "kubernetes-bootcamp" image updated
 
<strong>~$</strong> curl galaxy-k8s-test-master-02:17812
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-7799cbcb86-7dnzp | v=2

    滚动更新过程:v1的Pod被逐个删除,同时启动了新的v2 Pod。

  2、回退更新

   如果要回退到v1版本,执行kubectl rollout undo 命令。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<strong>~$</strong> kubectl get pods
NAME                                   READY     STATUS        RESTARTS   AGE
blogtest-7f9798c5b5-gwkm9              1/1       Running       0          3d
blogtest-7f9798c5b5-snppq              1/1       Running       0          48m
kubernetes-bootcamp-56cdd766d-7skbz    1/1       Terminating   0          1m
kubernetes-bootcamp-7799cbcb86-bpnpp   1/1       Running       0          22s
 
<strong>~$</strong> curl galaxy-k8s-test-master-02:17812
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-7799cbcb86-bpnpp | v=2
 
<strong>~$</strong> kubectl rollout undo deployments/kubernetes-bootcamp
deployment.apps "kubernetes-bootcamp"
 
<strong>~$</strong> kubectl get pods
NAME                                   READY     STATUS        RESTARTS   AGE
blogtest-7f9798c5b5-gwkm9              1/1       Running       0          3d
blogtest-7f9798c5b5-snppq              1/1       Running       0          49m
kubernetes-bootcamp-56cdd766d-jjzqm    1/1       Running       0          13s
kubernetes-bootcamp-7799cbcb86-bpnpp   1/1       Terminating   0          57s
 
<strong>~$</strong> curl galaxy-k8s-test-master-02:17812
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-56cdd766d-jjzqm | v=1

  

 

posted @   console.log('宇航')  阅读(500)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥
点击右上角即可分享
微信分享提示