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.

image 13

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.

image 14

Arayüzden “Cluster Management” menüsüne gidiyoruz.

image 15

“Create” butonu ile Yeni Cluster oluşturuyoruz.

image 16

Ben local node kullanacağımdan Custom ile devam ediyorum.

Ardından ayarları aşağıdaki gibi düzenleyin

image 93
image 94
image 95

Master makineler için etcd ve control plane seçip alttaki kodu kopyalayıp Master makinelerinizin terminallerine yapıştırıyorsunuz.

image 96
image 21

Worker makinelerimiz içinse sadece Worker’ı seçip alttaki kodu kopyalayıp Worker makinelerinizin terminallerine yapıştırıyorsunuz.

image 22

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.

image 23

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#