阿里云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。