论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
【kubernetes】kubernetes Deployment 详解
【kubernetes】kubernetes Deployment 详解
王海鱼
金牌会员
|
2024-8-30 04:51:21
|
显示全部楼层
|
阅读模式
楼主
主题
645
|
帖子
645
|
积分
1935
kubernetes Deployment 详解
更新/回滚/缩放/停息/恢复部署操纵
Kubernetes是一种用于容器编排和管理的开源平台。在Kubernetes中,使用Deployment对象来界说和管理应用步伐的部署。
更新部署操纵:
要更新Deployment对象,可以通过修改Deployment的界说文件或使用kubectl命令举行更新。更新可以包罗更改容器的镜像、情况变量、资源限定等。
使用kubectl命令举行更新:
kubectl apply -f deployment.yaml
复制代码
这将查抄Deployment对象的界说文件并应用任何更改。
回滚部署操纵:
假如更新后的部署出现问题,可以回滚到先前的版本。Kubernetes会自动生存近来几个Deployment版本的状态。
使用kubectl命令举行回滚:
kubectl rollout undo deployment/<deployment-name>
复制代码
这将回滚到上一个版本。
缩放部署操纵:
可以通过修改Deployment的副本数来缩放应用步伐的部署。
使用kubectl命令举行缩放:
kubectl scale deployment/<deployment-name> --replicas=<new-replica-count>
复制代码
这将将Deployment的副本数更改为指定的数目。
停息部署操纵:
在某些情况下,可能需要停息Deployment的更新。Kubernetes提供了停息和恢复部署的功能。
使用kubectl命令举行停息:
kubectl rollout pause deployment/<deployment-name>
复制代码
这将停息Deployment的更新。
恢复部署操纵:
在停息部署后,可以恢复更新。
使用kubectl命令举行恢复:
kubectl rollout resume deployment/<deployment-name>
复制代码
这将恢复Deployment的更新。
总结:
通过使用kubectl命令或修改Deployment的界说文件,可以举行更新、回滚、缩放、停息和恢复部署操纵。这些操纵可以资助您更好地管理和控制应用步伐的部署和更新。
发布计谋
在发布应用步伐到Kubernetes集群时,可以采用以下几种发布计谋:
重复集(ReplicaSet):使用ReplicaSet控制器可以创建和管理多个副本(Pod)的集合。通过指定副本数,可以确保在集群中运行指定命量的Pod。
扩展和缩小:Kubernetes可以根据应用步伐的负载自动扩展和缩小副本数。可以使用水平自动扩展(Horizontal Pod Autoscaler)来监控应用步伐的负载并自动调整副本数。
滚动升级(Rolling Update):Kubernetes支持滚动升级应用步伐,可以逐步替换旧版本的Pod为新版本。如许可以确保应用步伐在升级过程中不中断。
蓝绿部署(Blue/Green Deployment):蓝绿部署是一种发布计谋,可以在Kubernetes集群中同时运行两个版本的应用步伐。通过将流量渐渐切换到新版本的应用步伐,可以实现无缝的升级。
金丝雀部署(Canary Deployment):金丝雀部署是一种渐进式发布计谋,可以在部署新版本应用步伐之前先将一小部门流量引导到新版本,以测试新版本的稳定性和性能。
假造DNS(Virtual DNS):Kubernetes可以使用假造DNS(例如,Kubernetes DNS)来管理应用步伐的访问。通过使用假造DNS,可以轻松地将请求路由到正确的服务和Pod。
以上是一些常见的Kubernetes发布计谋,可以根据具体的需求选择合适的发布计谋来管理和部署应用步伐。
下面是一些常见的k8s发布计谋及其命令。
Rolling Update(逐步更新):
逐步更新是最常见的发布计谋,它会逐步替换旧的Pod副本为新的Pod副本。
命令:kubectl set image deployment/<deployment-name> <container-name>=<new-image>
该命令将会更新指定Deployment中的所有Pod副本的容器镜像。
Blue-Green Deployment(蓝绿部署):
蓝绿部署通过将新的版本部署在一个独立的情况中,然后将流量切换到新的情况,从而实现零停机的部署。
命令:kubectl apply -f <new-deployment.yaml>
该命令将会创建一个新的Deployment,然后你可以根据需要将流量切换到新的Deployment。
Canary Deployment(金丝雀部署):
金丝雀部署是渐渐将新版本的Pod渐渐引入到现有的情况中,以低落部署风险。
命令:
kubectl create deployment nginx --image=nginx:1.14 -n zs --replicas=3
kubectl set image deployment nginx nginx=nginx:1.16 -n zs && kubectl rollout pause deployment nginx -n zs
复制代码
该命令将会更新指定Deployment中的一部门Pod副本的容器镜像。
Rollback(回滚):
假如发布出现问题,你可以回滚到之前的版本。
命令:kubectl rollout undo deployment/<deployment-name>
该命令将会回滚指定Deployment的更新。
Pause and Resume(停息和恢复):
假如你希望先停息发布更新,然后再恢复,可以使用停息和恢复命令。
命令:kubectl rollout pause deployment/<deployment-name>
和 kubectl rollout resume deployment/<deployment-name>
pause命令将会停息指定Deployment的更新,而resume命令将会恢复更新。
这些是一些常见的k8s发布计谋及其命令。根据实际需求,你可以选择得当你的发布计谋来部署和更新你的应用步伐。
1、在zs定名空间下创建3个httpd副本并查看结果
kubectl create ns zs
kubectl create deployment httpd --image=httpd -n zs --replicas=3
kubectl get po -n zs
复制代码
2、尝试删除此中一个副本并查看结果
kubectl delete pod httpd-757fb56c8d-5jnb7 -n zs
复制代码
3、删除所有副本并查看结果
kubectl delete deployments.apps httpd -n zs
复制代码
4、使用k8s做金丝雀发布测试
kubectl create deployment nginx --image=nginx:1.14 -n zs --replicas=3
kubectl set image deployment nginx nginx=nginx:1.16 -n zs && kubectl rollout pause deployment nginx -n zs
复制代码
另一个终端
kubectl get po -n zs -w
复制代码
kubectl expose deployment nginx --port=81 --target-port=80 -n zs --name=nginxzs-service --type=NodePort
复制代码
curl -I 192.168.99.172:31392
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
王海鱼
金牌会员
这个人很懒什么都没写!
楼主热帖
如何在 Vue 3 中使用<script lang=“t ...
Vue 和 Django 前后端分离实践 (注册 ...
一条SQL的执行原理
C#依赖注入(直白明了)讲解 一看就会系 ...
go中 for循环的坑
在Winform开发中,使用Async-Awati异步 ...
2023大数据面试总结
Vulnhub之Monkeybox详细测试过程(不同 ...
银河麒麟V10安装达梦数据库DM8 ...
DrawIO安装及基本使用教程
标签云
挺好的
服务器
快速回复
返回顶部
返回列表