前提條件
說明 應用監控 eBPF 版目前正在公測中,公測期間您可以免費使用阿里雲應用監控 eBPF 版,如果您在使用中有任何問題,請聯絡應用監控 eBPF 版答疑DingTalk群(群號:35568145)擷取協助。
接入說明
為Kubernetes叢集安裝應用監控 eBPF 版組件即可將叢集接入應用監控 eBPF 版:
安裝前,需先檢查目的地組群是否存在ARMS Addon Token,否則會出現許可權不足的報錯。若存在ARMS Addon Token,ARMS會進行免密授權,組件安裝完成後,即可使用應用監控 eBPF 版;若不存在ARMS Addon Token,則需要手動添加ARMS和鏈路追蹤權限原則。查看ARMS Addon Token和手動添加權限原則方法如下:
查看叢集是否存在ARMS Addon Token。
登入Container Service管理主控台,在叢集列表頁面,單擊目的地組群名稱進入叢集詳情頁。
在左側導覽列選擇,然後在頂部選擇命名空間為kube-system,查看addon.arms.token是否存在。
手動添加權限原則。
登入Container Service管理主控台。
在左側導覽列選擇叢集,然後單擊目的地組群名稱。
在目的地組群的叢集資訊頁面上單擊叢集資源頁簽,然後單擊Worker RAM角色右側的連結。
在角色頁面的許可權管理頁簽上,單擊新增授權。
選擇AliyunARMSFullAccess和AliyunTracingAnalysisFullAccess系統許可權,然後單擊確定。
安裝應用監控 eBPF 版組件
為已有應用安裝組件
如果您的應用已安裝過應用監控 eBPF 版組件,請在Container Service管理主控台目的地組群下的頁面確認ack-arms-cmonitor組件版本是否為4.0.0或以上,如果不是,請單擊升級將組件升級至最新版本。
登入Container Service管理主控台,在叢集列表頁面單擊目的地組群名稱。
在左側導覽列,選擇營運管理 > 叢集拓撲。
在叢集拓撲頁面,單擊開始安裝。ACK控制台將會為您自動安裝應用監控 eBPF 版組件。
如果是專有版叢集,請更新AK/SK配置。
在左側導覽列,選擇。
在arms-cmonitor右側單擊更新,修改accessKey
和accessKeySecret
為阿里雲帳號的AccessKey ID和AccessKey Secret。擷取方法,請參見擷取AccessKey。
重要 請確認對應的阿里雲帳號已包含AliyunARMSFullAccess和AliyunSTSAssumeRoleAccess許可權。
單擊確定。
建立應用時安裝組件
登入Container Service管理主控台,在叢集列表頁面上的目的地組群右側操作列單擊應用管理。
在無狀態頁面右上方單擊使用YAML建立資源。
選擇樣本模板,並在模板(YAML格式)中將以下labels
添加到spec.template.metadata層級下。
labels:
armseBPFAutoEnable: "on"
armseBPFCreateAppName: "<your-deployment-name>" //請將<your-deployment-name>替換為您的應用程式名稱。
建立一個無狀態(Deployment)應用並開啟ARMS應用監控 eBPF 版的完整YAML樣本模板如下:
展開查看完整樣本YAML檔案。
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
armseBPFAutoEnable: "on"
armseBPFCreateAppName: "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 # for versions before 1.8.0 use apps/v1beta1
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
armseBPFAutoEnable: "on"
armseBPFCreateAppName: "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
--
相關文檔
接入應用監控 eBPF 版後,即可查看ACK叢集應用的關鍵計量、上下遊相依元件、拓撲圖等,更多資訊,請參見應用詳情。