当前位置: 首页 > article >正文

小新学习k8s第四天之发布管理

一、金丝雀发布(灰度发布)

Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。

①比如等待第一批新的Pod资源创建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主版本还是旧的版本:

②然后,在筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定的按期望的方式运行

③确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。

1.1、准备旧版本的nginx

1.2、更新deployment的版本,并配置暂停deployment

kubectl set image deployment/nginx-kfc nginx=nginx:1.15 -n kfc && kubectl rollout pause deployment/nginx-kfc -n kfc

kubectl rollout status deployment/nginx-kfc -n kfc  #观察更新状态



Waiting for deployment "nginx-01" rollout to finish: 1 out of 3 new replicas have been updated...
# 更新名为"nginx-01"的部署(Deployment)中的 "nginx" 容器的镜像版本为"nginx:1.15
# 暂停名为"nginx-01"的部署的滚动更新,这意味着在执行这个命令后,将不会继续推进新的副本集,并且当前的副本集将保持不变

1.3、开启另外一个窗口查看pod信息

监控更新的过程,可以看到已经新增了一个资源,但是并未按照预期的状态去删除一个旧的资源,就是因为使用了pause暂停命令

查看nginx版本信息

curl -I 10.244.2.14

curl -I 10.244.1.12

1.4、确保更新的pod没问题,继续更新

kubectl rollout resume deployment/nginx-kfc -n kfc

1.5、查看最后的更新情况

kubectl get pod -w -n kfc

kubectl get pod -n kfc -owide

curl -I 10.244.2.14

curl -I 10.244.2.16

至此,版本更新完毕!!!!

1.5、分阶段访问

二、蓝绿发布

蓝绿发布是一种部署新版本应用程序的策略,旨在减少对用户造成的影响。在蓝绿发布中,两个相同的生成环境并行存在,一个被标记为蓝色,一个被标记为绿色

蓝色:当前稳定的生产环境

绿色:新版本的生产环境

在初始阶段所用的用户流量都会指向蓝色环境。当新版本准备就绪时,流量可以逐渐转移到绿色环境中。这种逐步迁移流量的方式允许进行实时及监控,并在出现问题时快速的回滚到蓝色环境。一旦绿色环境被验证为稳定可靠,蓝色环境可以被废弃或者保留作为备份。

三、总结

3.1、滚动发布

就是按照一部分一部分的滚动更新;创建一定比例的pod,先创建再删除旧的pod。

3.2、金丝雀发布(灰度发布)

先更新一部分pod,然后暂停更新

安排一小部分的用户进行流量访问更新的pod来测试

当测试没有问题后再扩大比例,知道全部更新完成为止。

3.3、蓝绿发布

蓝:就是正在运行的稳定版本

绿:就是新版本的副本

进行新旧版本的切换,用户无感知,业务稳定;但是需要大量了资源,成本比较高。


http://www.kler.cn/a/380952.html

相关文章:

  • 【ROS2】话题发布和订阅的频率控制
  • 大型音频模型:AudioLLMs
  • UI自动化测试 —— CSS元素定位实践!
  • 《TCP/IP网络编程》学习笔记 | Chapter 1:理解网络编程和套接字
  • SpringBoot在线教育系统:集成第三方服务
  • Armv8的安全启动
  • Pr 视频效果:透视
  • 【Nginx】前端项目开启 Gzip 压缩大幅提高页面加载速度
  • Ant Design Vue 的 a-table 行选择分页时bug处理
  • 官方redis安装
  • React Hooks 为什么不能在 if 语句中使用???
  • 根据提交的二维数据得到mysql建表和插入数据实用工具
  • 全渠道供应链打造中企业定制开发2+1链动模式S2B2C商城小程序的策略与影响
  • 【Python环境配置-Step1】PyCharm 2024最新官网下载、安装教程
  • PyTorch实践-CNN-验证码识别
  • 高可用架构-业务高可用
  • Android Studio:connect time out
  • Redis-基本了解
  • 数学期望和联合概率密度
  • 20241105编译Rockchip原厂的Android13并给荣品PRO-RK3566开发板刷机
  • 软设师知识点-计算机网络
  • CODESYS 输出日志 Log
  • Java如何实现企业微信审批流程
  • 《2024中国城市音乐产业发展指数报告》重磅发布
  • Docker入门系列——镜像原理
  • 【数据分析】如何构建指标体系?