前提条件
说明 应用监控 eBPF 版目前正在公测中,公测期间您可以免费使用阿里云应用监控 eBPF 版,如果您在使用中有任何问题,请联系应用监控 eBPF 版答疑钉钉群(群号:35568145)获取帮助。
 接入说明
为Kubernetes集群安装应用监控 eBPF 版组件即可将集群接入应用监控 eBPF 版:
安装前,需先检查目标集群是否存在ARMS Addon Token,否则会出现权限不足的报错。若存在ARMS Addon Token,ARMS会进行免密授权,组件安装完成后,即可使用应用监控 eBPF 版;若不存在ARMS Addon Token,则需要手动添加ARMS和链路追踪权限策略。查看ARMS Addon Token和手动添加权限策略方法如下:
查看集群是否存在ARMS Addon Token。
- 登录容器服务管理控制台,在集群列表页面,单击目标集群名称进入集群详情页。 
- 在左侧导航栏选择,然后在顶部选择命名空间为kube-system,查看addon.arms.token是否存在。 
手动添加权限策略。
- 登录容器服务管理控制台,在集群列表页面单击目标集群名称。 
- 在页签的集群资源区域,单击Worker RAM角色右侧的链接。 
- 在权限管理页签单击新增授权。 
- 在新增授权面板添加以下两个权限策略,然后单击确认新增授权。 
安装应用监控 eBPF 版组件
为已有应用安装组件
如果您的应用已安装过应用监控 eBPF 版组件,请在容器服务管理控制台目标集群下的页面确认ack-arms-cmonitor组件版本是否为4.0.0或以上,如果不是,请单击升级将组件升级至最新版本。
- 登录容器服务管理控制台,在集群列表页面单击目标集群名称。 
- 在左侧导航栏,选择运维管理 > 集群拓扑。 
- 在集群拓扑页面,单击开始安装。ACK控制台将会为您自动安装应用监控 eBPF 版组件。 
- 如果是专有版集群,请更新AK/SK配置。 - 在左侧导航栏,选择。 
- 在arms-cmonitor右侧单击更新,修改- accessKey和- accessKeySecret为阿里云账号的AccessKey ID和AccessKey Secret。获取方法,请参见获取AccessKey。
 
 - 重要 - 请确认对应的阿里云账号已包含AliyunARMSFullAccess和AliyunSTSAssumeRoleAccess权限。 
 
- 单击确定。 
 
新建应用时安装组件
- 登录容器服务管理控制台,在集群列表页面上的目标集群右侧操作列单击应用管理。 
- 在无状态页面单击使用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集群应用的关键指标、上下游依赖组件、拓扑图等,更多信息,请参见应用详情。