본문 바로가기
컨테이너/도커

04 도커 스웜 네트워크

by ^..^v 2020. 9. 17.
728x90
반응형

#1 매니저 노드에서 네트워크 목록 확인

 

#2 ingress 네트워크

- 스웜 클러스터를 생성하면 자동으로 등록되는 네트워크

- 스웜 모드를 사용할 때만 유효

- 스웜 클러스터에 등록된 모든 노드에 ingress 네트워크가 생성

ingress 네트워크는 어떤 스웜 노드에 접근하더라도 서비스 내의 컨테이너에 접근할 수 있게 설정하는 라우팅 메시를 구성하고, 서비스 내의 컨테이너에 대한 접근을 라운드 로빈 방식으로 분산하는 로드 밸런싱을 담당

 

#2-1 임의로 할당된 16진수를 출력하는 PHP 파일이 들어있는 웹 서버 이미지로 서비스 생성

 

#2-2 생성된 컨테이너 목록 확인 → replicas를 4로 설정했으므로 4개의 컨테이너가 생성

 

#2-3 각 노드 주소로 접근 → 접속하는 노드에 존재하지 않는 컨테이너 이름도 출력되고, 요청을 반복하면 실행 중인 컨테이너가 돌아가면서 응답하는 것을 확인

http://192.168.xxx.100:8000

http://192.168.xxx.101:8000 

http://192.168.xxx.102:8000

 

#2-4 ingress 네트워크를 사용하지 않고 호스트의 8080 포트를 직접 컨테이너의 80 포트로 연결하는 방법

⇒ 어느 호스트에서 컨테이너가 생성될지 알 수 없어 포트 및 서비스 관리가 어렵다는 단점이 있음

⇒ 가급적이면 ingress 네트워크를 사용해 외부로 서비스를 노출하는 것이 좋음

 

#3 오버레이 네트워크

오버레이 네트워크는 여러 개의 도커 데몬을 하나의 네트워크 풀로 만드는 네트워크 가상화 기술의 하나로, 도커에 오버레이 네트워크를 적용하면 여러 도커 데몬에 존재하는 컨테이너가 서로 통신할 수 있음

여러 개의 스웜 노드에 할당된 컨테이너는 오버레이 네트워크의 서브넷에 해당하는 IP 대역을 할당받고 이 IP를 통해 서로 통신

#3-1 스웜 클러스터 내의 컨테이너가 할당받은 IP 주소 확인

→ eth0: ingress 네트워크와 연결된 NIC

→ ingress 네트워크는 오버레이 네트워크 드라이버를 사용

 

#3-2 별도의 포트 포워딩을 설정하지 않아도 컨테이너 간 전송이 가능

 

#4 docker_gwbridge 네트워크

오버레이 네트워크를 사용하지 않는 컨테이너는 기본적으로 존재하는 브리지(bridge) 네트워크를 사용해 외부와 연결

그러나, ingress를 포함한 모든 오버레이 네트워크는 브리지 네트워크와 다른 docker_gwbridge 네트워크와 함께 사용됨

 

docker_gwbridge 네트워크는 외부로 나가는 통신 및 오버레이 네트워크의 트래픽 종단점(VTEP) 역할을 담당

docker_gwbridge 네트워크는 컨테이너 내부의 네트워크 인터페이스 카드 중 ech1과 연결

 

 

#5 사용자 정의 오버레이 네트워크 

#5-1 사용자 정의 오버레이 네트워크 생성

 

#5-2 생성한 오버레이 네트워크 확인

 

#5-3 오버레이 네트워크를 서비스에 적용(--network 옵션 이용)해 컨테이너 생성

 

#5-4 생성된 컨테이너에 할당된 오버레이 네트워크 IP 주소 확인 (eth0)

728x90
반응형

'컨테이너 > 도커' 카테고리의 다른 글

06 스웜 모드 볼륨  (0) 2020.09.17
05 서비스 디스커버리  (0) 2020.09.17
03 서비스 컨테이너에 설정 정보 전달  (0) 2020.09.17
02 스웜 모드의 서비스 장애 복구  (0) 2020.09.17
01 스웜 모드 서비스  (0) 2020.09.17

댓글