一、金丝雀发布
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是什么意思
金丝雀