Öncelikle test ortamı olarak kurulum yapacağım için 4 node kullanıldı. Production ortam en az 3 master 5 worker şeklinde kurmak gerekir. Kesinti yaşamamak adına Master node’lar tek olmamalıdır. Herzaman tek sayıda bırakmak gerekir 3-5-7 gibi düşünebilirsiniz. Genelde basit bir yapı için 3 master 5 worker yeterli olmaktadır. Herneyse gelelim konumuza;

Node1 – Rancher UI
Node2 – Master1
Node3 – Worker1
Node4 – Worker2

Rancher kurulacak sunucuda docker kurulumu yapılır.

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt install docker-ce
sudo systemctl status docker

Docker kurulumu yapıldıktan sonra rancher docker uzerınden ayaga kaldırılır.

sudo docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 --name rancher rancher/rancher:latest

Rancher container ayağa kalktıktan sonra https://ranchernodeip seklinde dashboard acılır

docker container ıcınde aşağıdaki komut çalıştırılır, ekrana yazılan şifre dashboard ekranına girilir

docker exec rancher kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{.data.bootstrapPassword|base64decode}}{{"\n"}}'

Container icinden aldığımız parola ekrana girildikten sonra yeni parola oluşturulur.

Rancher kurulumu tamamlandı ve artık rancher dashboard üzerindeyiz.

Master 1 node uzerınde rke2 kurulumu yapılacaktır. Sunucuya hostname verilir ve swap kapatılır, fstab icinden de swap satırı varsa commentlenir.

sudo hostnamectl set-hostname master1
sudo swapoff -a

nano /etc/fstab
swap satırı # yorum haline getirilir.

Master üzerinde firewall varsa en az şunlara izin ver:

  1. 9345/TCP: Worker’ların RKE2’ye bağlanması
  2. 6443/TCP: Kubernetes API
  3. 10250/TCP: Kubelet
  4. 8472/UDP: Node’lar arası Canal ağ trafiği
  5. 30000-32767/TCP,UDP: NodePort kullanacaksan

Ardından RKE2 ayar dosyasını oluştur:

sudo mkdir -p /etc/rancher/rke2
sudo nano /etc/rancher/rke2/config.yaml

node-name: master1
write-kubeconfig-mode: "0644"
node-ip: "192.168.74.10"

RKE2 kurulum ve başlatma:

curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="server" sh -

veya belirli bir versiyon kurmak isterseniz de

curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="server" INSTALL_RKE2_VERSION="v1.36.4+rke2r1" sh -

kurulum bitince log izlenir
sudo journalctl -u rke2-server -f

kurulum yapılınca aşağıdaki çıktı sonucu master1 Ready olarak görünmeli.

sudo /var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes

Sonra worker’larda kullanacağımız token’ı master’da görüntüle:

cat /var/lib/rancher/rke2/server/agent-token

Worker 1 Kurulumu:

hostnamectl set-hostname worker1
swapoff -a
mkdir -p /etc/rancher/rke2
nano /etc/rancher/rke2/config.yaml

Dosya içeriği şu olsun. TOKEN alanına master’dan aldığın agent-token değerini tam olarak yapıştır:

server: https://192.168.74.50:9345
token:"K10603bbb07c8dfd9d871daec43f586a5eafa28b34afa390d0::server:bfeac24ad4f0ab070d8219e451853c9c74613223e51eba817"
node-name: "worker1"

Ardından Worker 1’e RKE2 agent kur ve başlat:

curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" sh -

veya versiyon ile kurmak isterseniz

curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" INSTALL_RKE2_VERSION="v1.36.4+rke2r1" sh -

Worker’ın master’a 9345/TCP üzerinden ulaşabildiğinden emin ol; firewall varsa bu porta izin verilmeli.

sudo systemctl enable rke2-agent.service
sudo systemctl start rke2-agent.service

Kurulumdan sonra master1 üzerinde kontrol et:

/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes

Worker 2 Kurulumu:

hostnamectl set-hostname worker2
swapoff -a
mkdir -p /etc/rancher/rke2
nano /etc/rancher/rke2/config.yaml

Dosya içeriği şu olsun. TOKEN alanına master’dan aldığın agent-token değerini tam olarak yapıştır:

server: https://192.168.74.50:9345
token:"K10603bbb07c8dfd9d871daec43f586a5eafa28b34afa390d0::server:bfeac24ad4f0ab070d8219e451853c9c74613223e51eba817"
node-name: "worker2"

Ardından Worker 1’e RKE2 agent kur ve başlat:

curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" sh -

veya versiyon ile kurmak isterseniz

curl -sfL https://get.rke2.io | sudo INSTALL_RKE2_TYPE="agent" INSTALL_RKE2_VERSION="v1.36.4+rke2r1" sh -

Worker’ın master’a 9345/TCP üzerinden ulaşabildiğinden emin ol; firewall varsa bu porta izin verilmeli.

sudo systemctl enable rke2-agent.service
sudo systemctl start rke2-agent.service

Kurulumdan sonra master1 üzerinde kontrol et:

/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes

Kubectl Kurulumu

Master Node üzerinde kubectl kullanmak için aşağıdaki komutlar ile kubectl kurulumu yapılır.

Önce node üzerinde update komutu çalıştırılır ve ilgili modüller kurulur .

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

kubectl download edilir

curl -LO https://dl.k8s.io/release/v1.33.0/bin/linux/amd64/kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"

validate edilir,

echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check

kubectl kurulumu başlatılır, kubectl dosyasına +x ile yetki verilir ve ilgili alana taşınır.

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
chmod +x kubectl
mkdir -p ~/.local/bin
mv ./kubectl ~/.local/bin/kubectl

en son kurulan kubectl versiyonu kontrol edilir.

kubectl version

Rancher Üzerine Cluster Ekleme

rancher dashboard uzerınden sımdı olusturdugumuz clusterı ekleyelım.

Create Cluster tıklanır ve olusturulacak cluster ismi ve acıklama girilerek create edilir.

Master1 uzerınde calıstırılır master1 import edilir. ssl yoksa –insecure kullanılır.

curl --insecure -sfL 'https://192.168.74.145/v3/import/xh8czv4jgbmgnlbv4249rmw5h66dg5mkcjmw74hnwhf22kv92zpmvg_c-lmxn2.yaml' | /var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml apply -f -

rke2-test isminde clusterı import işlemi yaptık artık rancher üzerinde local cluster dışında rke2-test cluster yönetilebilir clusterlar arasında görünecektir.