• 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

+ Recent posts