k8s之灰度发布

前言

为了使生产环境的应用服务,正常进行切换,而不导致生产环境的故障影响,需要使用到灰度发布

概念

灰度发布,又称金丝雀发布,是将应用的旧版本A与新版本B同时部署在环境中,业务请求可能会被路由到版本A的后端上,也可能会被路由到版本B的后端上;可以自定义灰度发布策略,调整版本A和B的流量占比,渐进式完成新版本应用的全量上线,最大限制地控制新版本发布带来的业务风险,降低故障带来的影响面,同事支持快速回滚。

  • 灰度发布流程图
    在这里插入图片描述
自动部署
]# cat > blue-green-deploy.yml <<-EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: default
  name: podinfo
  labels:
    app: podinfo
spec:
  replicas: 4
  minReadySeconds: 5
  revisionHistoryLimit: 5
  progressDeadlineSeconds: 60
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 1
    type: RollingUpdate
  selector:
    matchLabels:
      app: podinfo
  template:
    metadata:
      labels:
        app: podinfo
    spec:
      nodeSelector:
        nature.com/persistent-env: dev
      containers:
      - name: podinfod
        image: registry.cn-hangzhou.aliyuncs.com/acs/rollouts-demo:blue
        imagePullPolicy: IfNotPresent
        ports:
          - name: http
            containerPort: 8080
            protocol: TCP
        readinessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 5
          failureThreshold: 3
          periodSeconds: 10
          successThreshold: 1
          timeoutSeconds: 5

---

apiVersion: v1
kind: Service
metadata:
  name: my-podinfo-svc
  namespace: default
spec:
  selector:
    app: podinfo
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: default
  name: podinfo
  labels:
    app: podinfo
spec:
  rules:
    - host: blue-green.nature.com
      http:
        paths:
          - backend:
              serviceName: my-podinfo-svc
              servicePort: 80
EOF
]# kubectl apply -f blue-green-deploy.yml
  • 灰度发布策略
    把镜像blue改为green,再重新部署,会过渡到green,如果部署失败,会回退到blue
结语

… …

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值