RKE ile Kubernetes Kurulumu

Akşamın 11:00’i tam Star Trek Enterprise izlerken aklımda dolaşan RKE ile bu K8s kurulumu nasıl yapılıyor diye bir bakamak istedim.

Çok iyi bilmiyorum RKE’yi fakat K8s kurulumu için çok yöntem olduğunu biliyorum kubeadm, kubesprey, kops her birinin farklılıkları mevcut, destekledikleri hyperscaler adledilen sağlayıcılara göre, K8s Control Plane’i HA kurmalarına göre, otomasyon araçları kullanmaları ve birbirlerini kapsadıklarına göre.

RKE nedir diye baktığımda, bu opsiyonların üzerine daha basit, daha hızlı bir kurulum sağladığını söylüyor, sadece tek bir çalıştırılabilirle ki adı “rke” yeterli, fakat sizden tek istediği şey, modern bir Linux dağıtımı ve yine modern bir Docker dağıtımı, RKE eski modayı sevmiyor 🙂

Daha hızlı bir kurulum çünkü Rancher tüm servisleri Dockerize yapmış, bilenler için aynı Openstack Kolla-Ansible ile Openstack kurmak gibi. İlgili imajları cluster.yaml oluşturduğunuzda “system image” kısmında görebilirsiniz.

Hemen mayalamaya başlıyorum macOS üzerinde RKE için , makinemi workstation olarak kabul edin. Yine bu makine üzerinde K8s’i yönetmek için kubectl ve üzerine Rancher UI kurmak için aynı zamanda helm’de kurulu olduğunu varsayın.

Vahrics-MacBook-Pro:~ vahricmuhtaryan$ brew install rke
Vahrics-MacBook-Pro:~ vahricmuhtaryan$ rke -version
rke version v1.1.1

Bu kuracağım K8s kümesini HA mode’da kurmaya çalışacağım, fazlası için buraya (Implementation Notes) bakabilirsiniz.

Elimide üç adet sanal sunucu var, OS olarak genelde CentOS kullanırım ama bu kez Ubuntu kullanacağım, neden derseniz tembellikten, Ubuntu güzel fakat herkes biliyorki k8s kümesini up etmem için sanal sunucular üzerinde fw , selinux , ip forwarding ile ilgili ayarlar yapmayacağım, Ubuntu’da bunlar ya varsayılı olarak yüklenmemiş, yada aktive edilmiş geliyor, tek yapmam gereken üzerinde Docker kurmak ve swap’ı kapatmak, elinizde hazır bir imaj olsa bu şekilde çok daha güzel olur 😀

Sanal sunucular 2 vCpu , 8 Gb Ram , 100 GB Disk’e sahip Ubuntu 18.04, “RKE Install Requirments”‘dan yöneteceğiniz küme sayısına göre farklı bedenler seçebilirsiniz. Sanal sunucularım r1,r2,r3 olarak isimlendirildi. İlgili sanal sunucuları hazırlamak için bir combo döküman yazdım, bunları yapmanız yeterli.

Bundan sonra yapmamız gereken bir yaml dosyası oluşturmak ve kurulum için gerekli role, ip, ssh için public key, sanal sunucu sayısınız , kullanılacak Docker imajları, doğrulama yönetimi, network plugin seçimi, K8s Cluster network ip aralığını belirlemek veya onaylamak. Bunun için aşağıdaki komutunu çalıştırabilirsiniz, çıkan sorular referans olması açısından buradan görebilirsiniz.

rev:~ vahricmuhtaryan$ rke config –name bizinrkek8scluster.yml

Oluşan yaml dosyasını kullanarak K8s ayağa kaldırabiliriz, referans olması açısından aşağıdaki komutun terminal çıktısı bu şekilde.

rev:~ vahricmuhtaryan$ rke up –config bizinrkek8scluster.yml

İlk denememde “Failed to get job complete status for job rke-network-plugin-deploy-job” diye bir hata aldım, addon_job_timeout değerini oynamak gerekebilir, tekrar’dan rke up komutunu gönderdiğimde problemsiz çalıştı.

INFO[0070] Finished building Kubernetes cluster successfully 

Kayan ekranda kube_config_bizinrkek8scluster.yml adında bir kube config dosyası oluşturduğunu gördüm, kubectl ile sorguladım.

kubectl get nodes –kubeconfig=../kube_config_bizinrkek8scluster.yml 

NAME            STATUS   ROLES                      AGE   VERSION

xxx.yyy.zzz.130   Ready    controlplane,etcd,worker   34m   v1.17.5

xxx.yyy.zzz.131   Ready    controlplane,etcd,worker   34m   v1.17.5

xxx.yyy.zzz.132   Ready    controlplane,etcd,worker   34m   v1.17.5

Sana sunucular üzerinden baktığımızda kubelet dahil herşeyin bir container olarak çalıştığını görebilirsiniz.

RKE ‘yi daha derin incelemek lazım, yeni worker ekleme, çıkarma, etcd ile ilgili yedekleme, yedekten geri dönme , sertifika , cluster.yaml’a eklenebilen add-on’larla beraber daha birçok şey yapılabiliyor.

Şimdilik Rancher UI HA kurabilmek için gerekli yapıyı oluşturmuş olduk.

VM

Posted on 15/05/2020, in Rancher and tagged , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: