Skip to content

Commit

Permalink
添加ee agent部署 (#483)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nick-0314 authored May 30, 2024
1 parent a2b932d commit 2e23627
Show file tree
Hide file tree
Showing 3 changed files with 266 additions and 3 deletions.
62 changes: 61 additions & 1 deletion docs/zh/03-ee-install/01-tenant/01-k8s.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,64 @@ title: 在 K8s 中安装 Agent
permalink: /ee-install/tenant/k8s
---

TODO
# 简介

假如你要使用 DeepFlow 监控一个新的 K8s 集群。
DeepFlow 能够零侵扰采集所有 Pod 的观测信号(AutoMetrics、AutoTracing、AutoProfiling),
并基于调用 apiserver 获取的信息自动为所有观测数据注入`K8s 资源``K8s 自定义 Label`标签(AutoTagging)。

# 准备工作

## 部署拓扑

```mermaid
flowchart LR
subgraph K8s-Cluster-1
DeepFlowServer["deepflow-server (deployment)"]
DeepFlowAgent1["deepflow-agent (daemonset)"]
DeepFlowAgent1 -->|load balancing| DeepFlowServer
end
subgraph K8s-Cluster-2
DeepFlowAgent2["deepflow-agent (daemonset)"]
DeepFlowAgent2 -->|load balancing| DeepFlowServer
end
```

## 获取 DeepFlow 平台中的 K8s ClusterID

DeepFlow 平台使用公有云的集群 ID 或者随机为每个集群生成一个唯一 ID,从“资源-资源池-云平台”中查看需要部署的集群 ID,形如"g-3aebEkS108"。

## 获取 DeepFlow Agent 镜像

向云杉网络的同学获取 DeepFlow Agent 镜像地址和镜像 tag。

V6.4 版本最新镜像为 `hub.deepflow.yunshan.net/public/deepflow-agent:v6.4`,注意此仓库位于阿里云北京 Region。

# 部署 deepflow-agent

使用 Helm 安装 deepflow-agent:

```bash
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
```

# 注意

在同一个 K8s 集群中,建议将采集器部署在同一采集器组内。如果出于特定需求必须将它们分散到不同的采集器组,请务必确保所有相关采集器组的 cpu、memory 限制保持一致。此外,请注意远程操作可能带来的影响,例如,通过执行 `kubectl edit` 命令修改某个agent 的 cpu、memory 限制,可能会导致同个采集器组的 agent 进入连续重启的状态。
113 changes: 112 additions & 1 deletion docs/zh/03-ee-install/01-tenant/02-cloud-host.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,115 @@ title: 在云服务器中安装 Agent
permalink: /ee-install/tenant/cloud-host
---

TODO
# 简介

DeepFlow 支持监控云服务器,并通过调用云厂商 API 获取云资源信息,自动注入到所有观测数据中(AutoTagging)。

# 部署拓扑

```mermaid
flowchart TD
subgraph VPC-1
subgraph K8s-Cluster
DeepFlowServer["deepflow-server (deployment)"]
end
subgraph Cloud-Host-1
DeepFlowAgent1[deepflow-agent]
DeepFlowAgent1 --> DeepFlowServer
end
end
subgraph VPC-2
subgraph Cloud-Host-2
DeepFlowAgent2[deepflow-agent]
DeepFlowAgent2 -->|"tcp/udp 30033+30035"| DeepFlowServer
end
end
DeepFlowServer -->|"get resource & label"| CloudAPI[cloud api service]
```

# 联系云杉网络创建公有云 Domain

DeepFlow 目前支持如下公有云的资源信息同步(标记为 `TBD` 的正在整理代码中):
| 云服务商(英文) | 云服务商(中文) | DeepFlow中使用的类型标识 |
| ---------------- | ---------------- | ------------------------ |
| AWS | AWS | aws |
| Aliyun | 阿里云 | aliyun |
| Baidu Cloud | 百度云 | baidu\_bce |
| Huawei Cloud | 华为云 | huawei |
| Microsoft Azure | 微软云 | `TBD` |
| QingCloud | 青云 | qingcloud |
| Tencent Cloud | 腾讯云 | tencent |


## 获取采集器安装包和采集器组的 Agent Group ID

公有云服务器部署 DeepFlow Agent 时需要向云杉网络的同学获取传统服务器的安装包和 Agent Group ID

# 部署 DeepFlow Agent

::: code-tabs#shell

@tab rpm

```bash
unzip deepflow-agent-rpm.zip
yum -y localinstall x86_64/deepflow-agent-1.0*.rpm
```

@tab deb

```bash
unzip deepflow-agent-deb.zip
dpkg -i x86_64/deepflow-agent-1.0*.systemd.deb
```

@tab docker compose

```bash
touch /etc/deepflow-agent.yaml

cat << EOF > deepflow-agent-docker-compose.yaml
version: '3.2'
services:
deepflow-agent:
image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/deepflow-agent:stable
container_name: deepflow-agent
restart: always
cap_add:
- SYS_ADMIN
- SYS_RESOURCE
- SYS_PTRACE
- NET_ADMIN
- NET_RAW
- IPC_LOCK
- SYSLOG
volumes:
- /etc/deepflow-agent.yaml:/etc/deepflow-agent/deepflow-agent.yaml:ro
- /sys/kernel/debug:/sys/kernel/debug:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
network_mode: "host"
pid: "host"
EOF

docker compose -f deepflow-agent-docker-compose.yaml up -d
```

:::

修改 deepflow-agent 的配置文件 `/etc/deepflow-agent.yaml`
```yaml
controller-ips:
- 10.1.2.3 # FIXME: DeepFlow Server Node IPs
vtap-group-id-request: "g-fffffff" # FIXME: agent-group ID
```
启动 deepflow-agent :
```bash
systemctl enable deepflow-agent
systemctl restart deepflow-agent
```
94 changes: 93 additions & 1 deletion docs/zh/03-ee-install/01-tenant/03-legacy-host.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,96 @@ title: 在传统服务器中安装 Agent
permalink: /ee-install/tenant/legacy-host
---

TODO
# 简介

DeepFlow 支持监控传统服务器。

# 部署拓扑

```mermaid
flowchart LR
subgraph K8s-Cluster
DeepFlowServer["deepflow-server (deployment)"]
end
subgraph Legacy-Host-1
DeepFlowAgent1[deepflow-agent]
DeepFlowAgent1 --> DeepFlowServer
end
subgraph Legacy-Host-2
DeepFlowAgent2[deepflow-agent]
DeepFlowAgent2 --> DeepFlowServer
end
```


## 获取采集器安装包和采集器组的 Agent Group ID

传统服务器部署 DeepFlow Agent 时需要向云杉网络的同学获取传统服务器的安装包和 Agent Group ID

# 部署 DeepFlow Agent

::: code-tabs#shell

@tab rpm

```bash
unzip deepflow-agent-rpm.zip
yum -y localinstall x86_64/deepflow-agent-1.0*.rpm
```

@tab deb

```bash
unzip deepflow-agent-deb.zip
dpkg -i x86_64/deepflow-agent-1.0*.systemd.deb
```

@tab docker compose

```bash
touch /etc/deepflow-agent.yaml

cat << EOF > deepflow-agent-docker-compose.yaml
version: '3.2'
services:
deepflow-agent:
image: registry.cn-hongkong.aliyuncs.com/deepflow-ce/deepflow-agent:stable
container_name: deepflow-agent
restart: always
cap_add:
- SYS_ADMIN
- SYS_RESOURCE
- SYS_PTRACE
- NET_ADMIN
- NET_RAW
- IPC_LOCK
- SYSLOG
volumes:
- /etc/deepflow-agent.yaml:/etc/deepflow-agent/deepflow-agent.yaml:ro
- /sys/kernel/debug:/sys/kernel/debug:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
network_mode: "host"
pid: "host"
EOF

docker compose -f deepflow-agent-docker-compose.yaml up -d
```

:::

修改 deepflow-agent 的配置文件 `/etc/deepflow-agent.yaml`
```yaml
controller-ips:
- 10.1.2.3 # FIXME: DeepFlow Server Node IPs
vtap-group-id-request: "g-fffffff" # FIXME: agent-group ID
```
启动 deepflow-agent :
```bash
systemctl enable deepflow-agent
systemctl restart deepflow-agent
```

0 comments on commit 2e23627

Please sign in to comment.