在默认情况下,由于不能确定网格内服务之间的调用依赖关系,Sidecar的配置中保存了数据平面内所有服务的信息。您可以使用Sidecar资源配置使对应工作负载上的Sidecar将仅关注与自己有调用依赖关系的服务信息。本文介绍如何使用基于访问日志分析自动推荐的Sidecar资源。
前提条件
已添加集群到ASM实例。具体操作,请参见添加集群到ASM实例。
已部署入口网关。具体操作,请参见创建入口网关。
已部署应用到ASM实例关联的集群。具体操作,请参见在ASM实例关联的集群中部署应用。
已使用日志服务采集数据平面的访问日志。具体操作,请参见使用日志服务采集数据平面的AccessLog。
背景信息
在默认情况下,针对控制平面或数据平面的任意一次修改都会引起控制平面向数据平面所有Sidecar的配置推送。服务网格ASM可以通过分析数据平面Sidecar产生的访问日志获取数据平面服务之间的调用依赖关系,为数据平面中的每个工作负载自动推荐Sidecar资源。为工作负载推荐Sidecar资源后:
Sidecar配置内将仅保留该Sidecar对应工作负载所依赖的服务信息。
当该Sidecar资源对应的工作负载无依赖关系的服务发生改变,或与该服务相关的资源发生改变(例如虚拟服务等),都不会引起控制平面向该Sidecar的配置推送。
注意事项
如果您在设置启用访问日志采集时,设置日志服务Project为使用默认,ASM会默认选择您添加到网格中的第一个集群的日志服务Project用于Sidecar资源推荐。
ASM的Sidecar资源推荐通过单独针对每个负载单独的服务依赖关系提供Sidecar资源,能够最大化精简数据面Sidecar配置,但其需要针对数据面中的每个工作负载进行单独配置,且由于推荐基于访问日志,如果访问日志中没有工作负载的服务调用记录,可能造成推荐的Sidecar不准确,因此您需要对Sidecar进行二次确认。
步骤一:产生访问日志
在浏览器地址栏输入http://{入口网关服务的IP地址}/productpage。持续刷新,直至观察到Bookinfo应用页面在显示黑色星星图标和红色星星图标之间轮流切换。
步骤二:为工作负载推荐Sidecar资源
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在出入站流量配置(Sidecar对象)页面单击目标应用右侧操作列下的推荐。
当目标应用的推荐任务状态为推荐完成,说明为工作负载推荐Sidecar资源成功。
在出入站流量配置(Sidecar对象)页面单击目标应用右侧操作列下的查看。
在推荐的Sidecar对象资源面板检查Sidecar的YAML文件中的hosts参数值是否包含工作负载的所有调用服务,确认无误后,单击确定。
如果您发现Sidecar的YAML文件hosts缺少了服务,您可以在YAML文件进行补充,然后再创建Sidecar资源。
(可选)步骤三:重新为工作负载推荐Sidecar资源
随着业务应用的更新升级,服务网格中服务之间的调用依赖关系可能会发生改变,此时之前ASM推荐的Sidecar资源将不再有效,此时建议您重新收集日志,并重新为对应工作负载推荐Sidecar资源。
登录ASM控制台,在左侧导航栏,选择 。
在网格管理页面,单击目标实例名称,然后在左侧导航栏,选择 。
在出入站流量配置(Sidecar对象)页面单击目标应用右侧操作列下的重新收集日志。
在重新收集日志对话框单击确定。
此时被成功应用的Sidecar资源将被删除,同时目标应用的推荐任务状态会显示重新收集日志中。
重新为访问日志分析产生访问日志。具体操作,请参见步骤一:产生访问日志。
重新为工作负载推荐Sidecar资源。具体操作,请参见步骤二:为工作负载推荐Sidecar资源。