K8s-蓝绿发布 简单实验

蓝绿发布

在Kubernetes中,蓝绿发布(Blue-Green Deployment) 是一种部署策略,通过同时维护两个完全独立的生产环境("蓝"和"绿"),在验证新版本(绿)后,一次性将流量从旧版本(蓝)切换到新版本,若发现问题则立即回退。其核心特点是零停机时间快速回滚

蓝绿发布的核心原理

  1. 双环境共存

    • 蓝环境(Blue):当前生产环境,处理所有用户流量。

    • 绿环境(Green):新版本环境,部署完成后处于待命状态。

  2. 流量切换

    • 通过更新负载均衡规则或Service选择器,将所有流量从蓝环境切换到绿环境。
  3. 快速回滚

    • 若绿环境异常,只需将流量重新指向蓝环境即可恢复。

蓝绿发布的实现方法及步骤

通过Service切换标签

原理:利用Kubernetes Service的标签选择器,将流量从旧版本Pod(蓝)切换到新版本Pod(绿)

部署蓝环境 vim blue.yml

kubectl apply -f blue.yml

创建绿环境vim green.yml

kubectl apply -f green.yml

查看绑定端口:kubectl get svc

验证:192.168.11.160:32118

更改service匹配标签:kubectl patch service myapp-service -p '{"spec":{"selector":{"version":"green"}}}'

写一个ingress :vim ingress.yml

kubectl apply -f ingress.yml

kubectl get ingress

修改 Nginx 网关的对外端口(Service)配置,LoadBalancer改为NotePort

kubectl -n ingress-nginx edit svc ingress-nginx-controller

查看服务kubectl -n ingress-nginx get po -owide 运行在哪个节点

查看端口号kubectl -n ingress-nginx get svc

在node2节点 vim /etc/hosts 添加

curl green.jx.com:31426 , curl blue.jx.com:31426​​​​​​​

相关推荐
武汉唯众智创6 小时前
云计算实训室建设指南(2026版):从技能大赛赛项标准反推架构、课程与落地路径
云原生·kubernetes·云计算·云计算实训室·云计算教学平台·职业技能大赛
wdfk_prog7 小时前
ROS教程:01 搭建 ROS1 Noetic Docker 开发环境
运维·缓存·docker·容器·ros
szephyr7 小时前
Docker + Compose 实战:把本地项目一键搬到云服务器,附完整配置
运维·docker·容器·部署·云服务器
wdfk_prog8 小时前
ros教程02:创建 catkin Workspace、Package 与第一个 ROS1 C++ Node
运维·缓存·docker·容器·ros
阿里云云原生9 小时前
剧透丨AI 原生研发组织的探索和实践
云原生
名字还没想好☜11 小时前
Docker 网络实战:bridge/host/none/自定义网络、容器互通与端口映射踩坑
运维·docker·kubernetes
探索云原生13 小时前
KubeClipper 1.7.0 发布:Operation 优化与 Kubernetes 1.37 支持
linux·docker·云原生·kubernetes·go
fengkai454515 小时前
八、Docker详解1-3
运维·docker·容器
MrSYJ17 小时前
Veth pair 细讲
docker·云原生·容器
Elastic 中国社区官方博客18 小时前
将 Vercel 数据导入 Elastic:无需安装任何东西的无服务器可观测性
大数据·运维·elasticsearch·搜索引擎·云原生·serverless·全文检索