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

基于 Kubernetes 的蓝绿发布完整实战

基于 Kubernetes 的蓝绿发布完整实战

1. 什么是蓝绿发布?

蓝绿发布是一种零宕机的应用发布策略,通过运行两个完全相同的生产环境(蓝色环境为当前版本,绿色环境为新版本)来实现平滑升级。在发布过程中,用户流量始终通过负载均衡器指向蓝色环境;当绿色环境部署并测试通过后,只需修改路由规则(如更新 Service 的 selector),将所有流量切换到绿色环境。切换后,蓝色环境作为备份保留,以便快速回滚。

优势: - 发布过程对用户无感知,流量切换瞬间完成。 - 版本回滚极其简单,只需将流量切回旧环境。 - 允许在新版本上进行充分的验收测试,而不影响生产用户。

2. 前提条件

  • 一个可用的 Kubernetes 集群(本文使用 minikube 模拟,版本 v1.28+)
  • 安装并配置好 kubectl 命令行工具
  • 基本的 Docker 镜像构建与推送能力(本文使用 Docker Hub 公共仓库)
  • 可选:Ingress Controller(如 nginx-ingress)用于更真实的流量入口

3. 准备示例应用镜像

我们使用一个简单的 Nginx 页面来区分版本。分别构建两个 Docker 镜像,并通过环境变量或自定义 index.html 显示版本信息。

3.1 创建应用文件

版本 v1(蓝色)
创建目录 app-v1,内含 index.html

<!DOCTYPE html> <html> <head><title>Blue-Green Demo</title></head> <body> <h1>Version 1 (Blue)</h1> <p>This is the current stable version.</p> </body> </html>

版本 v2(绿色)
创建目录 app-v2,内含 index.html

<!DOCTYPE html> <html> <head><title>Blue-Green Demo</title></head> <body> <h1>Version 2 (Green)</h1> <p>This is the new version with new features.</p> </body> </html>

3.2 编写 Dockerfile

在每个版本目录中放置相同的 Dockerfile:

FROM nginx:alpine COPY index.html /usr/share/nginx/html/index.html EXPOSE 80

3.3 构建并推送镜像

假设你的 Docker Hub 用户名为 yourusername。分别构建并推送:

# 构建 v1 cd app-v1 docker build -t yourusername/blue-green-demo:v1 . docker push yourusername/blue-green-demo:v1 # 构建 v2 cd ../app-v2 docker build -t yourusername/blue-green-demo:v2 . docker push yourusername/blue-green-demo:v2

实际使用时请替换为你的镜像仓库地址。

4. 部署蓝版本(当前生产环境)

创建一个命名空间用于隔离演示资源:

kubectl create namespace blue-green-demo

4.1 创建 Deployment 蓝版本

blue-deployment.yaml

apiVersion: apps/v1 kind: Deployment metadata: name: app-blue namespace: blue-green-demo labels: app: myapp version: bl
http://www.jsqmd.com/news/419526/

相关文章:

  • 掌握K8s ReplicaSet:资源定义、控制机制与实战示例全解析
  • 我砍掉了外包剪辑,广告人用哪款AI软件做营销视频?(真实项目复盘)
  • 2026年净化板厂家权威推荐榜:电池净化车间工程、硅岩净化板、食品日化净化车间工程、中空玻镁净化板选择指南 - 优质品牌商家
  • 四川桥架报价指南:2026现阶段头部企业深度评测与选型策略 - 2026年企业推荐榜
  • 2026年钢管杆厂家最新推荐:新型四回路电力钢杆、新型电力钢杆、新型电力钢杆组装、新型终端电力钢杆选择指南 - 优质品牌商家
  • 2026年国内GEO监测工具盘点:品牌AI可见性提升全攻略
  • idea怎么添加-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true
  • 2026年2月:知名干法脱硫销售公司价格与实力深度评测 - 2026年企业推荐榜
  • OpenClaw 配置文件实战手册(最新版):手把手教你搞定配置
  • 2026年PPH管材厂家最新推荐:PP管材/PP管道/PPH管件/PPH管道/PP管件/PPH管材/pp管/选择指南 - 优质品牌商家
  • 2026年评价高的电子电器硅酮胶公司推荐:食品级硅酮胶/高温硅酮胶/工业硅酮胶/工业胶粘剂/平面密封胶粘剂/选择指南 - 优质品牌商家
  • 【资深包装设计团队】落地全流程复盘:构建可复用的设计协作框架
  • 字节跳动发布分布式训练技术:让模型训练像搭积木一样灵活高效
  • 爱丁堡大学:搜索引擎在智能代理“深度研究“中的惊人表现差异
  • 2026年云南房屋鉴定第三方机构公司权威推荐:云南地基基础检测公司/云南桥梁检测公司/云南防雷检测公司/选择指南 - 优质品牌商家
  • svn命令checkout
  • VS实用调试技巧
  • 3个月速成大模型大师!2026年学大模型的“邪修”进阶秘籍,薪资飙升不是梦!
  • Linux常见命令集合(持续更新中...)
  • 2026年AI圈薪资真相:手握大模型算法,年薪百万只是起步!5大高薪岗位+6招涨薪秘籍全解析
  • 2026年襄州区装修施工队选择指南与实力厂商推荐 - 2026年企业推荐榜
  • 2026年餐桌石材源头厂家选择指南与TOP5品牌解析 - 2026年企业推荐榜
  • 2026年Q1枣阳市装修服务商口碑推荐:这三家信誉有保障 - 2026年企业推荐榜
  • 2026年尼龙件加工公司权威推荐:PA尼龙棒/mc注塑异形加工件/mc浇筑尼龙加工件/pp尼龙棒/选择指南 - 优质品牌商家
  • 2026年评价高的免费推广平台公司推荐:网络推广平台、网络推广排名、网络推广效果、网络推广方案、网络推广渠道选择指南 - 优质品牌商家
  • TDengine IDMP 数据可视化——预测与补全
  • 波士顿TechCrunch创始人峰会2026展位招募
  • 软件工程专业毕设
  • 软件漏洞武器化速度创历史新高
  • 引用类型主要分为四种