[10.14 workshop] ACK应用灰度发布-阿里云开发者社区

开发者社区> csome> 正文

[10.14 workshop] ACK应用灰度发布

简介: 灰度发布是可以帮助您渐进式更新Deployment的工具。它能结合Ingress Controller实现多版本共存,发布暂停,流量百分比切换,健康检查等功能,极大解放灰度发布过程中的手动操作,全自动化实现线上灰度流量切换。本文介绍如何创建灰度发布。
+关注继续查看

前提条件

  • 创建一个类型为Deployment的工作负载。有关具体操作,请参见使用镜像创建无状态Deployment应用。
  • 创建一个服务(Service)。有关具体操作,请参见创建服务。
  • 创建一个路由(Ingress)。有关具体操作,请参见创建路由(Ingress)。

操作步骤

步骤一:创建测试应用

使用以下YAML文件模板作为测试示例。该示例使用Deployment部署一个Web应用,并通过路由(Ingress)向外暴露服务(Service)。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: podinfo
  labels:
    app: podinfo
spec:
  replicas: 4
  minReadySeconds: 5
  revisionHistoryLimit: 5
  progressDeadlineSeconds: 60
  strategy:
    rollingUpdate:
      maxUnavailable: 1
    type: RollingUpdate
  selector:
    matchLabels:
      app: podinfo
  template:
    metadata:
      labels:
        app: podinfo
    spec:
      containers:
      - name: podinfod
        image: registry-vpc.cn-shanghai.aliyuncs.com/acs/rollouts-demo:green
        imagePullPolicy: IfNotPresent
        ports:
          - name: http
            containerPort: 8080
            protocol: TCP
        readinessProbe:
          tcpSocket:
            port: 8080
          initialDelaySeconds: 5
          timeoutSeconds: 5

---

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

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: podinfo
  labels:
    app: podinfo
spec:
  rules:
    - host: app.example.com
      http:
        paths:
          - backend:
              serviceName: my-podinfo-svc
              servicePort: 80

步骤二:创建灰度发布

1、在控制台左侧导航栏中,单击集群

2、在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情

3、在集群管理页左侧导航栏中,单击应用,然后选择灰度发布页签。

4、在灰度发布页面右侧,单击创建

5、在创建面板,设置上述创建的Deployment、Service、Ingress,然后设置发布方式为手动发布。有关发布方式特性的描述详情,请参见灰度发布的高级选项

6、单击确定

完成创建灰度发布后,单击创建的灰度发布名称,发布状态显示初始化完毕。如果显示初始化中的话,可以多次单击刷新

image.png

步骤三:执行灰度发布

开始灰度发布前,您需要先更新一下应用。本文示例以更新镜像tag为例,修改镜像tag中的green为blue。先发布两个Pod为新版本,同时将新版本的灰度流量设置为10%。

1、单击目标灰度发布名称,然后在详情页面,单击发布对象名称后面的编辑图标。

2、在查看YAML面板中,将green修改为blue,然后单击确定

image.png

3、在灰度发布基本信息区域,编辑当前权重[0-100]为10,新版容器组副本数[0-4]为2。

可以看到,新版本的Pod已经创建。这时候访问应用观察流量情况,可以看到流量中绿色占比90%,蓝色占比10%。

image.png

image.png

4、根据业务的实际情况,不断调整新旧版容器数量,将旧版Pod缩容,新版Pod扩容,然后将更多的流量导入到新版本的Pod中。当测试完毕且没有问题时,单击页面右上方的确认发布,完成此次发布。

发布成功后,可以查看流量情况。当业务的所有流量都转向了新的Pod时,就完成了一次应用的发布。您可以单击页面右上方的完成,结束此次发布动作。

步骤四:查看历史记录

每次发布完成后,您可以查看发布的记录:

  • 在灰度发布页面的历史记录区域,您可以查看所有创建的灰度发布的发布记录。
  • 在每个创建的灰度发布详情页面下方的发布日志区域,查看发布的过程。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring Framework 2.5发布
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1901406 Spring Framework 2.5发布   Spring Framework是Java平台上非常流行的开源框架之一。
461 0
使用SAP WebIDE开发SAP Fiori Worklist应用消费OData服务
使用SAP WebIDE开发SAP Fiori Worklist应用消费OData服务
21 0
Kubernetes应用迁移至ACK(二) Kubernetes应用及PV数据迁移
本文记录使用Velero快速完成云原生应用及PV数据从自建Kubernetes迁移到ACK的实践过程。 此过程也同样适用于其他云厂商Kubernetes集群内的应用及PV数据迁移至ACK。 在本示例中, 我们将对自建Kubernetes集群中的一个wordpress应用整体迁移上云到ACK,其中数据备份采用阿里云OSS服务,安全稳定。 ## Kubernetes应用及PV数据迁移ACK概览
663 0
vxWorks应用程序加载的另一种办法
<p>现在我们的工作中,应用程序一般都是和BSP联编,然后将vxworks_rom.bin烧到班子里。在BSP启动后,调用应用程序的函数的。</p> <p> </p> <p>但是这样有个问题,就是应用程序和BSP结合的太紧密了。BSP开发者得将BSP代码给应用程序开发者,或者应用程序开发者得将应用程序编译后的.a文件给BSP开发者,才能完成程序的升级!</p> <p> </p> <p>那么下面
2454 0
Stack Overflow 2017 开发者调查报告发布! 韩俊强的博客
Stack Overflow 发布了 2017 开发者调查报告,此次有超过 64,000 名开发人员参与调查,分别对其技能、工具、学习趋势等数据进行了统计,现将其中一些有趣的数据和趋势撷取出来分享给大家。
557 0
使用阿里云容器服务 ACK 和文件存储 NAS 构建现代化企业应用
大规模构建容器化应用程序需要高可靠、弹性、共享且支持高性能数据处理的数据存储解决方案。通过迁移到公共云,企业可以获得更高的生产效率和更低的成本。阿里云文件存储可以为现代化应用提供强健的数据稳定性,可靠性,高性能和在线扩展能力。
1317 0
+关注
csome
阿里云容器服务的高级研发工程师,花名溪恒,专注于容器底层技术和网络
24
文章
34
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载