在Sidecar场景下,一个pod中可能会有多个容器,并且这些容器中运行的应用所使用的编程语言可能不同,本文将提供在Sidecar场景下通过ack-onepilot组件接入多语言应用的最佳实践。
前提条件
ack-onepilot版本不低于4.2.0。
操作步骤
参考以下文档安装ack-onepilot并为其授予正确的资源访问权限。
为工作负载添加相关标签。
以上YAML是一个同时使用Java,Golang以及Python三种编程语言的复杂应用,应用中有三个不同编程语言的容器,容器名分别为test-java、test-go、test-python。
将该应用中的三个容器分别接入到三个不同的ARMS应用中以达到数据隔离,具体操作如下:
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在无状态页面的目标应用右侧选择
。如需创建一个新应用,单击使用YAML创建资源。
在YAML文件中将以下
labels
添加到spec.template.metadata层级下,然后单击更新。labels: # 请将${containerName}替换为实际的容器名称 apsara.apm/container.${containerName}.app-language: java # 替换为该容器实际的编程语言 apsara.apm/container.${containerName}.armsPilotAutoEnable: 'on' apsara.apm/container.${containerName}.armsPilotCreateAppName: "<your-deployment-name>" # 请将<your-deployment-name>替换为您的应用名称。
若应用出现在ARMS控制台的 页面中且有数据上报,则说明接入成功。
该文章对您有帮助吗?