企业级运维之云原生与Kubernetes实战课程 - 第三章第6讲 实验三:灰度发布

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 通过ingress实现灰度发布,实现权重灰度和根据header灰度。

企业级运维之云原生与Kubernetes实战课程

第三章第6讲 实验三:灰度发布

 

视频地址:https://developer.aliyun.com/learning/course/913/detail/14607

 

一、实验概述

 

通过ingress实现灰度发布,实现权重灰度和根据header灰度。

 

二、涉及实验资源

 

1.  ACK托管版集群;

2.  ECS客户端:Linux带有公网ip的客户端,并且为集群外场景;

3.  域名账号。

 

三、实验架构

 image.png

 

四、实验准备

 

1.   创建阿里云托管版ACK集群,已经部署好nginx-ingress-controller组件,已经部署好logtail组件(默认勾选“使用日志服务”,选择创建新的Project)

 

2.   使用ack里面的Cloud Shell进行连接以配置管理集群或 kubectl 客户端(备注,所有执行操作都在kubectl客户端执行),客户端配置方法参考官网:容器集群控制台(cs.console.aliyun.com)->集群信息-“安装和设置kubectl”;

 

3.   确认集群具有公网能力,保证可以拉取实验镜像;

 

4.   安装日志组件并确认其正常工作;

 

  • 可以在创建集群时选中使用日志服务,启用Logtail组件;
  • 也可以为已有集群启用Logtail组件:容器集群控制台(cs.console.aliyun.com)->运维管理->组件管理->日志与监控区->安装logtail-ds组件;
  • 最后可以通过 “kubectl -n kube-system get pod | grep log”命令查看组件Pod的运行状态;

 

建议:在实验过程中尽量收集日志,以便遇到问题可以及时排查错误。

 

五、实验步骤

 

1. 创建测试应用

 

使用yaml创建好两个DevelopmentService,分别创建web1应用以及灰度环境的web2应用:

 

Kubectl apply -f d.yaml

image.png

 

2. 创建Ingress实现权重灰度

 

apiVersion: extensions/v1beta1

kind:Ingress

metadata:

annotations:

kubernetes.io/ingress.class: nginx

name: huidu

namespace: default

spec:

rules:

#服务域名,可以自定义

- host: www.web.com

http:

paths:

- backend:

serviceName: web1-svc

servicePort: 80

path:/

pathType: ImplementationSpecific

---

apiVersion: extensions/v1beta1

kind:Ingress

metadata:

annotations:

kubernetes.io/ingress.class: nginx

nginx.ingress.kubernetes.io/canary: 'true'

nginx.ingress.kubernetes.io/canary-weight: '50'

name:huidu2

namespace: default

spec:

rules:

#服务域名,可以自定义

- host: www.web.com

http:

paths:

-backend:

 

当设置灰度权重为50%,测试实现效果:

 image.png

 

  • ClintIPIngress Controller Pod IPServerIP是对应的后端Service Pod IP,其中10.205.0.135web110.205.0.6web2
  • 两个Ingress Controller Pod相互建联成功后,与后端Service连接,权重设置会有所不同;
  • IP10.205.0.132Pod会稍微多于另一个Pod,即负载均衡稍有偏差;

 

3. 创建Ingress实现Header灰度

 

要求headerack:test的请求灰度,其他header10%流量灰度;

 

annotations:

kubernetes.io/ingress.class: nginx

nginx.ingress.kubernetes.io/canary: 'true'

nginx.ingress.kubernetes.io/canary-by-header: ack

nginx.ingress.kubernetes.io/canary-by-header-value: test nginx.ingress.kubernetes.io/canary-weight: '10'

name: huidu2

namespace: default

 

当没有header设定时,20service访问,其中有2次转发给web2

 image.png

 

header指向ack:test时,所有请求都转发给web2

 image.png

 

4. 验证日志服务

 

a.  查看Ingress日志

 image.png

 

 

b.  编写查询语句过滤需要的日志信息;

 

例如查询:_container_ip172.20.0.142的日志出现次数

查询语句: *selectcount(*)where_container_ip_='172.20.0.142'

其中172.20.0.142替换为对应业务pod的实际ip

 

以上就是本次灰度发布实验。

 

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
人工智能 关系型数据库 OLAP
光云科技 X AnalyticDB:构建 AI 时代下的云原生企业级数仓
AnalyticDB承载了光云海量数据的实时在线分析,为各个业务线的商家提供了丝滑的数据服务,实时物化视图、租户资源隔离、冷热分离等企业级特性,很好的解决了SaaS场景下的业务痛点,也平衡了成本。同时也基于通义+AnalyticDB研发了企业级智能客服、智能导购等行业解决方案,借助大模型和云计算为商家赋能。
186 17
|
4月前
|
存储 人工智能 物联网
ACK Gateway with AI Extension:大模型推理的模型灰度实践
本文介绍了如何使用 ACK Gateway with AI Extension 组件在云原生环境中实现大语言模型(LLM)推理服务的灰度发布和流量分发。该组件专为 LLM 推理场景设计,支持四层/七层流量路由,并提供基于模型服务器负载感知的智能负载均衡能力。通过自定义资源(CRD),如 InferencePool 和 InferenceModel,可以灵活配置推理服务的流量策略,包括模型灰度发布和流量镜像。
|
存储 Cloud Native 块存储
EBS深度解析:云原生时代企业级块存储
企业上云的策略,从 Cloud-Hosting 转向 Serverless 架构。块存储作为企业应用上云的核心存储产品,将通过 Serverless 化来加速新的计算范式全面落地。在本话题中,我们将会介绍阿里云块存储企业级能力的创新,深入解析背后的技术细节,分享对未来趋势的判断。
673 0
|
运维 Cloud Native 云计算
云原生技术在企业级应用中的应用与前景分析
随着云计算技术的快速发展,云原生技术作为一种优秀的应用架构模式,正在逐渐受到企业和开发者的关注。本文通过分析云原生技术在企业级应用中的应用情况和未来发展前景,探讨了其在加速企业数字化转型、提升应用性能和灵活性等方面的优势,以及面临的挑战和解决方案。
143 27
|
12月前
|
Kubernetes Cloud Native 微服务
企业级容器部署实战:基于ACK与ALB灵活构建云原生应用架构
这篇内容概述了云原生架构的优势,特别是通过阿里云容器服务Kubernetes版(ACK)和应用负载均衡器(ALB)实现的解决方案。它强调了ACK相对于自建Kubernetes的便利性,包括优化的云服务集成、自动化管理和更强的生态系统支持。文章提供了部署云原生应用的步骤,包括一键部署和手动部署的流程,并指出手动部署更适合有技术背景的用户。作者建议在预算允许的情况下使用ACK,因为它能提供高效、便捷的管理体验。同时,文章也提出了对文档改进的建议,如添加更多技术细节和解释,以帮助用户更好地理解和实施解决方案。最后,展望了ACK未来在智能化、安全性与边缘计算等方面的潜在发展。水文一篇,太忙了,见谅!
|
Kubernetes 安全 Cloud Native
Rainbond 携手 TOPIAM 打造企业级云原生身份管控新体验
TOPIAM是开源的IDaas/IAM平台,旨在统一管理企业账号、权限和认证,整合各类系统,实现单点登录。通过集中式管理,它解决传统IT架构中的安全和效率问题,加强企业安全并促进数字化转型。使用Rainbond云原生应用管理平台可轻松部署TOPIAM。TOPIAM功能包括组织信息管理、身份源集成、多种认证协议、安全审计、防暴力破解和密码策略。未来将推出更多与Rainbond的结合应用案例。
Rainbond 携手 TOPIAM 打造企业级云原生身份管控新体验
|
存储 弹性计算 Kubernetes
【阿里云云原生专栏】深入解析阿里云Kubernetes服务ACK:企业级容器编排实战
【5月更文挑战第20天】阿里云ACK是高性能的Kubernetes服务,基于开源Kubernetes并融合VPC、SLB等云资源。它提供强大的集群管理、无缝兼容Kubernetes API、弹性伸缩、安全隔离及监控日志功能。用户可通过控制台或kubectl轻松创建和部署应用,如Nginx。此外,ACK支持自动扩缩容、服务发现、负载均衡和持久化存储。多重安全保障和集成监控使其成为企业云原生环境的理想选择。
712 3
|
关系型数据库 分布式数据库 数据库
云原生数据库PolarDB快速入门实验
【2月更文挑战第2天】很基础的PolarDB入门操作实验考试,假期闲着无聊考着玩玩。云原生数据库 PolarDB MySQL 版是阿里云自研产品,100%兼容 MySQL。PolarDB产品具有多主多写、多活容灾、HTAP 等特性,交易性能最高可达开源数据库的6倍,分析性能最高可达开源数据库的400倍,TCO 低于自建数据库50%。
|
2月前
|
数据采集 机器学习/深度学习 人工智能
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
运维人的“福音”?AI 驱动的自动化网络监控到底香不香!
138 0
|
6月前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等