여러 호스트를 이용하는 도커가 swarm을 이룰경우 서로 통신을 하려면 네트웍이 필요하다. 이때 각각 다른 호스트에서 생성된 컨테이너 사이에 네트워크를 생성해주는 것이 바로 overlay 네트워크 이다.

 

각각의 호스트에서 쓰고있는 네트워크와 상관없이 컨테이너 끼리의 사설망을 따로 만들어줌.

 

 

Docker Swarm 을 구성해놓은 상태에서 새로

 

overlay 네트워크 생성하고 테스트해보기.

Docker Swarm 을 구성

Docker Swarm은 여러가지 컨테이너 오케스트레이션 툴(가장 대표적인 것이 kubernetes임) 중 하나이다.

Docker Swarm에서 제어하는 단위는 컨테이너가 아닌 "service" 이다. (쿠버네티스의 pod와 같다고 생각하면 됨)

1. Swarm manager 설정

Swarm 클러스터에서 manager 역할을 할 노드를 선정한다. 여기서는 "swarm-manager" 로 선택했다. 아래 init 명령을 swarm-manager에서 수행한다. --advertise-addr은 manager 역할을 하는 IP를 입력한다. 즉 swarm-manager의 IP를 입력한다. 

docker swarm init --advertise-addr 10.10.1.39

To add a worker to this swarm, run the following command:
    docker swarm join --token SWMTKN-1-1e2cs4etdsl1yo7yclq5rdngheo6f3yecy0gc1wnt03fyrt1yd-1taof5n1m6zmbtenuysd5q60a 10.10.1.39:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

결과 중 docker swarm join --token 부분은 연결을 위한 비밀키가 생성된 것이다. 복사하여 각 노드들이 docker swarm 클러스터에 조인하도록 사용한다. 

 docker swarm join --token SWMTKN-1-1e2cs4etdsl1yo7yclq5rdngheo6f3yecy0gc1wnt03fyrt1yd-1taof5n1m6zmbtenuysd5q60a 10.10.1.39:2377
 
 This node joined a swarm as a worker.

 

docker swarm init과 join을 수행하면 docker network 에 ingress와 docker_gwbridge 네트워크가 추가된다.

 

 

 

2. 노드 조인 및 확인

위에서 manager node에서 아래 명령어를 수행하면 도커 스웜 클러스터에 참여한 node를 확인할 수 있다.

docker node ls
ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
q9d7qflcsd1nvoy9291v7vhcz *   swarm-manager     Ready     Active         Leader           20.10.17
mllks5805fyeoake38u6d2nfa     swarm-node-1      Ready     Active                          20.10.17

 

1.network 생성

overlay 네트워크 생성 및 확인

 

$ docker network create --driver=overlay --subnet=192.168.0.0/24 my-overlay

$ docker network ls
NETWORK ID     NAME              DRIVER    SCOPE
c09c209df657   bridge            bridge    local
bf717637be38   docker_gwbridge   bridge    local
156d020c1e52   host              host      local
knzfg8g8u065   ingress           overlay   swarm
fadlzyj565he   my-overlay        overlay   swarm
d3cd7692e4cb   none              null      local

도커 스웜 서비스 생성

$ docker service create --name overlaysvc --network my-overlay --replicas 3 hello-world 

**3.네트워크 테스트** 

master노드에서 ps 실행 및 ip 확인

+ Recent posts