0부터 시작하는 Docker Swarm 공부 - Docker Swarm Network

Jaehong Lee·2022년 8월 24일
0
post-thumbnail

1. Cluster 에서의 Network

  • network list 를 확인하면, 2 개의 network 가 새로 생성되었다

  • ingress 는 overlay 타입이며, scope 가 swarm 이다

    • swarm 은 Cluster 전체에 하나의 Network 로 동작하는 것으로, Cluster 전체가 하나의 Network 이다
    • 로드 밸런싱과 라우팅 메시에 사용되며, 서비스 내의 컨테이너에 대한 접근을 라운드 로빈 방식으로 분산하는 로드 밸런싱을 담당한다
    • 라우팅 메시란? 사용 가능한 노드의 게시된 포트로 들어오는 모든 요청을 활성 컨테이너로 라우팅 해주는 기술
  • docker_gwbridge 는 bridge 타입이며, scope 가 local 이다

    • 이는 각 Node 에서만 영향을 미치는 Network 이다
    • gwbridge 는 외부로 나가는 통신 및 overlay Network 트래픽의 종단점 역활을 한다
    • docker_gwbridge Network는 Docker Swarm을 Init하거나 Join할 때 자동으로 생성된다
  • Swarm Mode 로 생성된 모든 Service 의 컨테이너가 외부로 노출되기 위해서는 무조건 ingress Network 를 사용해야 하는 것은 아니다. docker run -p 를 사용해 외부에 노출했던 것처럼, 특정 Port 를 사용하도록 설정할 수도 있다

    • 다음은 ingress 를 사용하지 않고, Host 의 8080 Port 를 직접 컨테이너의 80 Port 에 연결하는 방식이다. 이는, gwbridge 와 ingress 가 아닌 host network 를 사용하는 방식이다
docker service create --publish mode=host,target=80,published=8080,protocol=tcp --name web nginx
  • Swarm 환경에서 생성되는 컨테이너들은 기본적으로 docker_gwbridge Network 와 ingress Network 에 연결된다

  • Node 들이 Cluster 환경에서 서로 통신하기 위해서는 Cluster 환경을 구성할 때 사용한 Network 를 사용한다

Swarm Mode 에서 - p 를 통해 Port 연결을 해도, 이는 Host 의 Port 와 직접 매핑된 것이 아닌, ingress 와 gwbridge 를 거쳐서 연결된 것이다

2. Ingress Network 상세 정보

  • Ingress Network 에 대한 정보를 살펴보자
    • overlay driver 는 Cluster 환경에서만 사용 가능하다

  • Peers 는 이 Network 를 사용하는 Node 들에 대한 정보이다

3. docker_gwbridge Network 상세 정보

  • docker_gwbridge 에 대한 상세 정보를 확인하자
  • 연결된 Container 에 대한 정보를 확인 가능하다

4. 사용자 정의 Network

전 Cluster 에 걸쳐 있는 overlay Network 를 생성해보자

docker network create --subnet 192.168.123.0/24 -d overlay myoverlay
  • -d 옵션을 통해 driver 를 지정하고, subnet 을 지정한 myoverlay 라는 Network 를 생성해주자

해당 Network 를 사용하는 Service 배포

docker service create --name ovctn --network myoverlay --replicas 1 --constraint node.role==manager ubuntu:18.04
  • 사용자 지정 Network 에 연결된 Service 를 배포하자
profile
멋진 엔지니어가 될 때까지

0개의 댓글