-
Docker : haproxy를 이용한 LoadBalancer공부합시다!/Container 2022. 5. 31. 11:49728x90
안녕하세요!
오늘은 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.2541.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'공부합시다! > Container' 카테고리의 다른 글
Docker : Container Data 공유 - volume (0) 2022.06.02 Docker : Network --link (0) 2022.06.01 Docker : cp 파일 및 디렉토리 복사 (0) 2022.05.27 Docker : Image Tag와 Container Name 변경 (0) 2022.05.26 Docker : Image Download부터 Container 삭제까지 (0) 2022.05.24