网格拓扑是一个服务网格可观测性工具,提供查看相关服务与配置的可视化界面。ASM从1.7.5.25版本开始支持内置网格拓扑。本文介绍如何通过ASM控制台开启网格拓扑的可观测性。
前提条件
已创建Kubernetes集群。具体操作,请参见创建Kubernetes托管版集群。
已自建Prometheus或集成ARMS Prometheus。具体操作,请参见集成自建Prometheus实现网格监控或集成ARMS Prometheus实现网格监控。
步骤一:启用网格拓扑
方式一:新建ASM实例
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击创建新网格。
在可观测性区域,选中开启采集 Prometheus 监控指标,按需选择Prometheus类型并进行相关操作。
Prometheus类型
操作
ARMS Prometheus
选中使用可观测监控Prometheus版采集监控指标,然后选中启用ASM网格拓扑提升网格可观测。
自建Prometheus
选中集成自建Prometheus实现监控,然后选中启用ASM网格拓扑提升网格可观测,输入ASM网格拓扑使用的Prometheus服务地址(即自建Prometheus服务的访问地址)。
说明选中开启采集 Prometheus 监控指标,表示开启采集服务网格实例指标功能,不会自动创建ARMS实例或者自建的Prometheus实例。
取消选中开启采集 Prometheus 监控指标和启用ASM网格拓扑提升网格可观测,表示关闭网格拓扑。
配置相关信息,然后在页面下方,单击创建服务网格。
关于配置项的说明,请参见创建ASM实例。
方式二:使用已有ASM实例
ASM版本为1.12.4.50以下
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择
,然后在页面右侧,单击功能设置。在功能设置更新面板,选中开启采集 Prometheus 监控指标,按需选择Prometheus类型并进行相关操作。
Prometheus类型
操作
ARMS Prometheus
选中使用可观测监控Prometheus版采集监控指标,然后选中启用ASM网格拓扑提升网格可观测。
自建Prometheus
选中集成自建Prometheus实现监控,然后选中启用ASM网格拓扑提升网格可观测,输入ASM网格拓扑使用的Prometheus服务地址(即自建Prometheus服务的访问地址)。
配置完成后,在功能设置更新面板下方,单击确定。
ASM版本为1.12.4.50及以上
网格拓扑依赖服务网格集成Prometheus监控指标。如果您尚未集成Prometheus实现网格监控,请先对Prometheus进行集成。具体操作,请参见集成ARMS Prometheus实现网格监控和集成自建Prometheus实现网格监控。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择
,按照Prometheus类型进行相关操作。Prometheus类型
操作
ARMS Prometheus
在启用ASM网格拓扑区域,单击开始启用。
自建Prometheus
在启用ASM网格拓扑区域,输入ASM网格拓扑使用的Prometheus服务地址,然后单击开始启用。
步骤二:访问网格拓扑
您可以通过以下三种方式访问网格拓扑。直接访问网格拓扑的方式需ASM版本为1.12.4.50及以上;自定义方式访问网格拓扑的方式需ASM版本为1.16.4.5及以上。
方式一:直接访问网格拓扑
如果您的ASM版本为1.12.4.50及以上,您可以选择自动创建CLB访问ASM网格拓扑,并直接访问网格拓扑服务。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择
。在访问方式区域,进行如下配置。
ASM版本为1.15.3.120以下:选中自动创建公网负载均衡CLB访问ASM网格拓扑。
ASM版本为1.15.3.120及以上:打开创建负载均衡CLB访问ASM网格拓扑右侧的开关,在弹出的对话框,单击确定。
开启访问网格拓扑后,服务网格将进入短暂的更新状态。
查看服务网格是否更新完成。
在左侧导航栏,选择
。在基本信息区域,查看服务网格的状态。
若状态为更新中,表示正在更新;若状态为运行中,表示更新完成。
在网格拓扑页面的访问方式区域,单击点击此处在新页面访问ASM网格拓扑,进入网格拓扑的登录页面。
方式二:使用ASM网关访问网格拓扑
创建入口网关,并为入口网关添加支持网格拓扑访问的端口配置。具体操作,请参见创建入口网关服务或使用KubeAPI管理入口网关。
端口配置的YAML示例如下。
- name: http-kiali port: 20001 protocol: TCP targetPort: 20001
使用以下YAML,创建网关规则。具体操作,请参见管理网关规则。
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: kiali-gateway namespace: istio-system spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 20001 protocol: HTTP
使用以下YAML,创建虚拟服务。具体操作,请参见管理虚拟服务。
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: kiali-vs namespace: istio-system spec: gateways: - kiali-gateway hosts: - '*' http: - route: - destination: host: kiali port: number: 20001
登录网格拓扑。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择
。在配置信息区域,单击启用ASM网格拓扑右侧的通过入口网关访问,进入网格拓扑的登录页面。
方式三:自定义方式访问网格拓扑
在启用网格拓扑后,网格拓扑将在Kubernetes集群的istio-system命名空间下创建名为Kiali的Service。您可以通过为该Service创建代理服务等方式访问网格拓扑。例如,为Kiali Service创建一个Nginx反向代理,并通过Nginx访问网格拓扑。您可以通过自定义访问方式设置来设定访问Kiali Service的具体方法。该方式需ASM版本为1.16.4.5及以上。关于升级ASM版本的具体操作,请参见升级ASM实例。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在登录鉴权方式区域下方,单击展开高级选项,然后在自定义访问方式设置区域,配置相关信息,单击保存网格拓扑配置。
配置项
说明
自定义访问域名
定义网格拓扑所服务的自定义域名。如果您在访问网格拓扑时使用自定义域名,建议您配置此项,否则可能影响网格拓扑的OIDC登录流程。当您通过OIDC方式登录网格拓扑时,网格拓扑会将Redirect URI中的域名替换为您的自定义域名,以保证和OIDC应用的正常对接。
自定义访问端口
定义网格拓扑服务监听的端口,默认为20001。当您设定此项时,网格拓扑服务将监听您指定的自定义端口。
自定义访问服务根路径
定义网格拓扑所服务的根路径,默认为/。当您设定此项时,网格拓扑将以您设定的路径为根路径提供服务。当您在访问网格拓扑时,需要在原有访问地址中添加自定义的根路径。
自定义访问协议(https/http)
定义网格拓扑所服务的协议,仅支持填写http或https。如果您在访问网格拓扑时使用HTTPS协议,建议您配置此项,否则可能影响网格拓扑的OIDC登录流程。当您通过OIDC方式登录网格拓扑时,网格拓扑会将Redirect URI中的协议部分替换为您的自定义协议,以保证和OIDC应用的正常对接。
步骤三:登录网格拓扑
您可以通过以下三种方式登录网格拓扑。OIDC的方式登录需ASM版本为1.15.3.120及以上;阿里云账号身份的方式需ASM版本为1.16.4.5及以上。
方式一:通过Token方式登录网格拓扑
ASM版本为1.12.4.50以下
您可以登录ACK控制台获取Token,然后通过Token方式登录网格拓扑。
登录容器服务管理控制台,在左侧导航栏单击集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择
。在保密字典页面,命名空间选择istio-system,单击kiali-service-account-token-****,然后单击token行的
图标,复制Token。
在网格拓扑的登录页面,粘贴Token,单击Log in,进入网格拓扑控制台。
ASM版本为1.12.4.50及以上
您可以登录ASM控制台获取Token,然后通过Token方式登录网格拓扑。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择
。在网格拓扑页面的访问方式区域,单击复制Token并在新页面打开ASM网格拓扑。
在网格拓扑的登录页面,粘贴Token,单击登录,进入网格拓扑控制台。
方式二:通过OIDC方式登录网格拓扑
OIDC(OpenID Connect)是一种身份认证与授权的协议,通常用于实现单点登录(SSO)。您可以通过OIDC协议与IdP(身份提供商)对接,登录网格拓扑。使用该方式,ASM版本需为1.15.3.120及以上。关于升级ASM版本的具体操作,请参见升级ASM实例。
配置IdP。具体操作,请参见ASM集成阿里云IDaaS实现网格内应用单点登录的步骤一和步骤二。
将登录 Redirect URI配置为网格拓扑的负载均衡CLB的IP访问地址(直接通过CLB访问网格拓扑)或者ASM网关的地址(使用ASM网关访问网格拓扑)。配置示例如下:
如果通过CLB访问网格拓扑,且网格拓扑的负载均衡CLB的IP为
xxx.xxx.xxx.xxx
,则登录 Redirect URI配置为http://xxx.xxx.xxx.xxx:20001
。20001
末尾不能携带/
或/xxx
等路径。如果通过ASM网关访问网格拓扑,且ASM网关的IP为
yyy.yyy.yyy.yyy
,则登录 Redirect URI配置为http://yyy.yyy.yyy.yyy:20001
。20001
末尾不能携带/
或/xxx
等路径。
通过OIDC方式登录网格拓扑。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择
。在登录鉴权方式区域,选中OIDC登录,配置相关信息,单击保存网格拓扑配置,然后单击在新页面打开ASM网格拓扑。
在网格拓扑的登录页面,单击Log In with OpenID,跳转到OIDC应用的登录页面进行登录。
方式三:通过阿里云账号身份登录网格拓扑
您可以通过OIDC协议与阿里云RAM OAuth应用对接,实现通过阿里云账号身份登录网格拓扑。更多信息,请参见Web应用登录阿里云。
使用此方式时,服务网格ASM将自动为您创建名称以asm-kiali开头的阿里云RAM OAuth应用,并将此应用与网格拓扑进行集成。该方式需ASM版本为1.16.4.5及以上。关于升级ASM版本的具体操作,请参见升级ASM实例。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在登录鉴权方式区域,选中阿里云账号身份登录,在弹出的对话框中,单击添加回调地址,输入回调地址,然后单击确定。
网格将进行短暂的更新,请等待网格更新完成后进行下一步操作。
说明回调地址格式请参见方式二:通过OIDC方式登录网格拓扑页签中的登录 Redirect URI。
若您采用直接访问网格拓扑的访问方式,回调地址会自动填写。
在网格拓扑的登录页面,单击Log In with OpenID,以阿里云账号身份进行登录。
FAQ
为什么使用可观测监控Prometheus版采集监控指标,网格拓扑无法加载?
如果您的服务网格ASM选择使用可观测监控Prometheus版采集监控指标,并为ARMS Prometheus实例开启了鉴权Token,网格拓扑将会无法访问您的ARMS Prometheus实例,造成网格拓扑无法加载。更多信息,请参见将Prometheus的监控数据接入本地Grafana。
如果遇到此问题,您可以选择将ARMS Prometheus鉴权Token配置到网格拓扑,以对接ARMS Prometheus实例。该操作需ASM版本为1.15.3.120及以上。如果您的ARMS Prometheus实例未开启鉴权Token,则无需操作。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在对接ARMS Prometheus监控实例区域的文本框,输入ARMS Prometheus配置的鉴权Token,然后单击保存网格拓扑配置,为网格拓扑配置访问ARMS Prometheus实例的鉴权Token。
网格拓扑与Prometheus监控指标之间的关系是什么?
网格拓扑依赖监控指标以绘制拓扑图。在使用网格拓扑时,关闭部分监控指标会对网格拓扑的功能造成影响,甚至会造成网格拓扑不可用:
如果不启用REQUEST_COUNT的SERVER侧指标,将无法生成HTTP/gRPC服务的拓扑图。
如果不启用TCP_SENT_BYTES的SERVER侧指标,将无法生成TCP服务的拓扑图
关闭REQUEST_SIZE和REQUEST_DURATION的SERVER侧,REQUEST_SIZE的CLIENT侧指标会导致部分拓扑图节点的监控信息无法展示。