k8s部署金丝雀发布

金丝雀发布(又称灰度发布、灰度更新):

金丝雀发布一般是先发1台机器,或者一个小比例,例如2%的服务器,主要做流量验证用,也称为金丝雀 (Canary) 测试,国内常称灰度测试。以前旷工下矿前,会先放一只金丝雀进去用于探测洞里是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据。如果金丝测试通过,则把剩余的 V1 版本全部升级为 V2 版本。如果金丝雀测试失败,则直接回退金丝雀,发布失败。

k8s部署金丝雀发布文件先参考(k8s蓝绿部署

demo-green2hd.yaml文件参考

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-green2hd
  namespace: default
  labels:
    app: demo
    version: v1
spec:
  replicas: 1
  revisionHistoryLimit: 3
  strategy:
    rollingUpdate:
      maxSurge: 30%
      maxUnavailable: 30%
  selector:
    matchLabels:
      app: demo
      version: v1
  template:
    metadata:
      labels:
        app: demo
        version: v1
    spec:
      containers:
      - name: demo-green2hd
        image: opcache/devops-go-sample:hello2
        livenessProbe:
          httpGet:
            path: /
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 3
          timeoutSeconds: 5
          periodSeconds: 30
          successThreshold: 1
          failureThreshold: 5
        readinessProbe:
          httpGet:
            path: /
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 3
          timeoutSeconds: 5
          periodSeconds: 10
          successThreshold: 1
          failureThreshold: 5
        ports:
          - name: http
            containerPort: 8080
            protocol: TCP

 

验证

#执行demo-green2hd.yaml
kubectl apply -f demo-green2hd.yaml
#获取SVC  IP
kubectl get rc,pods,svc,ingress --all-namespaces -o wide | grep demo

k8s部署金丝雀发布

for i in `seq 1 100000`; do curl  10.106.49.228:8080/?a=$i ;echo " "; done

k8s部署金丝雀发布

给TA打赏
共{{data.count}}人
人已打赏
k8s编排文件

k8s集群v1.15.xx改v1.18.xx编排文件命令

2021-4-29 14:32:15

k8s编排文件

k8s部署nodelocaldns默认yaml

2021-4-29 15:15:36

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索