阿里云ACK Serverless集群接入应用实时监控服务ARMS能为分布在各处的Kubernetes集群提供统一的管理方式。本文介绍如何通过容器服务Kubernetes版中的应用将应用实时监控服务ARMS接入至标准的ACK Serverless集群。
索引
前提条件
步骤一:安装ARMS应用监控组件
安装ARMS应用监控组件之前,请查看ACK Serverless集群是否存在ARMS Addon Token。若存在,ARMS会进行免密授权;若不存在,在安装ARMS应用监控组件时,需要手动填写accessKey和accessKeySecret进行授权。
- 登录容器服务管理控制台,在集群列表页面,单击目标集群名称进入集群详情页。
- 在左侧导航栏选择addon.arms.token是否存在。 ,然后在顶部选择命名空间为kube-system,查看
操作步骤
在云资源访问授权页面完成授权。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在组件管理页面,单击日志与监控页签,在ack-onepilot组件区域,单击安装。
在安装组件 ack-onepilot对话框中,设置相关配置项,然后单击确定。
如果ACK Serverless集群不存在ARMS Addon Token,则需要设置accessKey和accessKeySecret。其他配置项可按需选择,建议使用默认值。
配置项
描述
accessKey
您的阿里云AccessKey ID。AK权限需包含访问ARMS的权限。
accessKeySecret
您的阿里云AccessKey Secret。
步骤二:为Java应用开启ARMS应用监控
如需在创建新应用的同时开启ARMS应用监控,请完成以下操作。
- 在容器服务管理控制台左侧导航栏单击集群,在集群列表页面上的目标集群右侧操作列单击应用管理。
- 在无状态页面右上角单击使用YAML创建资源。
- 选择示例模板,并在模板(YAML格式)中将以下
labels
添加到spec.template.metadata层级下。labels: armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" #请将<your-deployment-name>替换为您的应用名称。 armsSecAutoEnable: "on" #如果需要接入应用安全,则需要配置此参数。
创建一个无状态(Deployment)应用并开启ARMS应用监控的完整YAML示例模板如下:
展开查看完整示例YAML文件(Java)apiVersion: v1 kind: Namespace metadata: name: arms-demo --- apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: arms-springboot-demo namespace: arms-demo labels: app: arms-springboot-demo spec: replicas: 2 selector: matchLabels: app: arms-springboot-demo template: metadata: labels: app: arms-springboot-demo armsPilotAutoEnable: "on" armsPilotCreateAppName: "arms-k8s-demo" spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1 imagePullPolicy: Always name: arms-springboot-demo env: - name: SELF_INVOKE_SWITCH value: "true" - name: COMPONENT_HOST value: "arms-demo-component" - name: COMPONENT_PORT value: "6666" - name: MYSQL_SERVICE_HOST value: "arms-demo-mysql" - name: MYSQL_SERVICE_PORT value: "3306" --- apiVersion: apps/v1 kind: Deployment metadata: name: arms-springboot-demo-subcomponent namespace: arms-demo labels: app: arms-springboot-demo-subcomponent spec: replicas: 2 selector: matchLabels: app: arms-springboot-demo-subcomponent template: metadata: labels: app: arms-springboot-demo-subcomponent armsPilotAutoEnable: "on" armsPilotCreateAppName: "arms-k8s-demo-subcomponent" spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1 imagePullPolicy: Always name: arms-springboot-demo-subcomponent env: - name: SELF_INVOKE_SWITCH value: "false" - name: MYSQL_SERVICE_HOST value: "arms-demo-mysql" - name: MYSQL_SERVICE_PORT value: "3306" --- apiVersion: v1 kind: Service metadata: labels: name: arms-demo-component name: arms-demo-component namespace: arms-demo spec: ports: # the port that this service should serve on - name: arms-demo-component-svc port: 6666 targetPort: 8888 # label keys and values that must match in order to receive traffic for this service selector: app: arms-springboot-demo-subcomponent --- apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1 kind: Deployment metadata: name: arms-demo-mysql namespace: arms-demo labels: app: mysql spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - resources: limits: cpu: 0.5 image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1 name: mysql ports: - containerPort: 3306 name: mysql --- apiVersion: v1 kind: Service metadata: labels: name: mysql name: arms-demo-mysql namespace: arms-demo spec: ports: # the port that this service should serve on - name: arms-mysql-svc port: 3306 targetPort: 3306 # label keys and values that must match in order to receive traffic for this service selector: app: mysql ---
在无状态页面的目标应用操作列下方,单击ARMS控制台,可跳转至ARMS控制台对您的应用进行服务治理。
后续操作
仅accessKey和accessKeySecret为必填项。其他配置项可按需选择,建议使用默认值。配置项描述accessKey您的阿里云AccessKey ID。AK权限需包含访问ARMS的权限。accessKeySecret您的阿里云AccessKey Secret。