■ Host Type Docker Network 설정
■이미 기본 host network이 있기때문에 더이상의 생성은 불가함, 따라서 기존 호스트를 사용해 네트워크 생성!
■Container가 NAT를 이용하지 않고 외부와 통신할 수 있는데, 컨테이너를 몇개를 만들든 하나의 host network로 여러 container가 각각 사용 가능하다
> Docker는 자신만의 MAC이나 IP를 가지고 있지 않기때문에 일반적으로는 이 방법을 사용하지 않음
■ Network 또한 host와 같이 none network도 하나만 생성가능
> Null type의 none network는 mac add나 ip가 없어 외부와 통신이 불가능함이 원칙
■ Volume Container
Linux container에 directory를 mount하면 다른 linux container에 directory를 공유하는 방식
> network는 Container:test1의 같이 쓰겠다! 아래의 사진과 같이 test1,2 Container의 IP와 Mac addr가 같은것 확인
> 같은 서버를 올렸을때 부하 분산을 희망하는 경우에 이런 구조로 생성한다
* 근데 희망하는대로 되지 않음, 동일한 IP를 가지고 있기때문에 들어오는 Traffic에 대해 Guide가 없어 random하게 들어오기때문에 실제로 부하가 분산되거나 하는 일은 흔치 않은 경우임.
>> solution : L4장비를 써서 load-balancing을 해줘야 한다. 그래야 Traffic분산(부하분산)이 실현 가능함
>> L4장비가 없을 경우 Container에도 Load-balancing을 지원하는 기능이 아래 두가지가 있다
① Bridge network + ② --net-alias
■ Docker DNS Service > container-name(nginx1~3) : Alias(nginx) >> Round Robin적용
nginx 라고 하는 host를 만든 후 각각 name: nginx-1 ~ 3까지의 container를 만든다!
#docker run -i -t -d --name nginx-1 --net my_bridge --net-alias nginx ubuntu
#docker run -i -t -d --name nginx-2 --net my_bridge --net-alias nginx ubuntu
#docker run -i -t -d --name nginx-3 --net my_bridge --net-alias nginx ubuntu
각 3개의 Container 생성 + clinet container 생성
#docker run -i -t -d --name client --net my_bridge ubuntu
>> 각각 apt update / apt install net-tools / apt install iputils-ping / apt install curl 설치
client container에 접속 후 각각 nginx1~3 까지 트래픽 분산 확인한다 .
Load-balance 를 하는 기본적인 방법은 서버들을 하나처럼 만들면 됨.
* 우리가 해볼것은 로드밸런서 없이 Container를 이용해 실현해보는것!
■ Mac VLAN Network
172.20.14.0/24 Network 다섯명 분할
내 할당 범위는 172.20.14.112/28 !
> 로컬에서 생성 container로 ping test
> nginx 설치 후 바로 웹서비스 이용 가능 확인
>> * Router없이 Network 확장 가능한 VxLAN, Open-vSwitch(표준가상스위치 분산가상스위치와 같은 오픈소스기반), NSX연동 가능하다!
'가상화(VMware) > Doker&Container' 카테고리의 다른 글
Kubernetes (0) | 2022.08.18 |
---|---|
Docker/Container (0) | 2022.08.17 |
Docker/Container (0) | 2022.08.16 |