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​​​​​​​

相关推荐
Initialize-le5 分钟前
PVC 一直 Pending?五步排查存储绑定
云原生·容器·kubernetes
96245617 分钟前
一次 Kubernetes 临时存储压力引发的小程序授权雪崩:从 Pod 驱逐到定时任务漏执行
容器·小程序·kubernetes
SatanII19 分钟前
Kubernetes 网络
网络·容器·kubernetes
知已难寻10 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
阿里云云原生14 小时前
车企数据隐私保护必修课:如何用 SLS mask 守住日志中的敏感信息
云原生
阿里云云原生15 小时前
切换模型会损失缓存,智能路由还省钱吗?
云原生
闲云野鹤在人间15 小时前
Kubernetes Service 与 kube-proxy 详解
云原生·容器·kubernetes
我不会起名字32216 小时前
节点 NotReady:kubelet 与容器运行时的 4 步排查
云原生·kubernetes·kubelet·排查
说实话起个名字真难啊16 小时前
实战docker部署dify及注意点
运维·docker·容器
闲云自留地17 小时前
K8s Service 全解:服务发现、四种类型、会话保持、金丝雀发布一篇通
容器·kubernetes·服务发现