Keepalived 고가 용 서비스 구축
14048 단어 링크 ux 서비스keepalivednginx
탭 (공백 구분): linux 서비스
글 목록
소개
Keepalived 소프트웨어 는 처음에 LVS 부하 균형 소프트웨어 를 위해 설계 되 었 고 LVS 클 러 스 터 시스템 의 각 서비스 노드 의 상 태 를 관리 하고 감시 하 는 데 사용 되 었 으 나 나중에 사용 가능 한 VRRP 기능 을 추가 했다.따라서 Keepalived 는 LVS 소프트웨어 를 관리 할 수 있 을 뿐만 아니 라 다른 서비스 (예 를 들 어 Nginx, Haproxy, MySQL 등) 로 도 사용 가능 한 솔 루 션 소프트웨어 가 될 수 있다.
1.2 3 대 기능
1.4 VRRP 가상 경로 중복 프로 토 콜
( 224.0.0.18)
형식 으로 발송 된다.가상 공유 기 는 VRID (범위 0 - 225) 와 IP 주소 로 구성 되 어 있 으 며, 대외 적 으로 는 잘 알려 진 MAC 주소 로 표 현 됩 니 다: 00 - 00 - 5E - 00 - 01 - {VRID}.그래서 하나의 가상 공유 기 에서 누가 Master 든 대외 적 으로 똑 같은 MAC 과 IP (VIP 라 고 함) 이다.클 라 이언 트 호스트 는 Master 의 변화 로 인해 자신의 경로 설정 을 수정 할 필요 가 없습니다.2 Keepalived 고가 용 서비스 구축
2.1 CentOS 6 * 설치
두 대의 부하 균형 서버 에 한 대 를 위주 로 하고 한 대 를 준비 합 니 다.
! Configuration File for keepalived
global_defs { #
notification_email {
[email protected] # RS
}
notification_email_from [email protected]
smtp_server 127.0.0.1 # IP
smtp_connect_timeout 30
router_id lb01 #id lb01, Keepalived ( )
}
vrrp_instance VI_1 { # VI_1,
state MASTER # MASTER, BACKUP
interface eth1 # / eth1,
virtual_router_id 55 # ID 55,
priority 150 # 150,
advert_int 1 # 1
authentication { #PASS ,
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.88.120/24 dev eth0 label eth0:1
}
}
#VIP 192.168.88.120, 24 , , eth0, eth0:1, , VIP, ,
Keepalived 설정 매개 변수 | MASTER 노드 특수 매개 변수 | BACKUP 노드 특수 매개 변수 – | | routerid (유일한 표식) | routerid lb01|router_id lb 02 state (캐릭터 상태) | state MASTER | state BACKUP priority (경선 우선 순위) | priority 150 | priority 100
3.1 nginx 서비스 지연 방지, VIP 이동 문제 발생 하지 않 음
cat /etc/keepalived/nginx_check.sh
의 내용 은 다음 과 같다. #!/bin/sh
while true
do
if [ `netstat -antup | grep nginx | wc -l` -ne 1 ];then
/etc/init.d/keepalived stop
fi
sleep 5
done
sh nginx_check.sh &
백 스테이지 에서 스 크 립 트 를 실행 합 니 다. 메 인 서버 에 부하 균형 이 실 효 될 때 VIP 를 주동 적 으로 방출 합 니 다.cat /etc/keepalived/nginx_check.sh
에 의 해 실행 권한 chmod +x /etc/keepalived/nginx_check.sh
#!/bin/bash
pidof nginx
if [ $? -ne 0 ];then
/etc/init.d/keepalived stop
fi
2. 서버 에 서 는 keepalived 자 체 를 이용 하여 스 크 립 트 주 체 를 이전 스 크 립 트 로 사용 하지만 while 순환 을 제거 해 야 합 니 다. 이 스 크 립 트 이름 은 keepalived 설정 파일 에 vrrp 검 측 모듈 (vrrp 인 스 턴 스 모듈 전에) 을 추가 합 니 다.
# vrrp , nginx
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2 # 2
weight -20
vrrp , :
vrrp_instance VI_1 {
......
track_script {
chk_nginx
}
}
Nginx 가 정지 되면 Keepalived 서 비 스 는 2 초 안에 자동 으로 정지 되 고 VIP 가 방출 되 며 예비 서버 가 인수 하여 nginx 서비스 가 지연 되 더 라 도 IP 이동 을 실현 합 니 다.
3.2 여러 그룹의 Keepalived 서버 가 한 랜 에서 의 충돌 문 제 를 해결 합 니 다.
같은 랜 내부 에 여러 개의 Keepalived 서버 가 설치 되 어 있 고 전문 적 인 심장 박동 선 통신 을 사용 하지 않 았 을 때 높 은 연결 이 가능 한 심각 한 고장 문제 가 발생 할 수 있 습 니 다.앞서 설명 한 바 와 같이 Keepalived 고가 용 기능 은 VRRP 프로 토 콜 을 통 해 이 루어 집 니 다. VRRP 프로 토 콜 은 기본적으로 IP 멀티캐스트 형식 을 통 해 고가 용 대 간 의 통신 을 실현 합 니 다. 만약 에 같은 랜 에 여러 개의 Keepalived 서버 가 존재 하면 IP 멀티캐스트 주소 충돌 문제 가 발생 하여 연결 이 어 지 럽 습 니 다.각 그룹의 Keepalived 는 기본 224.0.18 을 멀티캐스트 주소 로 사용 합 니 다.이 때 해결 방법 은 같은 그룹의 Keepalived 서버 의 모든 프로필 에 유일한 멀티캐스트 주 소 를 지정 하 는 것 입 니 다. 설정 은 다음 과 같 습 니 다.
global_defs {
router_id LVS_19
vrrp_mcast_group4 224.0.0.19 #
}
3.3 '갈 라 진 뇌' 문 제 를 검사 하 는 스 크 립 트 개발
ip a | grep VIP
방식 으로 걸 러 내 며 VIP 가 존재 하면 다음 단계 #!/bin/bash
lb01_vip=192.168.0.240
lb01_ip=192.168.0.221
while true
do
ping -c 2 -W 3 $lb01_ip &>/dev/null
if [ $? -eq 0 -a `ip a | grep "$lb01_vip" | wc -l` -eq 1 ];then
echo "ha is split brain.warning."
else
echo "ha is OK"
fi
sleep 5
done
4 CentOS 7.5 배포 keepalived
4.1 소스 패키지 다운로드
cd ~ wget http://www.keepalived.org/software/keepalived-1.4.5.tar.gz
4.2 설치 배치
yum install -y gcc openssl-devel popt-devel
tar xf keepalived-1.4.5.tar.gz -C /usr/src/
cd /usr/src/keepalived-1.4.5/
./configure --prefix=/usr/local/keepalived
make && make install
#
cp /usr/src/keepalived-1.4.5/keepalived/etc/init.d/keepalived /etc/init.d/
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/src/keepalived-1.4.5/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# , , nginx
/etc/init.d/keepalived start
systemctl enable keepalived
4.3 프로필
! Configuration File for keepalived
global_defs {
notification_email {
[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lb01
}
# nginx
vrrp_script chk_nginx {
script "/etc/keepalived/nginx_check.sh"
interval 2
weight -20
}
vrrp_instance VI_1 {
state MASTER
interface ens34
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
# nginx
track_script {
chk_nginx
}
virtual_ipaddress {
192.168.200.120/24 dev ens32 label ens32:1
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Keepalived 고가 용 서비스 구축VRRP 공유 기 클 러 스 터 에는 물리 적 VRRP 공유 기 가 여러 대 있다.그 중 하 나 는 Master 가 일 하고 다른 하 나 는 Backup 이다.Master 는 가상 공유 기의 IP 주 소 를 가지 고...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.