Ana içeriğe geç

Kubernetes Kümesinde IP Değişikliği - Virtual IP Kullanımı

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.

uyarı

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
bilgi

Mevcut sistemde master1 ve worker sunucularının kalması gerekmekte.

Master1 Sunucusunda Yapılacaklar

Servisleri Durdurma

Kubelet ve containerd (docker kullanılıyorsa ayrıca docker uygulaması) durdurulur.

sudo systemctl stop kubelet
sudo systemctl stop containerd

Dosya Yedekleme ve Temizleme

Bazı 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

Containerd Başlatma

Containerd (docker kullanılıyorsa ayrıca docker uygulaması) başlatılır.

sudo systemctl start containerd

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
uyarı

Kubeadm join komutları not edilir.

Worker1 ve Worker2 İçin Yapılacaklar

Servisleri Durdurma

Kubelet ve containerd (docker kullanılıyorsa ayrıca docker uygulaması) durdurulur.

sudo systemctl stop kubelet
sudo systemctl stop containerd

Dosya Yedekleme

Bazı dosyaların yedekleri alınır.

sudo mv -f /etc/kubernetes /etc/kubernetes.backup
sudo mv -f /var/lib/kubelet /var/lib/kubelet.backup

Servisleri Başlatma

Containerd (docker kullanılıyorsa ayrıca docker uygulaması) ve kubelet başlatılır.

sudo systemctl start kubelet
sudo systemctl start containerd

Worker Join

Kubeadm 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