当前位置: 首页 > news >正文

阿里云服务网格ASM实践

文章目录

    • 1. 前提条件
    • 2. 创建服务网格ASM实例
      • 2.1 前提条件
      • 2.2 创建实例
    • 3. 为ASM实例中的集群部署入口网关
      • 3.1 前提条件
      • 3.2 创建入口网关
    • 4. 在ASM实例关联的集群中部署应用
      • 4.1 前提条件
      • 4.2 应用说明
      • 4.3 部署应用
    • 5. 使用Istio资源实现版本流量路由
      • 5.1 前提条件
      • 5.2 操作步骤
    • 6. 查看应用的网格拓扑
      • 6.1 前提条件
      • 6.2 操作步骤

1. 前提条件

  1. 已经创建k8s集群(阿里云对应的ACK)

2. 创建服务网格ASM实例

2.1 前提条件

  1. 已经授权,RAM子账号需保证有以下权限:
    AliyunServiceMeshDefaultRole
    AliyunCSClusterRole
    AliyunCSManagedKubernetesRole

  2. ASM实例和ACK最好在一个VPC内,如果不在一个VPC,请打通网络

2.2 创建实例

  1. ASM控制台–>服务网格–>网格管理–>单击“创建新网格”
    在这里插入图片描述

  2. 配置相关信息,这里直接把ACK集群添加到ASM实例中
    在这里插入图片描述
    在这里插入图片描述
    配置完成后,点击右下角“创建服务网格”

  3. ASM实例的创建时间一般约为2到3分钟,创建完成后如下
    在这里插入图片描述
    也可以在ASM实例内部看到已经添加的集群,如果没有在创建ASM实例时添加集群,可以在这个地方添加新的集群进来。
    在这里插入图片描述

3. 为ASM实例中的集群部署入口网关

当您的应用程序需要为用户提供统一的公网或内网入口时,可以在Kubernetes集群中部署ASM入口网关(Ingress Gateway)。入口网关作为统一的访问入口,可以简化流量的管理和路由,并利用七层负载均衡能力根据HTTP请求的路径、主机头或其他属性将流量智能分发至相应的后端服务。

3.1 前提条件

  1. 已经将ACK集群添加到ASM实例

3.2 创建入口网关

  1. ASM控制台->左侧“ASM网关”->入口网关->创建。也可以在入口网关页面,单击使用YAML创建定义入口网关。这里选择控制台创建。
    在这里插入图片描述
  2. 填写配置信息
    在这里插入图片描述
    在这里插入图片描述
  3. 创建完成后
    在这里插入图片描述
  4. 通过ACK查看入口网关
    在这里插入图片描述

在这里插入图片描述

4. 在ASM实例关联的集群中部署应用

4.1 前提条件

  • 已创建至少一个ASM实例,并添加至少一个ACK集群到该实例中。
  • 已通过Kubernetes命令行客户端kubectl连接到ASM实例中新添加的ACK集群。
  • 已为ACK集群创建入口网关,使应用示例对外暴露访问。

4.2 应用说明

使用应用示例是一个名为Bookinfo的书评应用。微服务架构如下图所示:
在这里插入图片描述
该应用由以下4个微服务构成:
Productpage:该微服务会调用Details和Reviews两个微服务,用来生成页面。
Details:该微服务包含了书籍的信息。
Reviews:该微服务包含了书籍相关的评论,同时会调用Ratings微服务。
Ratings:该微服务包含了由书籍评价组成的评级信息。

Reviews微服务有3个版本:
v1版本不会调用Ratings服务。
v2版本会调用Ratings服务,并使用1到5个黑色星形图标来显示评分信息。
v3版本会调用Ratings服务,并使用1到5个红色星形图标来显示评分信息。

4.3 部署应用

  • 在ACK控制台–>工作负载->无状态–>使用yaml创建资源在这里插入图片描述

5. 使用Istio资源实现版本流量路由

版本流量路由是指将流量按照比例路由到服务的不同版本,适用于灰度发布和A/B测试等场景

5.1 前提条件

  • 已经添加集群到ASM实例
  • 已部署入口网关
  • 已经部署Bookinfo应用到ASM实例

5.2 操作步骤

  1. 创建网关规则
    ASM控制台–>ASM网关–>网关规则–>填写配置
    在这里插入图片描述
    创建完成后:
    在这里插入图片描述

  2. 创建虚拟服务
    虚拟服务(VirtualService)定义流量路由规则和请求转发策略。创建虚拟服务后,您可以通过/productpage、/static、/login、/logout、/api/v1/products路径访问Bookinfo应用。

ASM控制台,在左侧导航栏,选择服务网格 > 网格管理。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择流量管理中心 > 虚拟服务,然后单击创建。
在创建页面,进行以下配置,然后单击创建。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 访问bookinfo应用
    ASM控制台–>服务网格–>网格管理–>进入实例–>左侧导航栏“ASM网关”–>入口网关–>获取服务地址
    在这里插入图片描述

在浏览器地址栏,输入http://{入口网关服务的IP地址}/productpage,持续刷新页面10次,访问Bookinfo应用。

每次刷新都会访问reviews服务的v1、v2和v3版本。您可以看到reviews服务三个版本出现的比例接近1:1:1。

  1. 创建版本路由规则
  • 控制台选择 流量管理中心 > 目标规则,然后单击创建
    在这里插入图片描述
    在这里插入图片描述

  • 创建虚拟服务,将10%流量路由到reviews服务的v1版本,40%流量路由到reviews服务的v2版本,50%流量路由到reviews服务的v3版本
    – 在左侧导航栏,选择流量管理中心 > 虚拟服务,然后单击创建
    在这里插入图片描述
    在这里插入图片描述

  1. 验证版本流量路由是否成功
    在浏览器地址栏,输入http://{入口网关服务的IP地址}/productpage,持续刷新页面10次。
    若reviews服务的v1、v2、v3三个版本出现的比例接近1:4:5,表明版本流量路由成功。

6. 查看应用的网格拓扑

当您需要可视化监控应用间的交互时,可以开启网格拓扑功能。通过网格拓扑图,您可以实时监测应用的健康状态,分析服务间的延迟和通信问题,了解流量在应用间的分布和流转,以便您快速发现和解决问题,确保应用的可靠性和高性能水平。

6.1 前提条件

  • 已添加ACK集群到ASM实例,且ASM实例版本为1.15.3.120及以上
  • 已为Bookinfo应用设置路由规则,且可以通过入口网关访问Bookinfo应用
  • 已在ACK集群中集成可观测监控Prometheus版或者自建Prometheus,用于采集监控指标。本文以可观测监控Prometheus版为例

6.2 操作步骤

  1. 启用网络拓扑
    左侧导航栏,选择可观测管理中心 > 网格拓扑,在启用ASM网格拓扑区域,按照ASM版本进行以下操作。
  • ASM版本为1.18.2.112以下:单击开始启用。
  • ASM版本为1.18.2.112及以上:任选以下部署模式。关于两种模式的差异以及如何配置托管模式,请参见开启托管模式的网格拓扑。
    – 单击数据面Kubernetes集群内部署模式,输入ASM网格拓扑使用的Prometheus服务地址,单击开始启用。
    – 单击托管模式,单击开始启用,在弹出的对话框,配置相关信息,单击确定。
    在这里插入图片描述
  1. 使用CLB访问网格拓扑
  • 在访问方式区域,按ASM实例版本选择以下操作。
    – ASM版本为1.17.2.19以下:打开自动创建公网负载均衡CLB访问ASM网格拓扑右侧的开关,在弹出的对话框,单击确定。
    – ASM版本为1.17.2.19及以上:打开创建负载均衡CLB访问ASM网格拓扑右侧的开关,在弹出的对话框,按需进行相关配置,然后单击确定。

开启访问网格拓扑后,服务网格将进入短暂的更新状态。
在这里插入图片描述

  • 单击 复制Token并在新页面打开ASM网格拓扑。
  • 在网格拓扑的登录页面,粘贴Token,单击登录,进入网格拓扑控制台。
    在这里插入图片描述
  1. 查看应用网格拓扑
  • 在浏览器地址栏中输入http://{入口网关的IP地址}/productpage,访问Bookinfo应用
  • 在网格拓扑控制台,选择default命名空间,带版本应用视角选择工作负载视角,查看工作负载之间的调用关系,流量走向。
    在这里插入图片描述
http://www.dtcms.com/a/265882.html

相关文章:

  • 抗辐照芯片在核电厂火灾探测器中的应用优势与性能解析
  • springMvc的简单使用:要求在浏览器发起请求,由springMVC接受请求并响应,将个人简历信息展示到浏览器
  • Java 原生 HTTP Client
  • https如何利用工具ssl证书;使用自己生成的证书
  • http、SSL、TLS、https、证书
  • 【交互设计】UI 与 UX 简介:从核心概念到行业实践
  • 微算法科技(NASDAQ MLGO)基于量子图像处理的边缘检测算法:开拓图像分析新视野
  • [2025CVPR]SEEN-DA:基于语义熵引导的领域感知注意力机制
  • 通过观看数百个外科手术视频讲座来学习多模态表征|文献速递-最新论文分享
  • 【数据结构】哈希——闭散列/开散列模拟实现(C++)
  • [论文阅读] 人工智能 | 在非CUDA硬件上运行几何学习:基于Intel Gaudi-v2 HPU的PyTorch框架移植实践
  • Stable Diffusion 项目实战落地:AI照片修复 第一篇 从黑白到彩色:用AI给照片上色的魔法之旅
  • stm32f103c8t6---ymodem协议串口IAP升级(只教怎么操作,略讲原理,100%成功!)
  • laravel基础:隐式模型绑定的用法和介绍
  • 【AI】大语言模型(LLM) NLP
  • STM32-第二节-GPIO输入(按键,传感器)
  • [科普]UART、RS232、RS422、RS485、TTL:深入解析串行通信家族
  • uniapp 使用ffmpeg播放rtsp
  • 网络基础(1)
  • 铁血联盟3 中文 免安 离线运行版
  • 基于路径质量的AI负载均衡异常路径检测与恢复策略
  • HAL库(Hardware Abstraction Layer,硬件抽象层)核心理解
  • 遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
  • VBA初学3----实战(VBA实现Excel转csv)
  • 《2025年攻防演练必修漏洞清单》
  • C++11 shared_ptr 原理与详细教程
  • uniapp打包微信小程序主包过大问题_uniapp 微信小程序时主包太大和vendor.js过大
  • C++ 实现简单二叉树操作:插入节点与数据打印
  • 【playwright篇】教程(十七)[html元素知识]
  • 【NLP入门系列四】评论文本分类入门案例