#1 매니저 노드에서 네트워크 목록 확인
#2 ingress 네트워크
- 스웜 클러스터를 생성하면 자동으로 등록되는 네트워크
- 스웜 모드를 사용할 때만 유효
- 스웜 클러스터에 등록된 모든 노드에 ingress 네트워크가 생성
ingress 네트워크는 어떤 스웜 노드에 접근하더라도 서비스 내의 컨테이너에 접근할 수 있게 설정하는 라우팅 메시를 구성하고, 서비스 내의 컨테이너에 대한 접근을 라운드 로빈 방식으로 분산하는 로드 밸런싱을 담당
#2-1 임의로 할당된 16진수를 출력하는 PHP 파일이 들어있는 웹 서버 이미지로 서비스 생성
#2-2 생성된 컨테이너 목록 확인 → replicas를 4로 설정했으므로 4개의 컨테이너가 생성
#2-3 각 노드 주소로 접근 → 접속하는 노드에 존재하지 않는 컨테이너 이름도 출력되고, 요청을 반복하면 실행 중인 컨테이너가 돌아가면서 응답하는 것을 확인
#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)
'컨테이너 > 도커' 카테고리의 다른 글
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 |
댓글