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 |
标签:
Kubernetes
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥