
# 开启DataPlane V2网络的cilium-agent组件可观测性
开启了DataPlane V2的集群，会在每个节点上部署cilium-agent组件，通过本文的配置可实现cilium-agent组件的可观测。
#### 前提条件
- CCE Standard集群版本在v1.27.16-r50、v1.28.15-r40、v1.29.15-r0、v1.30.14-r0、v1.31.10-r0、v1.32.6-r0及以上，并开启DataPlane V2时支持配置cilium-agent组件的可观测性。
- CCE Turbo集群版本在v1.34.3-r10及以上，并开启DataPlane V2时配置cilium-agent组件的可观测性。
 
#### 步骤一：配置ConfigMap并重建yangtse-cilium
1. 请参见[通过kubectl连接集群](https://support.huaweicloud.com/usermanual-cce/cce_10_0107.html)，使用kubectl工具连接到您的集群。
2. 创建cilium-config.yaml文件，填写以下cilium社区原生的ConfigMap配置。 
   ```
   apiVersion: v1
   data:
     prometheus-serve-addr: :9962
   kind: ConfigMap
   metadata:
     name: cilium-config
     namespace: kube-system
   ```
   表1参数说明 
   | 参数                    | 描述                         | 备注                  |
   |:---|:---|:---|
   | prometheus-serve-addr | cilium-agent的metrics暴露的地址。 | 本文设置为":9962"，冒号不可省略 |
      
   
   
3. 创建该ConfigMap。 
   ```
   kubectl apply -f cilium-config.yaml
   ```
   
   
4. 完成cilium-config配置后，通过执行以下命令滚动重建yangtse-cilium即可生效。 
   ```
   kubectl rollout restart daemonset/yangtse-cilium -n kube-system
   ```
   
   
 
 #### 步骤二：安装相关插件
在集群中安装云原生监控插件和Grafana。
1. 安装云原生监控插件，详情请参见[云原生监控插件](https://support.huaweicloud.com/usermanual-cce/cce_10_0406.html)。
2. 安装Grafana，详情请参见[Grafana](https://support.huaweicloud.com/usermanual-cce/cce_10_0828.html)。
 
#### 步骤三：配置Cilium的可观测任务
1. 创建cilium-monitor.yaml文件，您可以通过以下YAML直接创建cilium的ServiceMonitor可观测任务。 
   ```
   apiVersion: v1
   kind: Service
   metadata:
     annotations:
       prometheus.io/port: "9962"
       prometheus.io/scrape: "true"
     labels:
       k8s-app: cilium
     name: cilium
     namespace: kube-system
   spec:
     clusterIP: None
     clusterIPs:
     - None
     internalTrafficPolicy: Cluster
     ipFamilies:
     - IPv4
     ipFamilyPolicy: SingleStack
     ports:
     - name: metrics
       port: 9962
       protocol: TCP
       targetPort: prometheus
     selector:
       k8s-app: cilium
     sessionAffinity: None
     type: ClusterIP
   ---
   apiVersion: monitoring.coreos.com/v1
   kind: ServiceMonitor
   metadata:
     name: cilium
     namespace: monitoring
   spec:
     endpoints:
     - honorLabels: true
       path: /metrics
       port: metrics
       relabelings:
       - action: labelmap
         regex: __meta_kubernetes_service_label_(.+)
       scheme: http
     jobLabel: cilium
     namespaceSelector:
       matchNames:
       - kube-system
     selector:
       matchLabels:
         k8s-app: cilium
   ```
   
   
2. 创建ServiceMonitor。 
   ```
   kubectl apply -f cilium-monitor.yaml
   ```
   
   
 
#### 步骤四：配置Cilium指标看板
Cilium官网提供了Cilium指标的Grafana看板，相比Prometheus单调的指标数据，Grafana看板更加美观。您可以导入相关看板进行查看。
1. 准备Cilium指标看板的配置文件，打开Cilium开源社区的[Prometheus样例文件](https://raw.githubusercontent.com/cilium/cilium/v1.19.1/examples/kubernetes/addons/prometheus/monitoring-example.yaml)，找到文件中的cilium-dashboard.json并复制。
2. 登录Grafana，在Grafana中选择Dashboards，导入获取的cilium-dashboard.json文件。 
   ![](https://support.huaweicloud.com/usermanual-cce/public_sys-resources/caution_3.0-zh-cn.png)
   如果您在[步骤二：安装相关插件]中安装Grafana插件时启用了"数据源对接AOM"，请将cilium-dashboard.json文件中的**datasource**字段修改为prometheus-aom，然后再进行导入。
   
   
3. 您可以通过看板查看Cilium指标，cilium指标的说明详见[cilium-metrics](https://docs.cilium.io/en/v1.19/observability/metrics/#cilium-metrics)。
   
   ![](https://support.huaweicloud.com/usermanual-cce/zh-cn_image_0000002425294533.png "点击放大")
   
   
 
