文章

k8s滚动发布

金丝雀发布

以阿里云ack集群为准 安装组件: ack-kruise

Image

创建滚动yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
apiVersion: rollouts.kruise.io/v1alpha1
kind: Rollout
metadata:
  annotations:
    rollouts.kruise.io/rolling-style: partition
  name: example-rollout
  namespace: sit44
spec:
  disabled: false
  objectRef:
    workloadRef:
      apiVersion: apps/v1
      kind: Deployment
      name: example-deployment
  strategy:
    canary:
      steps:
      - pause:
          duration: 0
        replicas: 1
      - pause:
          duration: 0
        replicas: 50%
      - pause:
          duration: 0
        replicas: 100%
1
2
3
4
5
6
1. 注释: metadata.annotations:
rollouts.kruise.io/rolling-style: partition: 设置滚动更新的样式为 partition。这种样式表示在滚动更新过程中,会将指定百分比或数量的 pod 切换到新的版本。
2. spec:
   - disabled: false: 表示 Rollout 是启用状态。
   - objectRef.workloadRef: 指定需要滚动更新的目标 Deployment。
   - strategy.canary.steps: 定义了滚动更新的步骤。每个步骤指定了 partitions 字段,表示在该步骤中,新版本的 pod 占用的百分比或数量。
本文由作者按照 CC BY 4.0 进行授权