【云原生】宕机上线的秘密:Argo Rollouts 金丝雀发布实战

49 阅读1分钟

一、金丝雀发布

1.金丝雀发布是什么

发布新版本的时候,不会立即推给所有用户,而是让一小部分用户使用
没问题后,再全量发布
即使每次只间隔 10 秒,如果指标异常,Rollouts 会 暂停甚至自动回滚

2.为什么叫金丝雀发布

金丝雀对一氧化碳比较敏感,矿工用金丝雀监测气体,就知道环境安全不

二、ArgoRollouts

1.什么是Argo Rollouts

ArgoRollouts是一个k8s的控制器 + 一套yaml配置定义的CRD

2.ArgoRollouts的控制器怎么写

ArgoRollouts的控制器是官方已经实现好的一个控制器,只需要部署它
执行:kubectl apply -f github.com/argoproj/ar… Argo Rollouts 的 CRD(自定义资源定义)和 Controller 都部署到你的集群

3.如何写 “Rollout”资源的 YAML

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: my-app
spec:
  replicas: 3
  strategy:
    canary:
      steps:
        - setWeight: 25
        - pause: {duration: 10s}
        - setWeight: 50
        - pause: {duration: 10s}
        - setWeight: 100
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-app:v2

4.为什么要暂停

暂停的目的 是为了让逐渐安全的切换到新的版本
一开始 2个pod在新版本,暂停60s 没问题后 新加两个pod在新版本

5.canary是什么意思

金丝雀