Yüksek performanslı yük dengeleme (load balancing) ve trafiği optimize etmek için kullanılan açık kaynaklı bir araç olan HAProxy, hem basit hem de karmaşık altyapılar için ideal bir çözümdür. Yeni sürüm HAProxy 3.0, güçlü özellikleri ve DataplaneAPI desteğiyle sistem yöneticileri ve DevOps ekiplerine daha fazla kontrol sunuyor.
Peki, DataplaneAPI nedir?
DataplaneAPI, HAProxy’nin modern API tabanlı bir yönetim arayüzüdür. Bu araç, HAProxy yapılandırmasını ve işlemlerini RESTful API’ler aracılığıyla yönetmenizi sağlar. Örneğin:
- Yapılandırma dosyalarını dinamik olarak düzenleyebilir,
- Servislerin yeniden başlatılmasını ve yeniden yüklenmesini yönetebilir,
- Sistemin durumunu ve performans metriklerini izleyebilirsiniz.
Bu yazıda, hem HAProxy 3.0 kurulumu hem de DataplaneAPI entegrasyonu adım adım anlatılacaktır.
HAProxy 3.0 Kurulumu
1. Gerekli Paketlerin Yüklenmesi
HAProxy’yi yükleyebilmek için gerekli bağımlılık olan software-properties-common
paketini yükleyin:
sudo apt-get install --no-install-recommends software-properties-common
2. PPA Deposu Ekleme
Resmi PPA deposunu ekleyerek HAProxy 3.0 yükleme imkânını sağlayın:
sudo add-apt-repository ppa:vbernat/haproxy-3.0
3. HAProxy 3.0 Yükleme
Belirtilen sürümü yüklemek için aşağıdaki komutu kullanın:
sudo apt-get install -y haproxy=3.0.*
4. Servisi Otomatik Başlatma
Sistemin yeniden başlatılmasında HAProxy’nin otomatik çalışmasını sağlayın:
sudo systemctl enable haproxy
5. Konfigürasyonu Kontrol Etme
HAProxy yapılandırmasının geçerli olduğundan emin olun:
haproxy -c -f /etc/haproxy/haproxy.cfg
6. Servisi Yeniden Başlatma
Yapılan değişikliklerin uygulanması için servisi yeniden başlatın:
sudo systemctl restart haproxy
DataplaneAPI Kurulumu
1. Klasör Oluşturma
DataplaneAPI için gerekli bir klasör oluşturup içerisine geçiş yapın:
mkdir dataplaneapi
cd dataplaneapi
2. DataplaneAPI İndirme ve Çıkarma
Uygun sürümü indirip arşivden çıkarın:
HAPROXY_DATAPLANE_API_VERSION="3.0.3"
wget https://github.com/haproxytech/dataplaneapi/releases/download/v${HAPROXY_DATAPLANE_API_VERSION}/dataplaneapi_${HAPROXY_DATAPLANE_API_VERSION}_linux_x86_64.tar.gz
tar -zxvf dataplaneapi_${HAPROXY_DATAPLANE_API_VERSION}_linux_x86_64.tar.gz
3. Çalıştırma İzinlerini Ayarlama
Dosya için çalıştırma izni verin:
chmod +x dataplaneapi
4. Sistem Genelinde Kullanılabilir Hale Getirme
DataplaneAPI dosyasını /usr/local/bin
dizinine taşıyın:
sudo cp dataplaneapi /usr/local/bin/
HAProxy ve DataplaneAPI Konfigürasyonu
1. HAProxy Stats Socket Ayarları
DataplaneAPI’nin HAProxy ile iletişim kurabilmesi için stats socket yapılandırması ekleyin. /etc/haproxy/haproxy.cfg
dosyasına şu satırları ekleyin:
global
stats socket /run/haproxy/admin.sock mode 660 level admin
2. DataplaneAPI Yapılandırması
DataplaneAPI için /etc/haproxy/dataplaneapi.yml
adlı bir yapılandırma dosyası oluşturun ve aşağıdaki içeriği ekleyin:
config_version: 2
name: haproxy-instance
dataplaneapi:
host: <Host_IP>
port: 5555
user:
- name: admin
insecure: true
password: <parola>
haproxy:
config_file: /etc/haproxy/haproxy.cfg
haproxy_bin: /usr/sbin/haproxy
reload:
reload_cmd: service haproxy reload
restart_cmd: service haproxy restart
3. Master-Worker Modu Aktifleştirme
HAProxy yapılandırma dosyasına master-worker
ve DataplaneAPI entegrasyonu için gerekli program satırlarını ekleyin:
global
master-worker
program api
command dataplaneapi -f /etc/haproxy/dataplaneapi.yml
no option start-on-reload
Servis Yönetimi ve Test
1. Servisi Yeniden Başlatma
HAProxy servisini yeniden başlatın:
sudo systemctl restart haproxy.service
2. Servis Durumunu Kontrol Etme
DataplaneAPI’nin çalışıp çalışmadığını kontrol edin:
sudo systemctl status haproxy.service
3. DataplaneAPI Testi
API’nin çalıştığını doğrulamak için bir GET isteği gönderin:
curl -X GET --user admin:"<parola>" http://<Host_IP>:5555/v3/info
DataplaneAPI’nin Avantajları
- Dinamik Yönetim: HAProxy yapılandırmalarını yeniden başlatmaya gerek kalmadan API üzerinden değiştirebilirsiniz.
- Otomasyon: API sayesinde yük dengeleme ayarlarınızı CI/CD süreçlerinize entegre edebilirsiniz.
- Güçlü İzleme: API üzerinden HAProxy’nin çalışma durumunu ve metriklerini anlık olarak izleyebilirsiniz.
Bu adımları takip ederek, HAProxy 3.0 ve DataplaneAPI’yi sisteminize başarıyla kurabilir ve entegre edebilirsiniz. DataplaneAPI, API tabanlı yönetim özellikleriyle HAProxy’yi daha esnek ve kolay bir şekilde kontrol etmenizi sağlar. Bu özellikler sayesinde sisteminizi otomasyon süreçlerine entegre edebilir, iş yükünüzü azaltabilirsiniz.