Merhaba,
Bu makalemizde Rancher ile kendi kubernetes clusterımızı kuracağız. Rancher Rancher , merkezi noktadan birden fazla kubernetes clusterımızı yönetebileceğimiz aynı zaman da RKE(rancher kubernetes engine) kurabileceğiz bir platformdur. Biz bu makalede RKE kuracağız.
RKE, Rancher Kubernetes Engine (RKE) tamamen Docker üzerinde çalışan ve CNCF sertifikalı bir Kubernetes dağıtımıdır. Rancher Kubernetes Engine'in sadece Docker bağımlılığına sahip olması, hızlıca yönetilebilir bir Kubernetes Cluster'ına sahip olma açısından önemli bir avantaj sağlamaktadır.
Ben bu ortamda bir adet master ve bir adet worker olarak kuracağım. Sizler birden fazla worker oluşturabilirsiniz. Benim test ortamım aşağıdaki gibi olacaktır. Ben rancher konteynerının olduğu sunucu ile kubernetes masterın olduğu sunucuları ayrı tutacağım. Öncelikle bu üç sunucuya docker yüklemek gerekmektedir. Ubuntu sunucularda docker kurulumuna aşağıdaki bağlantıdan ulaşabilirsiniz.
https://docs.docker.com/engine/install/ubuntu/
172.34.47.100 - Docker , Rancher konteynarının çalıştığı sunucu
172.34.47.120 - Master
172.34.47.121 - Node-1
Aşağıdaki komutla rancher containerımızı başlatıyoruz. Bu komutu ben 172.34.47.100 ip adresine sahip sunucuda çalıştırıyorum.
docker run -d --restart=unless-stopped \
-p 80:80 -p 443:443 \
--privileged \
rancher/rancher:latest
Konteynar ayağa kalktığında tarayıcımızda https://172.34.47.100 yazıp rancher arayüzüne erişiyoruz. İlk defa eriştiğimizde giriş parola için aşağıdaki komutu verecektir. Bu komutu docker sunucumuzda çalıştırıyoruz. container-id ' yi değiştiriyoruz.
docker logs container-id 2>&1 | grep "Bootstrap Password:"
Ardından bize vereceği şifreyi rancher arayüzünde girdikten sonra istersek bir parola belirleyebilir istersek rancherın vereceği parolayı kullanabiliriz. Ben değiştireceğim.
Şimdi karşımızda çıkan ekranda create diyerek clusterımızı oluşturabiliriz. "Import Existing" ile herhangi bir kubernetes clusterımızı bu rancher platformumuza ekleyebiliriz.
Ardından "CUSTOM" sekmesine tıklıyoruz. Clusterımızı isim verdikten sonra herhangi ek bir ayar yapmamıza gerek kalmadan "Create" sekmesine tıklıyoruz. Sizler isterseniz ayarları kendinize göre düzenleyebilirsiniz. Bizler test ortamı için kuracağımız için fazla ayar yapmamıza gerek yok.
Sırada sunucularımızı bu kubernetes clusterımıza dahi etmekte. Oluşturduğumuzda karşımıza aşağıdaki ekran çıkacaktır. Master node için "etcd" ve "Control Plane" seçeneklerinizi seçiyoruz.
ve kodumuzu kopyalıp altında ki "Insecure" seçeneğini aktif ediyoruz. Eğer insecure seçeneğini aktif etmezsek clustera dahil ettiğimizde güvenlik sebebiyle eklemeyecektir.
Kodu master sunucumuzda çalıştırıyoruz. Worker için sadece "Worker" seçeneğini seçip kodu kopyalıyoruz ve worker sunucumuzda çalıştırıyoruz. Yine "Insecure" seçeneğini aktif ediyoruz.
Ardından biraz zaman geçtikten sonra clusterınız aktif hale gelecektir. Artık kubernetesi CLI dan yönetebilmek için kubectl kurulumunu gerçekleştirmemiz gerekiyor.
KUBECTL KURULUMU
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/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"
Eğer root kullanıcısı ile işlem yapacaksanız aşağıdaki komutu kullanabilirsiniz. Eğer farklı bir kullanıcı ile işlem yapacaksanız 2. komutu kullanabilirsiniz.
1- sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
2- chmod +x kubectl
mkdir -p ~/.local/bin
mv ./kubectl ~/.local/bin/kubectl
Eğer kubectl komutlarını çalıştırdığınızda aşağıdaki gibi bir hata alırsanız aşağıdaki adımları uygulayabilirsiniz.
E0205 21:06:29.037921 12587 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0205 21:06:29.038218 12587 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0205 21:06:29.039847 12587 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0205 21:06:29.040120 12587 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
E0205 21:06:29.041661 12587 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp 127.0.0.1:8080: connect: connection refused
The connection to the server localhost:8080 was refused - did you specify the right host or port?
1- mkdir /home/suleyman/.kube
2- sudo su -
3- cat /etc/rancher/rke2/rke2.yaml > /home/suleyman/.kube/config
Aşağıdaki görselde 172.34.47.120 yerine "127.0.0.1" yazmaktadır. Siz onu master sunucunuzun ip adresi ile değiştirmeniz gerekmektedir.
Artık clusterımız hazır durumdadır. Şimdi clusterımız üzerine loadbalancer, ingress controller, dynamic storage gibi uygulamaları deploy edeceğiz. Bu uygulamaların da kurulumunu sayfamda bulabilirsiniz.
İyi günler.
Top comments (0)