k8s项目的发布(金丝雀发布)

目录

三种发布方式

1.蓝绿发布

2.金丝雀发布(灰度发布)

实验:k8s实现金丝雀发布

3.滚动发布(默认形式)


因为应用升级以及新旧业务切换,所以在这个过程当中如何保证对外的服务正常是一个非常重要的问题。

三种发布方式

1.蓝绿发布

会把服务器分为蓝组和绿组,比如先停蓝组,绿组依然对外提供服务,等蓝组更新维护完毕上线之后,再把绿组关闭维护。这样可以保证做业务更新和发布过程的对外服务不受影响。

特点:1.一旦出现问题,影响范围比较大

2.发布策略也比较简单

3.有了负载均衡和高可用之后,用户无感知,可以实现平滑过度

缺点:需要大量的后台服务器作为支撑,成功比较高

2.金丝雀发布(灰度发布)

它是现在比较流行的方式

deployment控制器可以通过自定义控制的方式实现金丝雀发布。

金丝雀发布对自动化控制要求高,整个系统的稳定性比蓝绿发布要高,它的影响范围可控

实验:k8s实现金丝雀发布

kubectl create ns xy102 创建命名空间

kubectl create deployment nginx1 --image=nginx:1.12 --replicas=3 -n xy102 创建资源对象

kubectl set image deployment/nginx1 nginx=nginx:1.22 -n xy102 && kubectl rollout pause deployment nginx1 -n xy102 升级并打断点,此时就会暂停

此时就会多出来一个pod,这个pod就是已经升级好了的版本

kubectl rollout resume deployment/nginx1 取消暂停,这样它就会把剩下的全部更新

3.滚动发布(默认形式)

滚动发布部署时间比较慢,发布的策略也比较复杂,但是它节约资源。

kubectl set image deployment/nginx1 nginx=nginx:1.18 -n xy102

此时 kubectl get pod -o wide -n xy102 即可查看是否正则更新

kubectl rollout history deployment/nginx1 -n xy102 查看还原点

数字大小决定了距离上次更新操作的远近,数字越大,就是最近的一次操作

kubectl set image deployment/nginx1 nginx=nginx:1.20 --record -n xy102 record添加更新记录

相关推荐
心理之旅10 小时前
高校文献检索系统
运维·服务器·容器
大佐不会说日语~11 小时前
使用Docker Compose 部署时网络冲突问题排查与解决
运维·网络·spring boot·docker·容器
曾几何时`14 小时前
Docker容器化部署编译运行模块
运维·docker·容器
直饮水观察哨16 小时前
商用净水器亲测对比,哪个更专业?
容器
塔克拉玛攻城狮16 小时前
最新!银河麒麟v11 kubeadm部署k8s v1.35.0高可用集群
kubernetes·银河麒麟
Suchadar17 小时前
Docker基础命令(二)——数据卷管理端口映射与容器互联
运维·docker·容器
firstacui17 小时前
Docker容器网络管理与容器数据卷管理
运维·docker·容器
王锋(oxwangfeng)17 小时前
Apache Flink 在 Kubernetes 上的高效部署与优化实践
flink·kubernetes·apache
努力搬砖的咸鱼19 小时前
部署你的第一个应用到 K8s
微服务·云原生·容器·kubernetes
故乡de云19 小时前
2026年谷歌云价格走势深度分析:企业如何在高成本时代保持竞争力?
运维·kubernetes·云计算