searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

kruise rollouts灰度发布

2023-08-15 06:20:09
38
0

1、准备需要部署的deployment配置 demo.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: workload-demo
  namespace: default
spec:
  replicas: 10
  selector:
    matchLabels:
      app: demo
  template:
    metadata:
      labels:
        app: demo
    spec:
      containers:
        - name: busybox
          image: busybox:1.28.3
          command: ["/bin/sh", "-c", "sleep 100d"]
          env:
            - name: VERSION
              value: "version-1"

部署 kubectl apply -f demo.yaml

2、创建rollout配置文件,rollout.yaml

apiVersion: rollouts.kruise.io/v1alpha1
kind: Rollout
metadata:
  name: rollouts-demo
  namespace: default
  annotations:
    rollouts.kruise.io/rolling-style: partition # 使用多批次更新策略,只能配置 "partition" or "canary"
    # "partition" 意味着像 CloneSet 一样分批滚动,不会创建任何额外的 Workload
    # “canary” 表示以金丝雀方式滚动,并将创建一个金丝雀工作负载,对于Deployment默认是canary
spec:
  objectRef: # 定义工作负载
    workloadRef: # 关联需要管理的工作负载
      apiVersion: apps/v1
      kind: Deployment
      name: workload-demo
  strategy: # 定义升级策略
    canary: # 使用 Canary 策略
      steps: # 定义多批次更新策略
        - replicas: 1
        - replicas: 50%
        - replicas: 100%

kubectl apply -f rollout.yaml

3、开始升级

kubectl patch deployment workload-demo -p \
'{"spec":{"template":{"spec":{"containers":[{"name":"busybox", "env":[{"name":"VERSION", "value":"version-2"}]}]}}}}'

查看pod状态

继续更新

kubectl-kruise rollout approve rollout/rollouts-demo -n default

继续更新

kubectl-kruise rollout approve rollout/rollouts-demo -n default

灰度发布完毕

0条评论
0 / 1000
y****n
2文章数
0粉丝数
y****n
2 文章 | 0 粉丝
y****n
2文章数
0粉丝数
y****n
2 文章 | 0 粉丝
原创

kruise rollouts灰度发布

2023-08-15 06:20:09
38
0

1、准备需要部署的deployment配置 demo.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: workload-demo
  namespace: default
spec:
  replicas: 10
  selector:
    matchLabels:
      app: demo
  template:
    metadata:
      labels:
        app: demo
    spec:
      containers:
        - name: busybox
          image: busybox:1.28.3
          command: ["/bin/sh", "-c", "sleep 100d"]
          env:
            - name: VERSION
              value: "version-1"

部署 kubectl apply -f demo.yaml

2、创建rollout配置文件,rollout.yaml

apiVersion: rollouts.kruise.io/v1alpha1
kind: Rollout
metadata:
  name: rollouts-demo
  namespace: default
  annotations:
    rollouts.kruise.io/rolling-style: partition # 使用多批次更新策略,只能配置 "partition" or "canary"
    # "partition" 意味着像 CloneSet 一样分批滚动,不会创建任何额外的 Workload
    # “canary” 表示以金丝雀方式滚动,并将创建一个金丝雀工作负载,对于Deployment默认是canary
spec:
  objectRef: # 定义工作负载
    workloadRef: # 关联需要管理的工作负载
      apiVersion: apps/v1
      kind: Deployment
      name: workload-demo
  strategy: # 定义升级策略
    canary: # 使用 Canary 策略
      steps: # 定义多批次更新策略
        - replicas: 1
        - replicas: 50%
        - replicas: 100%

kubectl apply -f rollout.yaml

3、开始升级

kubectl patch deployment workload-demo -p \
'{"spec":{"template":{"spec":{"containers":[{"name":"busybox", "env":[{"name":"VERSION", "value":"version-2"}]}]}}}}'

查看pod状态

继续更新

kubectl-kruise rollout approve rollout/rollouts-demo -n default

继续更新

kubectl-kruise rollout approve rollout/rollouts-demo -n default

灰度发布完毕

文章来自个人专栏
灰度发布
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0