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.