- multi masters의 단일 진입점인 LoadBalancer(LB) 구성 → 사실상 HA 클러스터 구성
- 192.168.0.100 IP를 사용하는 서버에 Nginx를 이용하여 LB 구성
- Nginx docker 이미지를 이용하여 LB 사용 → docker 컨테이너 운영 관리에 쉬움
1. nginx 구성 파일을 만들어서 master들의 단일 진입점을 구성
# nginx로 Load Balancer할 수 있게 nginx.conf 파일 생성
$ mkdir /etc/nginx
$ cat << END > /etc/nginx/nginx.conf
events {}
stream {
upstream stream_backend {
least_conn;
server 192.168.0.200:6443;
server 192.168.0.201:6443;
server 192.168.0.202:6443;
}
server {
listen 6443;
proxy_pass stream_backend;
proxy_timeout 300s;
proxy_connect_timeout 1s;
}
}
END
2. 도커 컨테이너로 NGINX를 실행하면서 LB를 운영
# nginx 컨테이너 실행
$ docker run --name proxy -v /etc/nginx/nginx.conf:/etc/nginx/nginx.cof:ro --restart=always -p 6443:6443 -d nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
b380bbd43752: Pull complete
fca7e12d1754: Pull complete
745ab57616cb: Pull complete
a4723e260b6f: Pull complete
1c84ebdff681: Pull complete
858292fd2e56: Pull complete
Digest: sha256:644a70516a26004c97d0d85c7fe1d0c3a67ea8ab7ddf4aff193d9f301670cf36
Status: Downloaded newer image for nginx:latest
4324e6beaef0bd05d76af525fa415c4bcdf34fb807e4280e952108bf0a957630
# nginx 컨테이너가 실행 중 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4324e6beaef0 nginx "/docker-entrypoint.…" 54 seconds ago Up 53 seconds 80/tcp, 0.0.0.0:6443->6443/tcp, :::6443->6443/tcp proxy
# 통신이 되는지 확인
$ curl 192.168.0.100:6443