HAproxy -> manager 에 배치
label 부착
worker1 -> zone=seoul
worker2 -> zone=seoul
worker3 -> zone=busan
새로운 Network 생성
overlay Network
- name : myovlnet
- subnet : 10.10.123.0/24
HAproxy 는 자신의 80 번 Port 를 Host 의 8001 번 Port 와 연결하고, 해당 연결은 myovlnet 을 통해 zone=seoul 에 배포된 wordpress 로 연결
manager 에는 portainer 연결. 이는 worker3 에만 동작하고, Cluster 환경 외부에 배치된다. 해당 portainer 는 docker0 와 연결되며, myovlnet 과 연결된다
version: '3.7'
services:
wp:
image: wordpress
deploy:
replicas: 2
placement:
constraints: [node.labels.zone == seoul ]
restart_policy:
condition: on-failure
max_attempts: 2
environment:
SERVICE_PORTS: 80
networks:
- myovlnet
proxy:
image: dockercloud/haproxy
depends_on:
- wp
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports: # attach on ingress network 1
- "8001:80"
networks: # attach on wordexpress network 2 - wordpress connect
- myovlnet
deploy:
mode: global
placement:
constraints: [node.role == manager]
networks:
myovlnet:
external: true
docker stack deploy -c evl.yml evl
docker container run -d --restart always -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --network myovlnet --name portainer portainer/portainer