51 lines
2.6 KiB
Markdown
51 lines
2.6 KiB
Markdown
# Argus 多机部署(Docker Swarm + External Overlay)
|
||
|
||
- 前提:Docker ≥ 20.10;Manager/Worker 节点开放 2377/tcp、7946/tcp+udp、4789/udp。
|
||
- DNS:Bind9 为统一权威,解析 *.argus.com 至部署机固定对外主机 IP。
|
||
|
||
## 在部署机(Manager)
|
||
- 初始化 Swarm:`docker swarm init --advertise-addr <manager_ip>`
|
||
- 创建 overlay:`docker network create --driver overlay --attachable argus-sys-net`
|
||
- 解压离线包后执行:
|
||
- `./server-install.sh`(会验证 Swarm 状态、确保 overlay 存在、写入 dns.conf)
|
||
- `./server-selfcheck.sh`(失败会自动触发诊断)
|
||
|
||
## 在节点机(Worker 或非 Docker 主机)
|
||
- Swarm Worker:执行 Manager 的 `docker swarm join ...`;
|
||
- 运行客户端容器:
|
||
- `docker run -d --name argus-metric-node-001 --network argus-sys-net -v /data/argus/agent:/private/argus/agent argus-sys-metric-test-node:latest sleep infinity`
|
||
- 进入容器安装(先 IP 引导,后域名):
|
||
- `curl -u ftpuser:*** -fsSL ftp://<FTP_IP>:21/setup.sh -o /tmp/setup.sh && chmod +x /tmp/setup.sh`
|
||
- `AGENT_ENV=dev AGENT_USER=alice AGENT_INSTANCE=node001 MASTER_ENDPOINT=http://master.argus.com:3000 /tmp/setup.sh --server ftp.argus.com --user ftpuser --password '***' --port 21`
|
||
|
||
## 关键点
|
||
- 首次必须使用 FTP 的 IP 引导(下载 setup.sh 与 dns.conf)
|
||
- MASTER_ENDPOINT 永远使用域名:`http://master.argus.com:3000`
|
||
- docker compose 改为 external overlay;容器内不使用 Docker 服务名;web-proxy 与组件上游统一用域名
|
||
|
||
## 找回/轮换 Swarm 加入令牌与解锁密钥
|
||
|
||
在任意一个 Manager 节点上执行以下命令即可查看或轮换加入令牌(join token):
|
||
|
||
- 查看加入 Worker 的命令:
|
||
- `docker swarm join-token worker`
|
||
- 只打印 Worker 的 token:
|
||
- `docker swarm join-token -q worker`
|
||
- 查看加入 Manager 的命令:
|
||
- `docker swarm join-token manager`
|
||
- 只打印 Manager 的 token:
|
||
- `docker swarm join-token -q manager`
|
||
|
||
在待加入节点执行(示例,替换 Manager_IP):
|
||
- `docker swarm join --token <上面查到的token> <Manager_IP>:2377`
|
||
|
||
轮换 token(怀疑泄露或需要更新时):
|
||
- 轮换 Worker:`docker swarm join-token --rotate worker`
|
||
- 轮换 Manager:`docker swarm join-token --rotate manager`
|
||
|
||
如果你指的是“解锁密钥”(autolock 的 unlock key),在 Manager 上:
|
||
- 查看:`docker swarm unlock-key`
|
||
- 轮换:`docker swarm unlock-key --rotate`
|
||
|
||
提示:当看到 “This node is not a swarm manager.” 时,说明当前节点不是 Manager,需要到 Manager 节点执行,或在现有 Manager 上 `docker node promote <NODE-ID>` 将其提升为 Manager。
|