Kubernetes ÜzerindeHigh Available PostgreSQL Cluster Kurulumu
Merhabalar! Bu yazımda Stolon PostgreSQL operatör ile Kubernetes cluster üzerinde Leader-Follower şeklinde çalışan PostgreSQL cluster kurulumunun nasıl yapıldığını anlatacağım. İyi okumalar!
https://github.com/sorintlab/stolon adresinden repoyu indirin.
cd stolon/examples/kubernetes/
Eğer farklı bir PostgreSQL imajı kullanılacaksa base imaj verilmelidir.
Cluster Kurulumu
kubectl run -i -t stolonctl –image=local.docker.registry:5000/postgis-stolon:latest –restart=Never –rm — /usr/local/bin/stolonctl –cluster-name=kube-stolon –store-backend=kubernetes –kube-resource-kind=configmap init
kubectl apply -f stolon-sentinel.yaml
kubectl apply -f stolon-keeper.yaml
kubectl apply -f secret.yaml
kubectl apply -f stolon-proxy.yaml
kubectl apply -f stolon-proxy-service.yaml
kubectl apply -f role.yaml
kubectl apply -f role-binding.yaml
İlgili YAML dosyaları düzenlenerek kaç master kaç replica olacağı belirlenebilir. Ayrıca unutulmamalıdır ki her bir postgresql instance’ı persistent volume’a ihtiyaç duymaktadır.
Kubernetes Üzerindeki Cluster
kubectl get pods
NAME READY STATUS RESTARTS AGE
stolon-keeper-0 1/1 Running 0 5m
stolon-keeper-1 1/1 Running 0 5m
stolon-proxy-fd7c9b4bd-89c9z 1/1 Running 0 5m
stolon-proxy-fd7c9b4bd-pmj86 1/1 Running 0 5m
stolon-sentinel-5c76865bd5-bc9n2 1/1 Running 0 5m
stolon-sentinel-5c76865bd5-fmqts 1/1 Running 0 5m
Bir Master Öldügünde
no keeper info available db=cb96f42d keeper=keeper0
no keeper info available db=cb96f42d keeper=keeper0
master db is failed db=cb96f42d keeper=keeper0
trying to find a standby to replace failed master
electing db as the new master db=087ce88a keeper=keeper1
Eğer leader sunucusu (master) kapandığında otomatik olarak follower olan diğer sunucular master’lığı alarak db’ye bağlantıyı sağlamaya devam edecektir.