Rancher kubernetes altyapısını kullanarak “container orchestration” ‘ı bir arayüze taşıyıp işlerinizi daha kolay yapmanızı sağlayan bir araçtır. Detaylı incelemek isterseniz dökümantasyon linkini aşağıya bırakıyorum.
https://rancher.com/docs/rancher/v2.6/en/overview/
Kurduğum sistem özeti aşağıdaki gibidir;
1x Rancher (ubuntu)
3x Master (ubuntu)
3x Worker (ubuntu)
İlerleyen süreçlerde 1x Rancher makineyi HAProxy veya Keepalived ile yedekli çalıştırıp 2x’e çıkartacağız. Tüm bu süreçlere başlamadan önce ilgili sanal makinelerinizde tüm ubuntu güncellemelerini yapıp, hostname’lerinizi ayarlamanız gerektiğini belirtmek isterim.
Minimum rancher sistem gereksinimlerine aşağıdaki bağlantıdan ulaşabilirsiniz. Ben yedeklilik ve ihtiyaçlarım açısından 7 makine ile devam ediyorum.
https://rancher.com/docs/rancher/v2.6/en/installation/requirements/
Kuruluma başlamadan önce bir diğer yapmanız gereken işlem tüm makinelere Docker kurmak. Aşağıdaki bağlantıdan kurulumu yapabilirsiniz.
Aşağıdaki komut ile Docker üzerinde Rancher container’ını kaldırıyoruz.
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
-v /opt/rancher:/var/lib/rancher \
--privileged \
rancher/rancher:latest
Aşağıdaki komutla Docker’da çalışan container’ları görebilirsiniz.
root@rancher01:~# docker ps
a4a75c7ad915 rancher/rancher:latest "entrypoint.sh" 6 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp nifty_swanson
Makine ip adresimizi tarayıcıda açıyoruz ve karşımıza rancher şifresini öğrenebileceğimiz bir komut çıkıyor.
Aşağıdaki komutu terminal’e giriyorum. Container-id kısmını docker ps ile öğrendiğiniz container id si ile değiştirmeyi unutmayın. Komut size Bootstrap password’u verecektir.
docker logs container-id 2>&1 | grep "Bootstrap Password:"
Şifreyi kopyalayıp arayüzdeki Password kısmına giriyoruz. Ardından Log in with Local User butonuna basıyoruz.
Şifremizi aşağıdaki ekrandaki gibi belirleyip devam ediyoruz.
Arayüzden “Cluster Management” menüsüne gidiyoruz.
“Create” butonu ile Yeni Cluster oluşturuyoruz.
Ben local node kullanacağımdan Custom ile devam ediyorum.
Ardından ayarları aşağıdaki gibi düzenleyin
Master makineler için etcd ve control plane seçip alttaki kodu kopyalayıp Master makinelerinizin terminallerine yapıştırıyorsunuz.
Worker makinelerimiz içinse sadece Worker’ı seçip alttaki kodu kopyalayıp Worker makinelerinizin terminallerine yapıştırıyorsunuz.
Bir süre sonra tüm node’lar aktif olacak ve Rancher ui da görünecektir.
Kubernetes’i kubectl ‘den yönetmek için Rancher kurduğumuz makinenin terminalinden aşağıdaki komutu giriyoruz.
snap install kubectl --classic
Daha sonra Rancher arayüzünde bulunan sağ üst kısımdan “Copy KubeConfig to Clipboard” butonuna tıklayıp, kubernetes konfigürasyonunu kopyalıyoruz.
Aşağıdaki komut ile terminalde kubernetes config dosyamızı oluşturuyoruz ve içerisine kopyaladığımız config’i yazıyoruz.
mkdir -p /root/.kube/
cd /root/.kube && nano config
chmod 600 /root/.kube/config
Artık kubectl get nodes ile node larımızı görebiliriz.
root@rancher01:~/.kube# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master01 Ready controlplane,etcd 62m v1.21.8
master02 Ready controlplane,etcd 62m v1.21.8
master03 Ready controlplane,etcd 62m v1.21.8
worker01 Ready worker 58m v1.21.8
worker02 Ready worker 60m v1.21.8
worker03 Ready worker 58m v1.21.8
root@rancher01:~/.kube#