【CoreOS】이중화 구성 Keepalived+NginxLB+NginxWEB(1)
6372 단어 CoreOSnginxkeepalived프록시
CoreOS에서 Keepalived를 사용한 이중화 + 부하 분산
전회 기사 구성의 coreos01 및 coreos04를 이용하고 있습니다.
【CoreOS】fleet + docker + keepalived(VRRP+VIP만)로 간단 LB
구성
(1) IP 주소 192.168.0.50의 VIP (virtual ip)를 가진 서버에 액세스
(2)Docker-Nginx 80번 포트에 착신
(3) 80번 포트 착신 후 Docker-Nignx-Proxy가 Docker-nginx-web의 coreos01/coreos04의 각 8080 포트로 NAT 전송
Unit 파일(systemd/fleet) 만들기
UNIT 파일 만들기 X-FLEET에는 coreos01/coreos04의 각각의 machine-id를 넣자.
[email protected][Unit]
Description=NginxLB
After=docker.service
Requires=docker.service
ConditionPathExists=/srv/lb/lb.conf
[Service]
EnvironmentFile=/etc/environment
TimeoutStartSec=0
Restart=always
ExecStartPre=/usr/bin/docker pull nginx:1.7.10
ExecStartPre=-/usr/bin/docker kill %p
ExecStartPre=-/usr/bin/docker rm %p
ExecStart=/usr/bin/docker run --rm \
--name %p \
--net host \
-v /srv/lb/lb.conf:/etc/nginx/nginx.conf:ro \
nginx:1.7.10 \
nginx
ExecStop=/usr/bin/docker stop -t 2 %p
[X-Fleet]
MachineID=5b1639bd3cc347cf8fac0b9f597369e3
lb.conf
lb.confserver {
listen 80;
server_name www.example.jp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
location / {
proxy_pass http://backend;
}
}
#ロードバランサ設定
upstream backend {
ip_hash;
server 192.168.0.10:8080 max_fails=3 fail_timeout=30s ;
server 192.168.0.11:8080 max_fails=3 fail_timeout=30s ;
server 127.0.0.1:8080 down;
}
미리 lb.conf를 뿌린다.
os#coreos01
scp lb.conf [email protected]:/home/core/
ssh [email protected]
sudo mkdir -p /srv/lb/
sudo cp -a lb.conf /srv/lb/
#coreos04
scp lb.conf [email protected]:/home/core/
ssh [email protected]
sudo mkdir -p /srv/lb/
sudo cp -a lb.conf /srv/lb/
fleet (systemd)에 Unit를 등록합니다.
fleetctlfleetctl submit nginx-lb@{1,2}
fleetctl load nginx-lb@{1,2}
fleetctl start nginx-lb@{1,2}
fleetctl list-units --full
UNIT MACHINE ACTIVE SUB
[email protected] 5b1639bd3cc347cf8fac0b9f597369e3/192.168.0.10 active running
[email protected] 6d28316711484f039eca4408627fdb0c/192.168.0.11 active running
[email protected] 5b1639bd3cc347cf8fac0b9f597369e3/192.168.0.10 active running
[email protected] 6d28316711484f039eca4408627fdb0c/192.168.0.11 active running
여기까지 설정할 수 있으면, 192.168.0.50에 액세스해 [502 Bad Gateway]의 표시가 nginx로부터 출력된다고 생각합니다.
다음 번에는 백엔드 8080 포트(실제 웹 서비스) 설정으로 이동합니다.
계속
【CoreOS】 이중화 구성 Keepalived+NginxLB+NginxWEB(완료)
마지막 기사 소개:
【CoreOS】fleet + docker + keepalived(VRRP+VIP만)로 간단 LB
【CoreOS】cloud-config 해설~설치
Mac + Virtualbox + CoreOS + etcd2 + fleet 기본 설정 (1)
Mac + Virtualbox + CoreOS + etcd2 + fleet 기본 설정 (2)
Mac + Virtualbox + CoreOS + etcd2 + fleet 기본 설정 (완료)
Reference
이 문제에 관하여(【CoreOS】이중화 구성 Keepalived+NginxLB+NginxWEB(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/xshsaku/items/c3e2fe12d60fc9535b8b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[Unit]
Description=NginxLB
After=docker.service
Requires=docker.service
ConditionPathExists=/srv/lb/lb.conf
[Service]
EnvironmentFile=/etc/environment
TimeoutStartSec=0
Restart=always
ExecStartPre=/usr/bin/docker pull nginx:1.7.10
ExecStartPre=-/usr/bin/docker kill %p
ExecStartPre=-/usr/bin/docker rm %p
ExecStart=/usr/bin/docker run --rm \
--name %p \
--net host \
-v /srv/lb/lb.conf:/etc/nginx/nginx.conf:ro \
nginx:1.7.10 \
nginx
ExecStop=/usr/bin/docker stop -t 2 %p
[X-Fleet]
MachineID=5b1639bd3cc347cf8fac0b9f597369e3
server {
listen 80;
server_name www.example.jp;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
location / {
proxy_pass http://backend;
}
}
#ロードバランサ設定
upstream backend {
ip_hash;
server 192.168.0.10:8080 max_fails=3 fail_timeout=30s ;
server 192.168.0.11:8080 max_fails=3 fail_timeout=30s ;
server 127.0.0.1:8080 down;
}
#coreos01
scp lb.conf [email protected]:/home/core/
ssh [email protected]
sudo mkdir -p /srv/lb/
sudo cp -a lb.conf /srv/lb/
#coreos04
scp lb.conf [email protected]:/home/core/
ssh [email protected]
sudo mkdir -p /srv/lb/
sudo cp -a lb.conf /srv/lb/
fleetctl submit nginx-lb@{1,2}
fleetctl load nginx-lb@{1,2}
fleetctl start nginx-lb@{1,2}
fleetctl list-units --full
UNIT MACHINE ACTIVE SUB
[email protected] 5b1639bd3cc347cf8fac0b9f597369e3/192.168.0.10 active running
[email protected] 6d28316711484f039eca4408627fdb0c/192.168.0.11 active running
[email protected] 5b1639bd3cc347cf8fac0b9f597369e3/192.168.0.10 active running
[email protected] 6d28316711484f039eca4408627fdb0c/192.168.0.11 active running
Reference
이 문제에 관하여(【CoreOS】이중화 구성 Keepalived+NginxLB+NginxWEB(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/xshsaku/items/c3e2fe12d60fc9535b8b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)