监控 Serverless Pod

创建时间:2023-10-04 最近修改时间:2024-12-23

#1. 简介

DeepFlow Agent 可作为 Sidecar 部署于 Serverless Pod 内。假设你在一个 K8s 集群中已经部署好了 DeepFlow Server,本章介绍如何监控 Serverless Pod 内的应用。

#2. 部署拓扑

#3. 部署 deepflow-agent

更改 value 文件,以 daemonset 部署 deepflow-agent 并注入 sidecar,并通过 deepflow-ctl domain list 获取 clusterNAME

cat << EOF > values-custom.yaml
deployComponent:
- "watcher"
- "daemonset"
tkeSidecar: true
daemonsetWatchDisabled: true
clusterNAME: $clusterNAME  # FIXME: domain name
EOF

helm install deepflow-agent -n deepflow deepflow/deepflow-agent --version 6.6.018 --create-namespace -f values-custom.yaml
1
2
3
4
5
6
7
8
9
10

上述命令将会部署两组 deepflow-agent:

  • watcher:一个 deepflow-agent 的 deployment,用于同步 K8s 资源。
    • 部署时会自动注入 K8S_WATCH_POLICY=watch-only 的环境变量,此时 deepflow-agent 仅会同步 K8s 资源,不会采集可观测性数据。
  • daemonset:在每个 serverless pod 中以 sidecar 的方式注入 deepflow-agent,用于采集可观测性数据。
    • 注意:当没有运行 watcher 类型的 deepflow-agent 时,deepflow-server 会选举一个 daemonset 类型的 deepflow-agent 用于同步 K8s 资源。
    • 因此,为了确保此类 deepflow-agent 不要因为被选举用于同步 K8s 资源而消耗更多资源,自动为他们注入了 K8S_WATCH_POLICY=watch-disabled 的环境变量。

#4. 下一步