Keepalived Nedir?

Yük dengeleme, IP trafiğini gerçek bir kümeye dağıtma yöntemidir bir veya daha fazla yüksek düzeyde kullanılabilir sanal hizmet sağlayan sunucular. Ne zaman yük dengeli topolojiler tasarlamak yük dengeleyicinin kendisinin yanı sıra arkasındaki gerçek sunucuların kullanılabilirliği o.
Keepalived, hem yük dengeleme hem de yüksek kullanılabilirlik için çerçeveler sağlar. Yük dengeleme çerçevesi iyi bilinen ve yaygın olarak kullanılan Linux'a dayanır Sanal Sunucu ( IPVS ) çekirdek modülü, Katman 4 yük dengelemesi sağlar. Keepalived, dinamik ve uyarlanabilir bir dizi sağlık denetleyicisi uygular yük dengeli sunucu havuzlarını sağlıklarına göre korumak ve yönetmek. Sanal Yedeklilik Yönlendirme Protokolü ile yüksek kullanılabilirlik elde edilir ( VRRP ). VRRP, yönlendirici yük devretmesi için temel bir tuğladır. Ayrıca, kalıcı VRRP sonlu durum makinesine bir dizi kanca uygular düşük seviyeli ve yüksek hızlı protokol etkileşimleri sağlar.
Daha fazla bilgi için bakınız:
https://keepalived.readthedocs.io/en/latest/introduction.html
Tasarım
Ortamımdaki sunucular ise aşağıdaki gibidir.
Keepalived : 10.106.250.48
Keepalived : 10.106.250.49
Keepalived Virtual IP Add : 10.106.250.47 (Boş bir ip)
Örnek-1: Ortamda 48 ve 49 ip'li ntp sunucuların olduğunu varsayalım. Bu ntp sunucularını yedekli yapmak istiyorsunuz. Bildiğiniz gibi birde fazla ntp sunucusunu istemcilere girebiliyorsunuz. Ancak bazı uygulamalarda, birden fazla ntp sunucusu giremiyorsunuz. Böyle bir yapıda, 2 adet sunucu üzerine ntp sunucusu kurup yapılandırdıktan sonra, keepalived kurulumu yapıp tek ip üzerinden yedeklilik sağlayabilirsiniz. Buna ek olarak, dns vb. sunucularda aynı işlemleri gerçekleştirebilirsiniz.
Keepalived en çok HA Proxy ve Nginx ile kullanılmaktadır.
Örnek-2: Ortamda 10.106.250.111-112-113 olmak üzere web sunucuların olduğunu varsayalım. 48 ve 49 adresleri üzerinde Keepalive servisimiz çalışıyor. Bu servisler 111,112,113 adresine bağlı ve Requestlerin tümü bu adrese giderek 47 ipsine yönlendiriliyor. 48 veya 49 ip’lerine sahip sunuculardan biri kapansa bile aktif ve pasif şeklinde çalıştığı için servisimiz kesintiye uğramadan devam edecek şekilde ayarlanacaktır. Böyle bir yapıda HA Proxy, Nginx, Kemp veya F5 gibi servisler kullanmanız gerekmektedir.
Örnek-3: Ortamda Docker Swarm veya Kubernetes olmak üzere 5 node olduğunu düşünün. Bu sunucuları yedeklilik ve yük dengeleme sağlamak için, mecburen load balancer veya Keepalived ve HA Proxy gibi servisler kullanmanız gerekmektedir.
Bu yapıda sadece keepalived servisi kurulumu ve tek sanal ip yapılması gösterilmektedir.
Keepalived Install
Dağıtımın depolarından kalıcı olarak yüklenebilir veya alternatif olarak, kaynaktan derleyebilir. Depolardan kurulum genellikle bir sistemde çalışmaya devam etmenin en hızlı yolu depolarda mevcut olan kalıcı genellikle birkaç sürümdür. Mevcut en son kararlı sürümdür.
Red Hat Enterprise Linux'a kurulum
Red Hat 6.4'ten itibaren Red Hat ve klonlar, kalıcı paketi içeriyordu temel depoda. Bu nedenle, kalanıcıyı yüklemek için aşağıdakileri çalıştırın paket ve YUM kullanarak gerekli tüm bağımlılıklar:
sudo yum install keepalived
Debian'a Yükleme
Kalıcı paketi ve gerekli tüm paketi yüklemek için aşağıdakileri çalıştırın Debian’ın APT paket işleme yardımcı programını kullanan bağımlılıklar:
sudo apt-get install keepalived
En temel Keepalived yapılandırma, iki sunucu arasında paylaşılan bir IP adresi sağlar. Yukarıdaki topolojide, sunucu1 ana, sunucu2 yedeklemedir. Her iki sunucu için yapılandırma basittir.
Dosya üzerinde, ethernet, parola ve virtual ip kısmını kendi yapınıza göre değişitirin.
Sunucu 1 yapılandırması: (master)
Editör ile konfigürasyon dosyasını açalım.
sudo vi /etc/keepalived/keepalived.conf
Aşağıdaki ayarları (interface, virtual_ipaddress) kendi yapımıza göre düzenleyin.
vrrp_instance VI_1 {
state MASTER
interface ens160
virtual_router_id 51
priority 255
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
10.106.250.47/24
}
}
Kayıt edip çıkın.
:wq!

Yapılandırma yönergeleri adlandırma kurallarından açıkça anlaşılmalıdır.
- vrrp_instance Bireysel bir örneği tanımlar VRRP bir arayüzde çalışan protokol. Bu örneği VI_1 olarak keyfi olarak adlandırdım.
- state Örneğin başlaması gereken başlangıç durumunu tanımlar.
- interface Arayüzü tanımlar VRRP devam eder.
- virtual_router_id Bu serinin ilk makalesinde öğrendiğiniz benzersiz tanımlayıcıdır.
- priority Bu serinin ilk makalesinde öğrendiğiniz reklamı yapılan önceliktir. Bir sonraki makalede öğreneceğiniz gibi, öncelikler çalışma zamanında ayarlanabilir.
- advert_int Reklamların ( 1 saniyede, bu durumda ) 'de gönderilme sıklığını belirtir.
- authentication Katılan sunucular için gerekli bilgileri belirtir VRRP birbirleriyle kimlik doğrulaması yapmak. Bu durumda, basit bir şifre tanımlanır.
- virtual_ipaddress IP adreslerini tanımlar ( birden fazla ) olabilir VRRP sorumludur.
Sunucu 2 yapılandırması: (Backup)
Editör ile konfigürasyon dosyasını açalım. ve aşağıdaki ayarları girelim.
sudo vi /etc/keepalived/keepalived.conf
Aşağıdaki ayarları girelim.
vrrp_instance VI_1 {
state BACKUP
interface ens160
virtual_router_id 51
priority 254
advert_int 1
authentication {
auth_type PASS
auth_pass 12345
}
virtual_ipaddress {
10.106.250.47/24
}
}
Kayıt edip çıkın.
:wq!

Servisi yeniden başlatıp durumlarını kontrol edelim.
sudo systemctl restart keepalived
sudo systemctl status keepalived

Aşağıdaki kod ile, ağ arayüzüne ve ip bilgilerine erişilebilir
ip -brief address show

Şimdi sanal ip üzerinden bir ping işlemi başlatın ve sunucuları sırasıyla kapatın. İşlem sonunda sunuculara istek gitmeye devam ettiğini görebilirsiniz.
