[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时,就完成了一次应用的发布。您可以单击页面右上方的完成,结束此次发布动作。

步骤四:查看历史记录

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

  • 在灰度发布页面的历史记录区域,您可以查看所有创建的灰度发布的发布记录。
  • 在每个创建的灰度发布详情页面下方的发布日志区域,查看发布的过程。
相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
2月前
|
缓存 Kubernetes Docker
GitLab Runner 全面解析:Kubernetes 环境下的应用
GitLab Runner 是 GitLab CI/CD 的核心组件,负责执行由 `.gitlab-ci.yml` 定义的任务。它支持多种执行方式(如 Shell、Docker、Kubernetes),可在不同环境中运行作业。本文详细介绍了 GitLab Runner 的基本概念、功能特点及使用方法,重点探讨了流水线缓存(以 Python 项目为例)和构建镜像的应用,特别是在 Kubernetes 环境中的配置与优化。通过合理配置缓存和镜像构建,能够显著提升 CI/CD 流水线的效率和可靠性,助力开发团队实现持续集成与交付的目标。
|
2月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
362 180
|
5月前
|
存储 Kubernetes 持续交付
介绍一下Kubernetes的应用场景
【10月更文挑战第18天】介绍一下Kubernetes的应用场景。
332 3
|
10天前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
12天前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
|
12天前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
23天前
|
Kubernetes 持续交付 开发工具
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
阿里云协同万兴科技落地ACK One GitOps方案,全球多机房应用自动化发布,效率提升50%
|
14天前
|
运维 分布式计算 Kubernetes
ACK One多集群Service帮助大批量应用跨集群无缝迁移
ACK One多集群Service可以帮助您,在无需关注服务间的依赖,和最小化迁移风险的前提下,完成跨集群无缝迁移大批量应用。
|
2月前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
4月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
367 60

热门文章

最新文章