Docker Compose 多节点浮动IP测试

概览:

先决步骤

这里我们直接使用traefik/whoami镜像来测试 Docker Compose 多节点 VIP 测试功能;

代码传送门:
Git 代码下载站traefik/whoami

Docker Compose

以下是docker-compose.yml参考文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: "3.9"

services:
server:
image: traefik/whoami
ports:
- "80:80"
networks:
- overlay
deploy:
mode: replicated
replicas: 3
endpoint_mode: vip
restart_policy:
delay: 10s
max_attempts: 3

networks:
overlay:

VIP 测试

启动

1
docker stack deploy -c docker-compose.yml api

测试

1
2
3
4
5
6
7
8
9
10
11
12
13
(base) mardan@labs exec: 84/2952 current: 0 stamp: 21:10:37  status: [ ok ]
ttys034 ~ %⚑ <<< curl -sS http://localhost:80
Hostname: 41c257f78f4c
IP: 127.0.0.1
IP: ::1
IP: 10.0.3.3
IP: 172.18.0.4
IP: 10.0.0.12
RemoteAddr: 10.0.0.2:49892
GET / HTTP/1.1
Host: 127.0.0.1
User-Agent: curl/8.7.1
Accept: */*

多试几次,就可以发现Hostname,会一直变化,这个变化就是因为流量打到了不同的节点的原因。

关闭

1
docker stack rm api