yeke.io · dokümanlar · enterprise
Yüksek Erişilebilirlik (HA)
YEKE core’u birden fazla replica ile çalıştırın. Rolling update sırasında arayüz ve API erişilebilir kalır; agent yeniden bağlanırken ilgili cluster’da kısa bir kesinti olabilir. PostgreSQL ve Enterprise lisansı gerekir.
Genel bakış
İki replica, tek Service, tek Ingress.
HA kurulumunda iki core replica’sı RollingUpdate ile çalışır. Biri güncellenirken diğeri istekleri karşılar. SQLite kullanan tek replica kurulumunda ise dosya kilidi nedeniyle Recreate kullanılır ve güncelleme kısa bir kesinti gerektirir.
Ön koşul: PostgreSQL
Tek bir lisans bayrağı ikisini birden açar.
ha-postgres Enterprise özelliği hem PostgreSQL sürücüsünü hem çok replica’lı kurulumu kapsar. HA için PostgreSQL zorunludur; birden fazla core aynı SQLite dosyasını paylaşamaz.
Gereksinimler
Kurulum için aşağıdaki dört gereksinimi hazırlayın.
- PostgreSQL bağlantısı.
YEKE_DB_URL, kurumun kendi PostgreSQL'ine — bkz. PostgreSQL bağlantısı sayfası. - Snapshot anahtarı Secret'tan, zorunlu. PostgreSQL modunda core anahtarı
üretmez — SQLite kipindeki "core üretip veri dizinine yazar" yedeği burada yoktur.
Anahtar
YEKE_SNAPSHOT_KEYüzerinden dışarıdan verilmek zorundadır. - Headless Service. Replikalar birbirine, sahibi olmayan bir replikanın gelen bir isteği tünel sahibi olan replicaya iç vekâletle ilettiği bir mekanizmayla ulaşır; bu vekâlet pod'lara doğrudan adresle ulaşmayı gerektirir.
- ha-postgres özelliğini açan lisans. Dosya olarak mount edilen imzalı bir lisans
bloğu (
YEKE_LICENSE_PATH).
Tek-node ile farklar
Tek replica ve HA kurulumunun ayarlarını karşılaştırın.
| Tek-node | HA | |
|---|---|---|
strategy | Recreate | RollingUpdate (maxUnavailable: 0, maxSurge: 1) |
replicas | 1 | 2 |
| Kalıcı veri dizini | PVC | yok — kalıcılık PostgreSQL'de |
YEKE_DB_URL | verilmez (SQLite) | Secret'tan zorunlu |
YEKE_SNAPSHOT_KEY | opsiyonel (core üretebilir) | Secret'tan zorunlu |
| Lisans | gerekmez | ha-postgres özelliği zorunlu |
readOnlyRootFilesystem | yok | var — PostgreSQL modunda core dosya sistemine hiçbir şey yazmaz |
Kurulum
Tek-node kurulumdan iki dosya (01-pvc.yaml, tek-node
02-core-deployment.yaml) bilerek dışarıda bırakılır.
# 1) namespace (tek-node kurulumla aynı)
kubectl apply -f deploy/kubernetes/00-namespace.yaml
# 2) PostgreSQL bağlantısı + snapshot anahtarı — İKİSİ DE ZORUNLU
kubectl -n yeke-system create secret generic yeke-core-secrets \
--from-literal=YEKE_DB_URL="postgres://<kullanici>:<parola>@<pg-host>:5432/<db>" \
--from-literal=YEKE_SNAPSHOT_KEY="$(openssl rand -hex 32)"
# 3) ha-postgres özelliğini açan imzalı lisans bloğu
kubectl -n yeke-system create secret generic yeke-license \
--from-file=license.block=/yol/license.block
# 4) sürüm + host yer tutucularını doldurun
sed -i '' 's/<YEKE_VERSION>/0.51.2/' deploy/kubernetes/ha/02-core-deployment.yaml
# YEKE_PUBLIC_URL / YEKE_ALLOWED_ORIGINS (ha/02-core-deployment.yaml)
# ve host (06-ingress.yaml) — tek-node kurulumdaki AYNI adım
# 5) uygulayın: base Service + Ingress + HA dizini
kubectl apply -f deploy/kubernetes/03-core-service.yaml \
-f deploy/kubernetes/06-ingress.yaml \
-f deploy/kubernetes/ha/Namespace, Service ve Ingress tek-node ile HA arasında aynı dosyalardır; Service
app: yeke-core etiketiyle seçim yapar ve bu etiket bir ya da iki replikada da
geçerlidir. Yalnız ha/ dizinindeki iki dosya (deployment + headless service)
tek-node'un 01-pvc.yaml + 02-core-deployment.yaml ikilisinin
yerine geçer; ikisi aynı anda uygulanmaz.
Sürüm geçişinde ne olur
İki farklı yüzey, iki farklı davranış.
- HTTP/SPA yüzeyi.
RollingUpdateboyunca en az bir replica her zaman istek karşılar; arayüz ve API güncelleme sırasında erişilebilir kalır. - Agent tüneli. Her cluster'ın tüneli tek bir replicaya (sahibe) bağlıdır. Sahip replica güncellenirken agent bağlantısı kopar ve kısa bir pencere içinde yeniden kurulur; bu pencere boyunca o cluster'a giden istekler geçici olarak başarısız olabilir.
Sınırlar
Satılan katman YEKE'dir, altındaki veritabanı değil.
- PostgreSQL'in kendi yüksek erişilebilirliği kurumun işidir. Kümeleme, replikasyon, failover ve yedekleme: PostgreSQL bağlantısı sayfasındaki sınırın aynısı.
- Compose kurulumu HA kapsamında değildir. Tek makinede iki replica koşturmak gerçek bir erişilebilirlik artışı vermez; HA yalnız Kubernetes deploy'unda anlamlıdır.
- Lisanssız kurulumda hiçbir şey çalışmaz.
ha-postgresolmadan PostgreSQL sürücüsünün kendisi açılmaz — bkz. lisans kapısı.
Silinen kayıtların arşivi de PostgreSQL modunda
HA'nın ön koşulu olan aynı PostgreSQL bağlantısı, uzun saklama ve arşiv özelliğinin de önkoşuludur.