k8s蓝绿发布

目录

蓝绿发布:

实战:

1.先部署v1.0.0版本

2.再部署v2.0.0版本

3.使用svc做流量切换


蓝绿发布:

一些应用程序只需要部署一个新版本,并需要立即切到这个版本。因此,我们需要执行蓝/绿部署。在进行蓝/绿部署时,应用程序的一个新副本(绿)将与现有版本(蓝)一起部署。然后更新应用程序的入口/路由器以切换到新版本(绿)。然后,您需要等待旧(蓝)版本来完成所有发送给它的请求,但是大多数情况下,应用程序的流量将一次更改为新版本;Kubernetes不支持内置的蓝/绿部署。目前最好的方式是创建新的部署,然后更新应用程序的服务(如service)以指向新的部署;蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK后将流量逐步切到新版本。蓝绿部署无需停机,并且风险较小。

实战:

1.先部署v1.0.0版本

cat nginx_1.0.0.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-v1
spec:
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  replicas: 2
  selector:
    matchLabels:
      app: nginx-v1
      
  template:
    metadata:
      labels:
        app: nginx-v1
        release: v1.0.0
    spec:
      containers:
      - name: nginx
        image: registry.cn-shenzhen.aliyuncs.com/lishanbin/nginx:1.0.0
        ports:
        - containerPort: 80

2.再部署v2.0.0版本

cat nginx_2.0.0.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-v2
spec:
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  replicas: 2
  selector:
    matchLabels:
      app: nginx-v2
      
  template:
    metadata:
      labels:
        app: nginx-v2
        release: v2.0.0
    spec:
      containers:
      - name: nginx
        image: registry.cn-shenzhen.aliyuncs.com/lishanbin/nginx:2.0.0
        ports:
        - containerPort: 80

查看部署情况:

3.使用svc做流量切换

3.1 此时我们访问1.0.0版本:

cat nginx_service.yaml

apiVersion: v1
kind: Service
metadata:
  name: nginxservice
  labels:
    release: v1.0.0
spec:
  type: NodePort
  selector:
    release: v1.0.0
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30000

浏览器验证:

0254542044f34b8699397cc6eae4ae31.png

 3.2 修改svc为v2.0.0版本

apiVersion: v1
kind: Service
metadata:
  name: nginxservice
  labels:
    release: v2.0.0
spec:
  type: NodePort
  selector:
    release: v2.0.0
  ports:
  - port: 80
    targetPort: 80
    nodePort: 30000

访问验证:

6139d188d35e4a5aa7fa3aa919afe1e9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

均衡教派.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值