티스토리 뷰

KR/CentOS 7

CentOS 7 LVS + Keepalived 설정

식빵TV 2017.01.19 16:34

CentOS 7 LVS + Keepalived 설정


LVS + Keepalived 구성에서 LVS + Keepalived 서버를 이중화합니다. 

여기에서는 다음과 같은 환경을 예로 설정합니다.






 

LVS + Keepalived 서버 eth0, eth1 양쪽에 VIP를 설정하고 eth0 측의 VIP 앞에 온 HTTP 패킷을 Backend01, Backend02의 Web 서버에 NAT 방식으로 부하 분산합니다.

사전에 백엔드 Web 서버의 기본 게이트웨이를 LVS 안쪽 VIP (예를 들어 "10.0.0.29")로 설정해야합니다.






1. ipvsadm 및 keepalived를 설치합니다.


[root@cent7 ~]# yum -y install ipvsadm keepalived


# IP 전송을 활성화하려면

[root@cent7 ~]# echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf 


[root@cent7 ~]# sysctl -p


[root@cent7 ~]# touch /etc/sysconfig/ipvsadm 


[root@cent7 ~]# systemctl start ipvsadm 


[root@cent7 ~]# systemctl enable ipvsadm 





2. Keepalived 설정입니다. 

쌍방의 Keepalived 서버에서 1 개소를 제외하고 다음과 같이 동일한 설정으로 OK입니다. "priority"부분 만 모두 서버에서 중복 된 값이되지 않도록 적당히 값을 변경하십시오.


[root@cent7 ~]# mv /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.org 


[root@cent7 ~]# vi /etc/keepalived/keepalived.conf

# 새로 만들기

global_defs {

    notification_email {

        root@cent7.srv.world

    }

    notification_email_from root@cent7.srv.world

    smtp_server 127.0.0.1

    smtp_connect_timeout 30

    router_id LVS_Server

}

vrrp_instance VI_1 {

    # 모두 백업하는 (우선 순위에서 제어하는)

state BACKUP

    

# 감시하는 인터페이스

    interface eth0

    

# 가상 라우터의 ID

    virtual_router_id 51

    

# 우선 순위 (양쪽 서버에서 값을 변경) 

    # (값이 큰 쪽이 우선 순위가 높아진다)

    priority 100

    

# 우선 순위가 높은쪽으로 복귀하지

    nopreempt

    

# VRRP 전송 간격

    advert_int 1

    

# VRRP를 교환 할 때 인증 정보

    authentication {

        auth_type PASS

        auth_pass password

    }


    virtual_ipaddress {

        # virtual IP address

        192.168.0.29 dev eth0

        10.0.0.29/24 dev eth1

    }

}

virtual_server 192.168.0.29 80 {

    # 모니터링 간격

    delay_loop 3

    

# 부하 분산 방식

    lvs_sched rr

    

# 패킷 전송 방식

    lvs_method NAT

    protocol TCP


    # 백엔드 서버 # 1

    real_server 10.0.0.51 80 {

        weight 1

        HTTP_GET {

            url {

                # 감시 할 URL

                path /

                # 정상적인 경우 상태 코드

                status_code 200

            }

            # 제한 시간 (초)

            connect_timeout 3

        }

    }

    # 백엔드 서버 # 2

    real_server 10.0.0.52 80 {

        weight 1

        HTTP_GET {

            url {

                path /

                status_code 200

            }

            connect_timeout 3

        }

    }

}


[root@cent7 ~]# systemctl start keepalived 

[root@cent7 ~]# systemctl enable keepalived 


※ download & Next Menu



댓글