在 K8s 中安装 Agent
创建时间:2024-06-13 最近修改时间:2024-06-24
#1. 简介
假如你要使用 DeepFlow 监控一个新的 K8s 集群。
DeepFlow 能够零侵扰采集所有 Pod 的观测信号(AutoMetrics、AutoTracing、AutoProfiling),
并基于调用 apiserver 获取的信息自动为所有观测数据注入K8s 资源
和K8s 自定义 Label
标签(AutoTagging)。
#2. 准备工作
#2.1 部署拓扑
#2.2 获取 DeepFlow 平台中的 K8s ClusterID
DeepFlow 平台使用公有云的集群 ID 或者随机为每个集群生成一个唯一 ID,从“资源-资源池-云平台”中查看需要部署的集群 ID,形如"g-3aebEkS108"。
#2.3 获取 DeepFlow Agent 镜像
向云杉网络的同学获取 DeepFlow Agent 镜像地址和镜像 tag。
V6.4 版本最新镜像为 hub.deepflow.yunshan.net/public/deepflow-agent:v6.4
,注意此仓库位于阿里云北京 Region。
#3. 部署 deepflow-agent
使用 Helm 安装 deepflow-agent:
cat << EOF > values-custom.yaml
deepflowServerNodeIPS:
- 10.1.2.3 # FIXME: DeepFlow Server Node IPs
- 10.4.5.6 # FIXME: DeepFlow Server Node IPs
deepflowK8sClusterID: "fffffff" # FIXME: K8s ClusterID
image:
repository: hub.deepflow.yunshan.net/public/deepflow-agent
pullPolicy: Always
# Overrides the image tag whose default is the chart appVersion.
tag: v6.4
EOF
helm repo add deepflow https://deepflowio.github.io/deepflow
helm repo update deepflow # use `helm repo update` when helm < 3.7.0
helm install deepflow-agent -n deepflow deepflow/deepflow-agent --create-namespace \
-f values-custom.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#4. 注意
在同一个 K8s 集群中,建议将采集器部署在同一采集器组内。如果出于特定需求必须将它们分散到不同的采集器组,请务必确保所有相关采集器组的 cpu、memory 限制保持一致。此外,请注意远程操作可能带来的影响,例如,通过执行 kubectl edit
命令修改某个 agent 的 cpu、memory 限制,可能会导致同个采集器组的 agent 进入连续重启的状态。