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

k8s 蓝绿发布、滚动发布、灰度发布

在Kubernetes(k8s)中,蓝绿发布、滚动发布、灰度发布(金丝雀发布)是三种常见的应用部署和更新策略。下面将分别对这几种发布方式进行说明,并给出相应的例子。

蓝绿发布

 

蓝绿发布是一种无缝切换版本的部署策略。它通过在生产环境中同时运行两个相同版本的应用程序实例(蓝色环境和绿色环境),使得新版本的应用可以在不影响旧版本的情况下进行部署和测试。当新版本经过验证并准备好切换时,流量将被重定向到新环境(绿色),同时旧环境(蓝色)被移除或停止。

步骤

  1. 准备两个相同的环境:蓝色环境和绿色环境。这两个环境应该具有相同的配置和基础设施。
  2. 在蓝色环境中部署当前的应用程序版本。
  3. 在绿色环境中部署新的应用程序版本。
  4. 配置K8s Ingress以将部分流量路由到绿色环境,进行新版本测试。
  5. 如果新版本表现良好,逐步增加流量比例,直到将所有流量都切换到绿色环境。
  6. 移除或停止蓝色环境中的旧版本。

优点

  1. 易于设置:蓝绿发布策略相对简单,只需维护两个环境(蓝色和绿色),便于部署和切换。
  2. 流量完全受控:通过调整路由规则,可以轻松控制流量在新旧版本之间的切换,实现零停机时间更新。
  3. 降低风险:由于新版本在切换前已经过充分测试,因此可以降低生产环境出现问题的风险。

缺点

  1. 维护成本高:需要同时维护两个相同的环境,增加了资源消耗和维护成本。
  2. 回滚速度可能较慢:在出现问题时,虽然可以回滚到旧版本,但由于需要切换环境,回滚速度可能相对较慢。

滚动发布

 

滚动发布是按批次停止老版本实例,启动新版本实例的发布方式。这种方式可以节约资源,但部署和回滚速度较慢。

步骤

  1. 假设有一个包含3个副本的Deployment,当前版本为v1。
  2. 更新Deployment的版本为v2,并设置滚动更新策略。
  3. K8s将开始滚动更新,逐个替换v1版本的Pod为v2版本。
  4. 在滚动更新过程中,可以监控新版本的性能和稳定性。
  5. 如果出现问题,可以暂停滚动更新,回滚到旧版本。

优点

  1. 节约资源:滚动发布可以逐步替换旧版本实例,无需同时运行两个完整版本的应用,从而节约资源。
  2. 灵活性高:滚动发布过程中可以暂停、继续或回滚更新操作,提供了较高的灵活性。
  3. 用户体验好:由于更新是逐步进行的,对用户的影响较小,可以保持较高的可用性。

缺点

  1. 部署和回滚速度慢:滚动发布需要逐个替换实例,因此部署和回滚速度相对较慢。
  2. 复杂性高:滚动发布过程中需要监控新版本实例的性能和稳定性,增加了复杂性。

灰度发布(金丝雀发布)

 

灰度发布(又称金丝雀发布)是一种逐步将流量从旧版本迁移到新版本的发布方式。它通常先安排一小部分的用户流量去访问更新的Pod来进行测试,如果测试没问题后再扩大比例,直到全部更新完成为止。

步骤

  1. 创建一个包含旧版本应用的Deployment和Service。
  2. 更新Deployment的版本,并配置暂停Deployment,以便进行金丝雀测试。
  3. 将一小部分流量路由到新版本的Pod,观察其性能和稳定性。
  4. 如果新版本表现良好,逐步调整流量权重比例,使得流量慢慢从旧版本迁移至新版本。
  5. 在迁移过程中,可以根据设置的流量比例对新版本服务进行扩容,同时对旧版本服务进行缩容。
  6. 当所有流量都迁移到新版本后,删除旧版本的Deployment和Service。

金丝雀发布的特别说明

  • 金丝雀发布的思想是将少量的请求引流到新版本上,因此部署新版本服务只需极小数的机器。
  • 验证新版本符合预期后,逐步调整流量权重比例,使得流量慢慢从老版本迁移至新版本。
  • 在金丝雀发布中,将流量分流到新旧版本的这个过程被称为分阶段访问(Staged Access),也可以称为阶段性流量调度(Staged Traffic Shifting)。

优点

  1. 降低风险:通过逐步将流量切换到新版本应用,可以及时发现并修复潜在的问题,降低大规模故障的风险。
  2. 提高发布成功率:灰度发布允许在小范围内测试新版本,确保稳定后再全面推广,从而提高发布成功率。
  3. 用户体验影响小:由于只有部分用户会首先体验到新版本,因此对其他用户的影响较小。

缺点

  1. 自动化要求高:灰度发布需要自动化工具和流程来支持流量的逐步切换和监控。
  2. 发布期间需要人为操作:在某些情况下,灰度发布过程中可能需要人为干预和调整,增加了操作复杂度。
  3. 可能引发服务中断:如果新版本存在问题且未能及时发现,可能会引发服务中断或性能下降。

 

综上所述,蓝绿发布、滚动发布和灰度发布(金丝雀发布)各有优缺点,适用于不同的场景和需求。在实际应用中,应根据具体情况选择合适的发布策略。

相关文章:

k8s 蓝绿发布、滚动发布、灰度发布

在Kubernetes(k8s)中,蓝绿发布、滚动发布、灰度发布(金丝雀发布)是三种常见的应用部署和更新策略。下面将分别对这几种发布方式进行说明,并给出相应的例子。 蓝绿发布 蓝绿发布是一种无缝切换版本的部署策…...

UWB原理:AOA测角原理Angel of Arrival

AOA测角原理Angel of Arrival 准备工作: UWB默认使用channel=9,Frequency = 7987.2mMhz,约8GHz。 波长 天线RX1, RX2间距一般为20mm左右,假如发射端TX离2个RX距离2m=2000mm,大约是100倍天线间距。2个入射角可以近似相同。 测角原理: <...

plus.runtime.install在android10无效

在 Android 10 中&#xff0c;使用 plus.runtime.install 方法来进行动态安装应用或进行其他操作可能会失效。这是因为从 Android 10 开始&#xff0c;操作系统在安全性和隐私方面做了很多改进&#xff0c;特别是与应用安装相关的权限变更。 在 Android 10&#xff08;API 级别…...

7.C++中的函数

C中的函数 在 C 中&#xff0c;函数是一个重要的概念&#xff0c;它是将一段相对独立的、完成特定任务的代码封装起来的程序模块。以下是关于 C 中函数的详细介绍&#xff1a; 函数的定义 函数定义由函数头和函数体组成&#xff0c;其一般形式如下&#xff1a; 返回值类型 …...

上位机知识篇---Python数据图表可视化

文章目录 前言第一部分&#xff1a;Matplotlib1. 图形和轴&#xff08;Figure and Axes&#xff09;FigureAxes创建一个新的图形在图形中添加一个或多个轴 2. 绘图命令绘制折线图绘制散点图绘制条形图绘制饼图绘制直方图等高线图&#xff08;Contour plot&#xff09;&#xff…...

详解:TCP/IP五层(四层)协议模型

一.五层&#xff08;四层&#xff09;模型 1.概念 TCP/IP协议模型分为五层&#xff1a;物理层、数据链路层、网络层、传输层和应用层。这五层每一层都依赖于其下一层给它提供的网络去实现需求。 1&#xff09;物理层&#xff1a;这是最基本的一层&#xff0c;也是最接近硬件…...

【原生记忆能力 怎么让大模型拥有原生的记忆能力】

首先&#xff0c;需要明确“原生记忆能力”具体指的是什么。通常来说&#xff0c;大模型如GPT-3或GPT-4在生成回复时是基于训练数据的模式识别&#xff0c;而不是真正的记忆。所以用户可能希望模型能够持续记住之前的交互信息&#xff0c;或者在多次使用中积累知识&#xff0c;…...

百度APP iOS端磁盘优化实践(上)

01 概览 在APP的开发中&#xff0c;磁盘管理已成为不可忽视的部分。随着功能的复杂化和数据量的快速增长&#xff0c;如何高效管理磁盘空间直接关系到用户体验和APP性能。本文将结合磁盘管理的实践经验&#xff0c;详细介绍iOS沙盒环境下的文件存储规范&#xff0c;探讨业务缓…...

qml Dialog详解

1、概述 Dialog是QML&#xff08;Qt Modeling Language&#xff09;中用于显示对话框的组件&#xff0c;它提供了一个模态窗口&#xff0c;通常用于与用户进行重要交互&#xff0c;如确认操作、输入信息或显示警告等。Dialog组件具有灵活的布局和样式选项&#xff0c;可以轻松…...

2025年的校招管理系统会全面实现智能化吗?

随着科技的不断进步&#xff0c;企业的招聘方式也在不断地演变。特别是在校园招聘领域&#xff0c;传统的招聘方法已经难以满足现代企业的需求。2025年的校招管理系统是否会全面实现智能化&#xff1f;这是一个值得探讨的话题。 想象一下&#xff0c;每年的校招季&#xff0c;…...

【Unity】使用Canvas Group改变UI的透明度

目录 一、前言二、Canvas Group三、结合DOTween达到画面淡进的效果 一、前言 在平时开发中&#xff0c;可以通过控制材质、Color改变UI透明度&#xff0c;除此之外还可以CanvasGroup组件来控制透明度。 二、Canvas Group 官方文档链接&#x1f449;&#x1f449; 点击进入 …...

2024年博客之星主题创作|2024年度感想与新技术Redis学习

Redis工具深入了解 1.引言与感想2.Redis工具了解2.分布式系统了解2.1单机架构2.2分布式是什么2.3应用服务和数据库服务分离2.4引入更多的应用服务器2.5理解负载均衡器2.6数据库读写分离2.7引入缓存2.8数据库分库分表2.9引入微服务2.10分布式系统小结 1.引言与感想 2024学习了很…...

6. 马科维茨资产组合模型+政策意图AI金融智能体(DeepSeek-V3)增强方案(理论+Python实战)

目录 0. 承前1. 幻方量化 & DeepSeek1.1 What is 幻方量化1.2 What is DeepSeek 2. 重写AI金融智能体函数3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对上一篇文章&#xff0c;链接: 5. 马科维茨资产组合模型政策意图AI金融智能体(Qwen-Max)增…...

Unity自学之旅05

Unity自学之旅05 Unity学习之旅⑤&#x1f4dd; AI基础与敌人行为&#x1f94a; AI导航理论知识&#xff08;基础&#xff09;开始实践 &#x1f383; 敌人游戏机制追踪玩家攻击玩家子弹碰撞完善游戏失败条件 &#x1f917; 总结归纳 Unity学习之旅⑤ &#x1f4dd; AI基础与敌…...

linux中关闭服务的开机自启动

引言 systemctl 是 Linux 系统中用于管理 systemd 服务的命令行工具。它可以用来启动、停止、重启服务&#xff0c;管理服务的开机自启动&#xff0c;以及查看服务的状态等。 什么是 systemd&#xff1f; systemd 是现代 Linux 发行版中默认的 初始化系统&#xff08;init sys…...

Python----Python高级(文件操作open,os模块对于文件操作,shutil模块 )

一、文件处理 1.1、文件操作的重要性和应用场景 1.1.1、重要性 数据持久化&#xff1a; 文件是存储数据的一种非常基本且重要的方式。通过文件&#xff0c;我们可 以将程序运行时产生的数据永久保存下来&#xff0c;以便将来使用。 跨平台兼容性&#xff1a; 文件是一种通用…...

ubuntu黑屏问题解决

重启Ubuntu后&#xff0c;系统自动进入tty1&#xff0c;无法进入桌面。想到前几天安装了一些主题之类的&#xff0c;然后今天才重启&#xff0c;可能是这些主题造成冲突或者问题了把。 这里直接重新安装ubuntu-desktop解决&#xff1a; 更新源&#xff1a; sudo apt-get upd…...

Java如何实现反转义

Java如何实现反转义 前提 最近做的一个需求&#xff0c;是热搜词增加换一批的功能。功能做完自测后&#xff0c;交给了测试伙伴&#xff0c;但是测试第二天后就提了一个bug&#xff0c;出现了未知词 levis。第一眼看着像公司售卖的一个品牌-李维斯。然后再扒前人写的代码&…...

动态规划(路径问题)

62. 不同路径 62. 不同路径 - 力扣&#xff08;LeetCode&#xff09; 动态规划思想第一步&#xff1a;描述状态~ dp[i][j]&#xff1a;表示走到i&#xff0c;j位置时&#xff0c;一共有多少种方法~ 动态规划思想第二步&#xff1a;状态转移方程~ 动态规划思想第三步&#xf…...

python http调用视觉模型moondream

目录 一、什么是moondream 二、资源地址 三、封装了http进行接口请求 四、代码解析 解释 可能的改进 一、什么是moondream Moondream 是一个针对视觉生成任务的深度学习模型,专注于图像理解和生成,包括图像标注(captioning)、问题回答(Visual Question Answering,…...

3分钟快速上手:用BetterNCM安装器彻底改造你的网易云音乐

3分钟快速上手&#xff1a;用BetterNCM安装器彻底改造你的网易云音乐 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在使用功能单一的网易云音乐吗&#xff1f;想不想让你的播放器拥…...

Redis沙盒体验:在浏览器中零门槛掌握NoSQL核心技能

Redis沙盒体验&#xff1a;在浏览器中零门槛掌握NoSQL核心技能 【免费下载链接】try.redis A demonstration of the Redis database. 项目地址: https://gitcode.com/gh_mirrors/tr/try.redis 当你第一次听说Redis时&#xff0c;是否被那些晦涩的技术术语吓退&#xff1…...

收藏必看|2026 版大厂 AI 岗位薪资曝光!普通程序员转型大模型最全指南

深夜收到大厂 HR 好友发来的内部资料&#xff0c;再三叮嘱切勿对外泄露。如今网络信息传播速度极快&#xff0c;这份 2026 年企业 AI 岗真实薪资内幕&#xff0c;也值得给广大程序员、零基础入行小白参考借鉴。 翻看完整薪资台账后&#xff0c;真切感受到当下大模型赛道的薪资差…...

鸿蒙系统微博应用锁常见问题解答

为微博设置应用锁后&#xff0c;不少用户会有各种疑问&#xff1a;忘记密码怎么办&#xff1f;会不会影响消息推送&#xff1f;能不能只锁定某些功能&#xff1f;应用锁耗电吗&#xff1f;本文将针对这些高频问题逐一解答&#xff0c;帮助您更好地使用鸿蒙系统&#xff08;Harm…...

6款高效降AI率工具 改写实力出众

写论文时反复检测出的AI痕迹总让你提心吊胆&#xff1f;别担心&#xff0c;这里整理了6款真正好用的论文降AI率工具&#xff0c;堪称应对AI生成特征的“得力助手”。它们能有效识别并消除AI生成的痕迹&#xff0c;改写能力出众&#xff0c;帮你快速降低查重率&#xff0c;顺利通…...

Windows终极PDF处理工具:3步免费安装Poppler完整指南

Windows终极PDF处理工具&#xff1a;3步免费安装Poppler完整指南 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 你是否曾经为在Windows上处理PDF文…...

基于双T振荡器的正弦波LED调光电路设计与实践

1. 项目概述&#xff1a;用双T振荡器实现正弦波LED调光最近在捣鼓一些氛围灯项目&#xff0c;总感觉用单片机PWM做的呼吸灯效果有点“硬”&#xff0c;那种线性的明暗变化看久了难免审美疲劳。于是翻出以前模拟电路的老本行&#xff0c;琢磨着能不能用纯硬件的方式&#xff0c;…...

INT8量化下TVA注意力对齐精度保障方案

重磅预告&#xff1a;本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容&#xff0c;该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著&#xff0c;特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...

CentOS 8.5最小化安装后,这5个必做的安全与效率优化设置(附一键脚本)

CentOS 8.5最小化安装后的5个必做安全与效率优化刚完成CentOS 8.5最小化安装的系统就像一张白纸——干净但缺乏生产力。作为运维老手&#xff0c;我见过太多人跳过基础优化直接部署应用&#xff0c;结果在后续使用中频繁遇到权限混乱、软件安装慢、SSH爆破等问题。本文将分享我…...

机器学习在射电天文数据分类中的应用:以MIGHTEE巡天SFG/AGN分类为例

1. 项目概述&#xff1a;当机器学习遇见深空射电巡天在射电天文学领域&#xff0c;我们正经历一场数据洪流。以MeerKAT望远镜阵列主导的MIGHTEE巡天项目为例&#xff0c;其在COSMOS天区的一次早期科学数据释放&#xff0c;就在不到1平方度的天区内探测到了超过6000个射电源。传…...