Ana içeriğe atla

Genel Bakış

Bu dökümanda, mevcut Kubernetes kümemizi bozmadan virtual IP’ye yönlendirerek, kesintisiz bir hizmet ile birlikte yüksek erişilebilirlik ile çalışmasını sağlayacağız. Mevcut Makineler:
  • Kubernetes Master1
  • Kubernetes Master2
  • Kubernetes Master3
  • Kubernetes Worker1
  • Kubernetes Worker2

Mevcut Sistem ve Virtual IP Erişimi

Mevcut sistemde, Master1 üzerinde kubeadm init komutuyla başlatılan bir Kubernetes kümesi oluşturuldu ve daha sonra diğer makineler (Master2, Master3, Worker1 ve Worker2) bu kümeye worker rolüyle dahil edildi. Load Balancer üzerinde bir Virtual IP tanımlayarak, mevcut makineleri bu **Virtual IP’**ye 6443 portundan eriştirmemiz gerekiyor.
Eğer load balancer kullanmıyorsanız ve ağ üzerinde sanal ip oluşturamıyorsanız bunun için kullanabileceğiniz Keepalived ve HAProxy araçları ile bu işlemi gerçekleştirmek için tıklayınız.Keepalived sanal ip oluşturmak için, HAProxy ise yük dengeleme işlemi için kullanılmaktadır.

IP Değiştirme

Kümede birden fazla master node olduğunda, bu master’ları tek bir master olarak bırakmak için kümeyi yeniden yapılandırmamız gerekmektedir. Bu işlem genellikle diğer masterları kümeden tamamen çıkartarak başlar.

Master Node’ları Kümeden Çıkarma

Aşağıdaki komut master1 hariç diğer masterlar (master2 ve master3) için çalıştırılır.
sudo kubeadm reset
Master1 sunucusundan diğer masterlar (master2 ve master3) kümeden silinir.
kubectl delete nodes master2
kubectl delete nodes master3
Mevcut sistemde master1 ve worker sunucularının kalması gerekmekte.

Master1 Sunucusunda Yapılacaklar

1
Servisleri DurdurmaKubelet ve containerd (docker kullanılıyorsa ayrıca docker uygulaması) durdurulur.
sudo systemctl stop kubelet
sudo systemctl stop containerd
2
Dosya Yedekleme ve TemizlemeBazı dosyaların yedekleri alınır ve silinir.
sudo mv -f /etc/kubernetes /etc/kubernetes.backup
sudo mv -f /var/lib/kubelet /var/lib/kubelet.backup
sudo mkdir -p /etc/kubernetes/pki
sudo cp -r /etc/kubernetes_backup/pki /etc/kubernetes
sudo rm -rf /etc/kubernetes/pki/{apiserver.*,etcd/peer.*}
sudo rm -f ~/.kube/config
3
Containerd BaşlatmaContainerd (docker kullanılıyorsa ayrıca docker uygulaması) başlatılır.
sudo systemctl start containerd
4
Kubeadm Init ile Virtual IP YapılandırmasıKubeadm init komutu endpoint adresi düzenlenerek tekrardan çalıştırılır ve Virtual IP olarak kullanılır.
sudo kubeadm init --pod-network-cidr "10.244.0.0/16" --control-plane-endpoint <VIRTUAL_IP> --upload-certs --ignore-preflight-errors=DirAvailable--var-lib-etcd
Kubeadm join komutları not edilir.

Worker1 ve Worker2 İçin Yapılacaklar

1
Servisleri DurdurmaKubelet ve containerd (docker kullanılıyorsa ayrıca docker uygulaması) durdurulur.
sudo systemctl stop kubelet
sudo systemctl stop containerd
2
Dosya YedeklemeBazı dosyaların yedekleri alınır.
sudo mv -f /etc/kubernetes /etc/kubernetes.backup
sudo mv -f /var/lib/kubelet /var/lib/kubelet.backup
3
Servisleri BaşlatmaContainerd (docker kullanılıyorsa ayrıca docker uygulaması) ve kubelet başlatılır.
sudo systemctl start kubelet
sudo systemctl start containerd
4
Worker JoinKubeadm worker join komutu worker1 ve worker2 makinelerinde çalıştırılır.

Master2 ve Master3 İçin Yapılacaklar

Bu adımda sadece master join komutunu master2 ve master3’de çalıştırmanız yeterli olacaktır.

Küme Durumu Kontrolü

Aşağıdaki komutlar ile yeni küme bilgilerinizi görebilirsiniz.
kubectl cluster-info
kubectl get node -o wide