Keepalived + Lvs + Nginx 고가 용 클 러 스 터 부하 구축

14574 단어 NginxKeepalivedLVS
목차
  • Keepalived + Lvs + Nginx 고가 용 집단 부하 구축
  • 1. LVS - DR 모드 구축 - ipvsadm 설정
  • 1.1. 전기 준비
  • 1.2. 하위 인터페이스 만 들 기
  • 1.3. 서브 인터페이스 설정 을 수정 하고 다음 과 같이 설정 합 니 다.
  • 1.4. 인터넷 서 비 스 를 다시 시작 하거나 Liux
  • 를 다시 시작 합 니 다.
  • 1.5, ipvsadm 설치
  • 2. LVS - DR 모드 구축 - RS 2 대 에 가상 ip 설정
  • 2.1 가상 네트워크 서브 인터페이스 설정
  • 2.2. 네트워크 를 새로 고침 한 다음 에 가상 ip
  • 을 봅 니 다.
  • 3. LVS - DR 모드 구축 - RS 2 대 에 arp 설정
  • ARP 응답 등급 과 통지 행위 의 개념
  • 3.1, ARP 설정
  • 3.1.1, sysctl. conf 열기
  • 3.1.2 모든 네트워크 카드, 기본 네트워크 카드 와 가상 네트워크 카드 의 arp 응답 등급 과 알림 행 위 를 설정 하고 각각 'all, default, lo'
  • 에 대응 합 니 다.
  • 3.1.3, 프로필 새로 고침
  • 3.1.4. 게 이 트 웨 이 를 추가 하여 데이터 메 시 지 를 받 는 데 사용 하고 본 컴퓨터 에 요청 한 후에 lo 를 제출 하여 처리 할 것 이다
  • .
  • 3.1.5. 서버 재 부팅 후 효력 을 잃 지 않도록 다음 과 같이 처리 합 니 다
  • 4. LVS - DR 모드 구축 - ipv sadm 클 러 스 터 설정 규칙
  • 4.1, LVS 노드 를 만 들 고 사용자 가 방문 하 는 클 러 스 터 스케줄 러
  • 4.2, RS 리 얼 서버 2 대 만 들 기
  • 4.3. 규칙 라 이브 러 리 에 저장 하지 않 으 면 다시 시작 할 수 없습니다
  • 4.4. 클 러 스 터 검사
  • 4.5, 기타 명령
  • 4.6. 더 자세 한 도움말 문서
  • 5. Keepalived + Lvs + Nginx 고가 용 집단 부하 균형 구축
  • 준비 작업
  • 5.1, 첫 번 째 메 인 Lvs 서버 설정
  • 5.2, 두 번 째 Lvs 서버 설정
  • 5.3, 주종 을 시작 하 는 Keepalived
  • 5.4, Lvs 상황 보기
  • Keepalived + Lvs + Nginx 고가 용 클 러 스 터 부하 구축
    1. LVS - DR 모드 구축 - ipvsadm 설정
    1.1 초기 준비
  • 모든 컴퓨터 노드 가 네트워크 설정 관리 자 를 닫 습 니 다. 네트워크 인터페이스 와 충돌 할 수 있 기 때 문 입 니 다
    systemctl stop NetworkManager
    systemctl disable NetworkManager
    
  • 1.2, 하위 인터페이스 만 들 기
    #       
    cd /etc/sysconfig/network-script/
    
    #         
    cp ifcfg-ens33 ifcfg-ens33:1
    

    ifcfg - ens 33: 1 숫자 1 은 별명 으로 임의로 이름 을 지 을 수 있 습 니 다.
    1.3. 하위 인터페이스 설정 을 수정 합 니 다. 설정 은 다음 과 같 습 니 다.
    vim ifcfg-ens33:1
    
    DEVICE="ens33:1"
    ONBOOT="yes"
    IPADDR=192.168.64.120
    NETMASK=255.255.255.0
    BOOTPROTO="static"
    

    192.168.64.120 은 가상 ip 로 외부 네트워크 사용자 에 게 방문 할 수 있 는 ip 주소 이 고 이 치 는 nginx-keepalived 의 가상 ip 과 같다.
    1.4. 네트워크 서 비 스 를 다시 시작 하거나 Liux 를 다시 시작 합 니 다.
    service network restart
    

    ip addr 는 자신 이 만 든 가상 ip 을 볼 수 있 습 니 다.
    1.5, 설치 ipvsadm
    yum install ipvsadm
    
    #     
    ipvsadm -Ln
    

    2. LVS - DR 모드 구축 - RS 2 대 에 가상 ip 설정
    2.1 가상 네트워크 서브 인터페이스 설정
    #       
    cd /etc/sysconfig/network-scripts/
    
    #         
    cp ifcfg-lo ifcfg-lo:1
    
    #     
    vim ifcfg-lo:1
    
    #       
    DEVICE=lo:1
    IPADDR=192.168.64.150
    NETMASK=255.255.255.255
    ... (      )
    

    2.2 네트워크 새로 고침 후 가상 ip 보기
    service network restart
    
    ip addr
    

    다른 서버 처럼 설정
    3. LVS - DR 모드 구축 - RS 2 대 에 arp 설정
    ARP 응답 단계 와 알림 행위 의 개념
    1. arp - ignore: arp 해당 단계 (처리 요청)
  • 0: 이 컴퓨터 에 ip 만 설정 하면 요청 에 응답 할 수 있 습 니 다
  • 1: 요청 한 대상 주소 가 대응 하 는 네트워크 인터페이스 에 도달 해 야 요청 에 응답 할 수 있 습 니 다
  • 2. arp - announce: arp 알림 행위 (응답 되 돌려 주기)
  • 0: 본 컴퓨터 의 모든 네트워크 인 터 페 이 스 는 외부 로 통 보 됩 니 다. 모든 네트워크 카드 는 통 보 를 받 을 수 있 습 니 다
  • 1: 본 네트워크 카드 가 일치 하지 않 는 목표 와 통고 하 는 것 을 최대한 피한다
  • 2: 본 네트워크 카드 에 만 공지
  • 3.1 ARP 설정
    3.1.1 sysctl. conf 열기
    vim /etc/sysctl.conf
    

    3.1.2 모든 네트워크 카드, 기본 네트워크 카드 와 가상 네트워크 카드 의 arp 응답 등급 과 알림 행 위 를 설정 하고 각각 대응 합 니 다. all、default、lo
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.default.arp_ignore = 1
    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    net.ipv4.conf.default.arp_announce = 2
    net.ipv4.conf.lo.arp_announce = 2
    

    3.1.3 설정 파일 새로 고침
    sysctl -p
    

    3.1.4 게 이 트 웨 이 를 추가 하여 데이터 메 시 지 를 받 는 데 사용 하고 본 컴퓨터 에 요청 한 후에 lo 에 게 처리 할 것 입 니 다.
    route add -host 192.168.64.120 dev lo:1
    
    #     
    route -n
    

    3.1.5 서버 재 부팅 후 효력 을 잃 지 않도록 다음 과 같이 처리 합 니 다.
    echo "route add -host 192.168.64.120 dev lo:1" >> /etc/rc.local
    
    #     /etc/rc.local           
    

    4. LVS - DR 모드 구축 - ipv sadm 클 러 스 터 규칙 설정
    4.1 LVS 노드 를 만 들 고 사용자 가 방문 하 는 클 러 스 터 스케줄 러
    ipvsadm -A -t 192.168.64.120:80 -s rr
    

    제시 하 다.
  • - A: 클 러 스 터 증가
  • - t: tcp 프로 토 콜 ip 주소: 클 러 스 터 의 방문 ip 설정, 즉 LVS 의 가상 ip
  • - s: 부하 균형 을 설정 하 는 알고리즘, rr 표시 폴 링
  • - p: 연결 지속 시간 설정
  • 4.2 RS 리 얼 서버 2 대 생 성
    ipvsadm -a -t 192.168.64.120:80 -r 192.168.64.131:80 -g
    ipvsadm -a -t 192.168.64.120:80 -r 192.168.64.131:80 -g
    

    제시 하 다.
  • - a: 실제 서버 추가
  • - t: tcp 프로 토 콜
  • - r: 실제 서버 의 ip 주소
  • - g: DR 모드 설정
  • 4.3. 규칙 라 이브 러 리 에 저장 하지 않 으 면 다시 시작 할 수 없습니다.
    ipvsadm -S
    

    4.4. 클 러 스 터 검사
  • 클 러 스 터 목록 보기
    ipvsadm -Ln
    
  • 클 러 스 터 상태 보기
    ipvsadm -Ln --stats
    
  • 4.5, 기타 명령
  • ipvsadm 재 부팅, 재 부팅 후 재 설정
    service ipvsadm restart
    
  • 지구 화 연결 보기
    ipvsadm -Ln --persistent --conn
    
  • 연결 요청 만 료 시간 및 요청 소스 ip 와 대상 ip
    ipvsadm -Lnc
    
  • 보기
  • tcp tcpfin udp 의 만 료 시간 설정 (일반 기본 값 유지)
    ipvsadm --set 1 1 1 
    
  • 만 료 시간 보기
    ipvsadm -Ln --timeout
    
  • 4.6 더 자세 한 도움말 문서
    ipvsadm -h
    man ipvsadm
    

    5. Keepalived + Lvs + Nginx 높 은 사용 가능 한 클 러 스 터 부하 균형 구축
    준비 작업
  • 1. nginx 서버 두 대 준비: Mater 한 대, 다른 Backup
  • 2. Lvs 서버 두 대 준비: 마스터 한 대, 다른 백업
  • 5.1 、 첫 번 째 메 인 Lvs 서버 설정
  • Keepalived 설정
  • global_defs {
       #   id:    keepalived        ,       
       router_id LVS_192.168.64.133
    }
    
    
    #      
    vrrp_instance VI_1 {
        #      ,   192.168.64.133 nginx    
        #    :MASTER,   :BACKUP
        state MASTER
        #          
        interface ens33
        #         
        virtual_router_id 55
        #    /  ,      , MASTER    ,    MASTER
        priority 100
        #              ,  1s
        advert_int 1
        #        ,         
        authentication {
            auth_type PASS
            auth_pass 1111
        }
    
        virtual_ipaddress {
            192.168.64.120
        }
    }
    
    #          IP+  ,   nginx    ,  80
    virtual_server 192.168.64.120 80 {
            #        ,  : 
            delay_loop 6
            #          ,     
            lb_algo rr
            #   LVS    NAT|TUN|DR
            lb_kind DR
            #           
            persistence_timeout 10
            #    -t
            protocol TCP
    
            #           ,   nginx        ip  
            real_server 192.168.64.131 80 {
                    #             1
                    weight 1
                    #       
                    TCP_CHECK {
                        #    80  
                        connect_port 80
                        #      2s
                        connect_timeout 2
                        #      2 
                        nb_get_retry 2
                        #      3s
                        delay_before_retry 3
                    }
    
            }
    
            real_server 192.168.64.132 80 {
                    #             1
                    weight 1
                    #       
                    TCP_CHECK {
                        #    80  
                        connect_port 80
                        #      2s
                        connect_timeout 2
                        #      2 
                        nb_get_retry 2
                        #      3s
                        delay_before_retry 3
                    }
            }
    }
    
    

    5.2, 두 번 째 Lvs 서버 설정
  • Keepalived 설정
  • global_defs {
       #   id:    keepalived        ,       
       router_id LVS_192.168.64.134
    }
    
    
    #      
    vrrp_instance VI_1 {
        #      ,   192.168.64.134 nginx    
        #    :MASTER,   :BACKUP
        state BACKUP
        #          
        interface ens33
        #         
        virtual_router_id 55
        #    /  ,      , MASTER    ,    MASTER
        priority 50
        #              ,  1s
        advert_int 1
        #        ,         
        authentication {
            auth_type PASS
            auth_pass 1111
        }
    
    
        virtual_ipaddress {
            192.168.64.120
        }
    }
    
    #          IP+  ,   nginx    ,  80
    virtual_server  192.168.64.120 80 {
            #        ,  : 
            delay_loop 6
            #          ,     
            lb_algo rr
            #   LVS    NAT|TUN|DR
            lb_kind DR
            #           
            persistence_timeout 10
            #    -t
            protocol TCP
    
            #           ,   nginx        ip  
            real_server 192.168.64.131 80 {
                    #             1
                    weight 1
                    #       
                    TCP_CHECK {
                        #    80  
                        connect_port 80
                        #      2s
                        connect_timeout 2
                        #      2 
                        nb_get_retry 2
                        #      3s
                        delay_before_retry 3
                    }
    
            }
    
            real_server 192.168.64.132 80 {
                    #             1
                    weight 1
                    #       
                    TCP_CHECK {
                        #    80  
                        connect_port 80
                        #      2s
                        connect_timeout 2
                        #      2 
                        nb_get_retry 2
                        #      3s
                        delay_before_retry 3
                    }
            }
    }
    
    

    5.3 주종 을 시작 하 는 Keepalived
    #        
    cd /usr/local/keepalived/sbin
    
    #   keepalived
    ./keepalived
    

    5.4, Lvs 상황 보기
    #        (      )
    ipvsadm -C
    
    #       
    ipvsadm -Ln
    
    #       
    ipvsadm -Lnc
    
    #     
    ipvsadm -Ln --stats
    

    좋은 웹페이지 즐겨찾기