hapoxy keepalived

haproxy

Перенаправление трафика и балансировщик нагрузки

  • Данный конфиг принимает запросы htpps и перенаправляет их на сервера http
  • После чего он делает из http https и отправляет клиенту
global
        maxconn         20000
 
frontend http           # правила входящего трафика
        
        # такой порт не должен использоваться на сервере  
        # должен быть pem формат
        bind            *:443 ssl crt /ca/ha.pem
 
		 
        mode http               # мод, так-как это https то тут мод http
        default_backend https   # куда сувать трафик
        
backend https   # правила перенаправления
        balance roundrobin                   # означает последовательную нагрузку                                                 сначала 1, потом 2 и 3. и т.д 
        mode http                            # мод как у входящего трафика
        server DevOps 192.168.40.10:80 check # сервер check означает проверку того                                                что сервер включен
        server Dev-1 192.168.40.1:80 check
        server Dev-2 192.168.40.2:80 check
        
        # server name ip:port check

keepalived

Как HSRP на cisco

Это шаблон для ansible он:

  • Берет имя сервера и делает из него router_id
  • Берет интерфейс и задает его как Interface
  • Задает ему приоритет согласно инвентарю ansible
# ФАЙЛ должен быть /etc/keepalived/keepalived.conf
 
global_defs {
        router_id {{hostname}} # имя
}
 
vrrp_track_process haproxy {
	process haproxy # если haproxy будет работать, то и keepalived включиться
}
vrrp_instance {{hostname}} {
    state MASTER          # у всех будет одинаковое
    interface {{ens}}     # указываем интерфейс
    virtual_router_id 100 # имя вирутального роутера
    priority {{priority}} # приоритет
    authentication {      # аутенфикация между собой
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {   # ip вируального роутера
        192.168.40.3/24
    }
    
    track_process { # следить за этой vrrp_track_proccess haproxy
	    haproxy
    }
}
 
 
# Если нужно поставить ip6 
# в одном vrrp_instance нельзя сразу ip4 и ip6
vrrp_instance {{hostname}}_ip6 { # чуть меняем имя
    state MASTER          
    interface {{ens}}    
    virtual_router_id 100 
    priority {{priority}} 
    authentication {      
        auth_type PASS
        auth_pass 123456
    }
    virtual_ipaddress {   # ip6 вируального роутера
        2001:db8:1001:10:10/24
    }
    
    track_process { 
	    haproxy
    }
}