docker network == linux bridge
리눅스의 네트워크 브릿지를 사용한다.
CNM 안의 libnetwork를 관리한다.
docker network ls
docker network inspect bridge
veth : virtual ethernet device
브릿지와 컨테이너의 네트워크의 한 쌍이다.
sudo apt install bridge-utils
brctl show
network driver 종류
host : 호스트의 네트워크를 사용. 컨테이너의 ip가 없다.
none : 네트워크 연결 안함
bridge : 기본값. 다른 도커서버와 클러스터링 등에 사용
mac : 맥주소만 생성한다.
사용자 정의 네트워크 : docker create [name]
예시 : https://docs.docker.com/engine/reference/commandline/network_create/
사용자 정의 네트워크 생성 오류
오류 : Error response from daemon: Failed to Setup IP tables: Unable to enable SKIP DNAT rule:
해소 : sudo systemctl restart docker
docker network connect | disconnet : 네트워크간 통신은 안된다.(당연.) 3-tier 계층 통신을 위해 각각의 컨테이너에 통신이 필요한 네트워크를 연결해서 사용한다.
ping test
docker exec -t [container] bash && ping -c 2 [다른 컨테이너]
docker network rm [name]
docker DNS
컨테이너의 DNS의 기본값은 도커 호스트이다.
그래서 컨테이너의 hostname으로 통신이 가능해진다.
사용자 지정 - 타겟 그룹(--net-alias 확인 가능) -> docker proxy(load balancing)
동일 타겟 그룹에 동일 서비스 컨테이너를 올려서 라운드로빈 부하분산 가능해진다.
컨테이너 Proxy(load balancing)
proxy server := 통신을 대신 해주는 서버
proxy 장점 : LB, caching static file(빠른 응답), 사내망에서 특정 사이트 접근 차단, 무중단 배포, SSL 암호화 적용
forward proxy : client의 정보가 server에게 노출되지 않는다.
reverse proxy : server의 정보가 client에게 노출되지 않는다.
Nginx proxy server
Reverse Proxy 로 사용할 수 있다.
Kubernetes ingress controller로 nginx ingress controller 선택 가능
API 트래픽 처리를 고급 HTTP 처리 기능으로 사용 가능한 'API Gateway' 구성 가능
MSA 트래픽 처리를 위한 MicroGateway 사용 가능
설정 파일 : nginx.conf
Host Nginx reverse : docker host 서버에 설치하여 사용
proxy_pass / upstream
Container Nginx reverse
host nginx 방법과 동일
가중치 설정 가능. weight.
HAproxy
주요기능 : ssl, lb, active health check, keepAlived(proxy 이중화)
HAproxy : L4(OSI 7)
특징 : IP, Port 기반 트래픽 전달
LB : 트래픽 전달.(round lobin)
HAproxy : L7(OSI 7)
특징 : HTTP 기반 URI 기반 트래픽 전달
동일한 도메인의 하위에 존재하는 여러 웹 애플리케이션 서버 사용 가능
0. network create & 서비스 컨테이너 생성
1. HAproxy.cnf 설정파일(도커 호스트에서 파일생성)
2. HAproxy.cnf 설정파일을 haproxy-container 로 올린다.
'Infra > IaC' 카테고리의 다른 글
[Docker] Dockerfile 경량화 (0) | 2023.10.26 |
---|---|
[Docker] docker volume 데이터 지속성 및 데이터 관리 (1) | 2023.10.26 |
[Docker] 리소스 모니터링과 자원 할당 관리 (0) | 2023.10.24 |
[Docker] 컨테이너 운용에 필요한 CLI (0) | 2023.10.17 |
[Docker] docker image 관리 (0) | 2023.10.15 |