ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker : haproxy를 이용한 LoadBalancer
    공부합시다!/Container 2022. 5. 31. 11:49
    728x90

    안녕하세요!

    오늘은 haproxy를 이용해서 Web Server로 동작하는 Container를 LoadBalancer로 서비스 해보겠습니다.

     

    모든 과정은 스크립트로 진행합니다.

     

    1. 문제

     1.1. Docker 설치

      1.1.1. 모든 작업을 스크립트로 처리합니다.
      1.1.2. Docker 설치 및 실행

     1.2. Image Download
      1.1.2. httpd 및 nginx, centos:9, alpine 이미지 다운로드
     1.3. Bridge Network 생성  

      1.3.1. bridge network 생성
      1.3.2. 이름 : N1, Subnet 192.168.11.0/24  Gateway 192.168.11.254
      1.3.3. 이름 : N2, Sbunet 192.168.12.0/24  Gateway 192.168.12.254

     1.4. User_Data 만들기

       1.4.1. index.html 과 index1.html 만들기
        1.4.1.1. index.html 생성,    Container-WEBSERVER-1과 Ncloud Image 출력
        1.4.1.2. index1.html 생성,  Container-WEBSERVER-1과 Ncloud Image 출력

      1.5. Container 생성
       1.5.1. 네트워크 N1에 http 웹사이트 생성, 컨테이너 이름은 h1, 출력내용은 index.html
       1.5.2. 네트워크 N2에 ngixn 웹사이트 생성, 컨테이어 이름은 n1, 출력 내용은 index1.html
      1.6. haproxy 설치
       1.6.1. Host PC의 80port로 서비스
       1.6.2. 페이지 새로고침 시  컨테이너 h1과 컨테이너 n1의 내용이 교체 출력 되어야 합니다.

    2.. 완벽하게 삭제하는 스크립트도 작성하세요!

     

    3. 스크립트

     3.1 docker.sh

    #! /bin/bash
    yum install -y yum-utils
    yum install -y docker-ce docker-ce-cli containerd.io
    systemctl start docker
    docker pull httpd
    docker pull nginx
    docker pull alpine
    docker pull centos:7
    docker network create --subnet 192.168.11.0/24 --gateway 192.168.11.254 N1
    docker network create --subnet 192.168.12.0/24 --gateway 192.168.12.254 N2
    cat > index.html << EOF
    <html>
    <body>
    <h1>Container-WEBSERVER-1</h1>
    </body>
    </html>
    EOF
    cat > index1.html << EOF
    <html>
    <body>
    <h1>Container-WEBSERVER-2</h1>
    </body>
    </html>
    EOF
    docker run -itd --net N1 --name h1 httpd
    docker cp index.html h1:/usr/local/apache2/htdocs/index.html
    docker run -itd --net N2 --name h2 httpd
    docker cp index1.html h2:/usr/local/apache2/htdocs/index.html
    curl 192.168.11.1
    curl 192.168.12.1
    yum install -y haproxy
    sed -i 's/5000/80/g' /etc/haproxy/haproxy.cfg
    sed -i 's/127.0.0.1:5001/192.168.11.1:80/g' /etc/haproxy/haproxy.cfg
    sed -i 's/127.0.0.1:5002/192.168.12.1:80/g' /etc/haproxy/haproxy.cfg
    systemctl restart haproxy
    firewall-cmd --add-port=80/tcp
    728x90
Designed by Tistory.