У цій статті ми розгортаємо балансувальник навантаження (Load Balancer). Код нижче виконаний у відповідному порядку, і всі команди виконуються під користувачем root.
Процес для 192.168.1.241, 192.168.1.39
- Встановлення та налаштування haproxy
dnf install -y haproxy-2.4.22-3.el9_3
vi /etc/haproxy/haproxy.cfg #Видаляємо наявні frontend та backend
frontend kube-apiserver
bind *:6442
mode tcp
option tcplog
default_backend kube-apiserver
backend kube-apiserver
mode tcp
option tcplog
option tcp-check
balance roundrobin
default-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100
server kube-apiserver-0 192.168.1.241:6443 check
server kube-apiserver-1 192.168.1.39:6443 check
server kube-apiserver-2 192.168.1.141:6443 check
---
systemctl enable haproxy
systemctl restart haproxy
Процес для 192.168.1.241
- Встановлення та налаштування keepalived
dnf install -y keepalived-2.2.8-3.el9
vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight 2
}
vrrp_instance haproxy-vip {
state BACKUP
priority 100
interface enp1s0
virtual_router_id 60
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 192.168.1.241
unicast_peer {
192.168.1.39
}
virtual_ipaddress {
192.168.1.100/24 <- Віртуальна IP-адреса, має бути IP, який відсутній у мережі
}
track_script {
chk_haproxy
}
}
---
systemctl enable keepalived
systemctl start keepalived
Процес для 192.168.1.39
- Встановлення та налаштування keepalived
dnf install -y keepalived-2.2.8-3.el9
vi /etc/keepalived/keepalived.conf
global_defs {
notification_email {
}
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
weight 2
}
vrrp_instance haproxy-vip {
state BACKUP
priority 100
interface enp2s0
virtual_router_id 60
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
unicast_src_ip 192.168.1.39
unicast_peer {
192.168.1.241
}
virtual_ipaddress {
192.168.1.100/24 <- Настроюємо так само
}
track_script {
chk_haproxy
}
}
---
systemctl enable keepalived
systemctl start keepalived
Процес для 192.168.1.241, 192.168.1.39
- Тестування keepalived
# Має бути виведено на 1.241 або 1.39, на іншому сервері буде показано тільки його IP.
hostname -I
<сервер IP> <віртуальна IP>
Перекладено з: [External Etcd K8s cluster with Systemd - 3](https://medium.com/@Poliphilson/external-etcd-k8s-cluster-with-systemd-3-8cb35d989d22)