监控多个 K8s 集群
# 1. 简介
DeepFlow Server 可服务于多个 K8s 集群中的 DeepFlow Agent。假设你在一个 K8s 集群中已经部署好了 DeepFlow Server,本章介绍如何监控其他的 K8s 集群。
# 2. 准备工作
# 2.1 部署拓扑
# 2.2 确保不同 K8s 集群可区分
DeepFlow 使用 K8s 的 CA 文件 MD5 值区分不同的集群,请在不同 K8s 集群的 Pod 中查看 /run/secrets/kubernetes.io/serviceaccount/ca.crt
文件,确保不同集群的 CA 文件不同。
假如你的不同 K8s 集群使用了相同的 CA 文件,在多个集群中部署 deepflow-agent 之前,需要利用 deepflow-ctl domain create
获取一个 K8sClusterID
:
unset CLUSTER_NAME
CLUSTER_NAME="k8s-1" # FIXME: K8s cluster name
cat << EOF | deepflow-ctl domain create -f -
name: $CLUSTER_NAME
type: kubernetes
EOF
deepflow-ctl domain list $CLUSTER_NAME # Get K8sClusterID
1
2
3
4
5
6
7
2
3
4
5
6
7
# 3. 部署 deepflow-agent
使用 Helm 安装 deepflow-agent:
cat << EOF > values-custom.yaml
deepflowServerNodeIPS:
- 10.1.2.3 # FIXME: K8s Node IPs
- 10.4.5.6 # FIXME: K8s Node IPs
clusterNAME: k8s-1 # FIXME: name of the cluster in deepflow
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
2
3
4
5
6
7
8
9
10
11
cat << EOF > values-custom.yaml
image:
repository: registry.cn-beijing.aliyuncs.com/deepflow-ce/deepflow-agent
deepflowServerNodeIPS:
- 10.1.2.3 # FIXME: K8s Node IPs
- 10.4.5.6 # FIXME: K8s Node IPs
clusterNAME: k8s-1 # FIXME: name of the cluster in deepflow
EOF
helm repo add deepflow https://deepflow-ce.oss-cn-beijing.aliyuncs.com/chart/stable
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
2
3
4
5
6
7
8
9
10
11
12
13
我们建议上述部署过程中将 deepflow-agent 的 deepflowServerNodeIps
配置为 K8s 集群的一个或多个相对固定的 Node IP。
注意:
若不同 K8s 集群的 CA 文件一样,部署时需要传入使用 deepflow-ctl
获取到的 kubernetesClusterId
:
echo "deepflowK8sClusterID: "fffffff" # FIXME: Generate by `deepflow-ctl domain create`" >> values-custom.yaml
helm upgrade deepflow-agent -n deepflow deepflow/deepflow-agent \
-f values-custom.yaml
1
2
3
2
3