
RKE Üzerinde Rancher Kurulumu
Rancher, üretim ortamında Kubernetes üzerinde çalışan iş yüklerinizi yöneten açık kaynak kodlu bir platformdur. Sunulan arayüz üzerinden çoklu Kubernetes kümelerinizi kolaylıkla yönetebilirsiniz.
Rancher kurulum senaryolarına baktığımız iki alternatif karşımıza çıkmaktadır;
- Docker üzerinde
- Kubernetes Cluster’ı üzerinde
Eğer Rancher ile yeni taşınıyor ve hızlı bir başlangıç yapma istiyorsanız Docker senaryosunu tercih edebilirsiniz. Öte yandan, üretim ortamında bulunan Kubernetes Cluster’larınızı yönetmek için gereken yüksek erişilebilirlik, yedeklilik v.b. ihtiyaçlarınızı bu senaryoda karşılamanız mümkün değil.
İkinci alternatif Rancher’ı bir Kubernetes Cluster’ı üzerinde çalıştıracağı için yüksek erişilebilirlik varsayılan olarak gelecektir. Yakın zamana kadar Rancher sadece daha önce değindiğimiz RKE (Rancher Kubernetes Engine) üzerinde kurulabiliyordu. Buna K3s’de eklendi. Aşağıda sizlere RKE üzerinde nasıl Rancher kurabileceğinizi anlatacağız.
Başlarken kubectl ve helm binary’leri yoksa kurulup path’e eklenmelidir.
Aşağıdaki komutla güncel Rancher Helm deposu eklenir;
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
Rancher için namespace oluşturulur;
kubectl create namespace cattle-system
SSL Yapılandırması
Rancher tarafından kullanılacak ssl yapılandırması için 3 alternatif bulunmaktadır;
- Rancher tarafından otomatik üretilen self-signed sertifika kullanımı
- Let’s Encypt ile otomatik geçerli bir sertifika kullanımı
- Kendi sertifikamız
Aşağıdaki tabloda bu üç alternatif için hangi helm parametresini kullanabileceğinizi ve ön gereksinimi bulabilirsiniz;
Yapılandırma | Helm Parametresi | Ön Gereksinim |
---|---|---|
Rancher tarafından üretilen sertifika (varsayılan) | ingress.tls.source=rancher | Cert-manager kurulumu |
Let’s Encypt | ingress.tls.source=letsEncrypt | Cert-manager kurulumu |
Kendi sertifikamız | ingress.tls.source=secret | – |
Cert-Manager Kurulumu
Yukarıdaki ilk iki seçeneğin tercih edilmesi durumunda Rancher kurulumu öncesinde cert-manager kurulmalıdır. Cert-manager kurulumu için aşağıdaki komutlar kullanılabilir;
Gerekli CRD tanımları oluşturulur;
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v0.15.0/cert-manager.crds.yaml
Cert-manager namespace’i oluşturulur;
kubectl create namespace cert-manager
Jetstack Helm deposu eklenir;
helm repo add jetstack https://charts.jetstack.io helm repo update
Cert-manager helm chart’ı kurulur;
helm install \ cert-manager jetstack/cert-manager \ --namespace cert-manager \ --version v0.15.0
Kurulum aşağıdaki komutlarla pod durumlarına bakılarak kontrol edilebilir;
kubectl get pods --namespace cert-manager
Rancher Kurulumu
Seçilen SSL yapılandırmasına göre üç alternatif kurulum bulunmaktadır. Her üç yol için de saha sonradan ihtiyaç duyulabileceği için kullandığınız parametreleri saklamayı unutmayın…
Rancher tarafından üretilen SSL sertifikaları ile
Aşağıdaki komutla helm chart kurulumu yapılır;
helm install rancher rancher-latest/rancher \ --namespace cattle-system \ --set hostname=rancher.enterprisecoding.dev
Hostname parametresi Rancher node’ları önündeki load balancer’da sonlanan bir alan adı olmalıdır.
Let’s Encrypt Sertifikası ile
Aşağıdaki komutla helm chart kurulumu yapılır;
helm install rancher rancher-latest/rancher \ --namespace cattle-system \ --set hostname=rancher.enterprisecoding.dev \ --set ingress.tls.source=letsEncrypt \ --set letsEncrypt.email=me@example.org
Hostname parametresi Rancher node’ları önündeki load balancer’da sonlanan bir alan adı olmalıdır. letsEncrypt.email parametresi geçerli bir email adresi olmalıdır. Let’s Encypt bildirimlerini bu mail adresine yapacaktır.
Kendi Sertifikamız
Aşağıdaki komutla sertifikalar secret olarak eklenir;
kubectl -n cattle-system create secret tls tls-rancher-ingress \ --cert=tls.crt \ --key=tls.key
Eğer sertifikalar kurum için bir CA tarafından üretildi ise Rancher CA public sertifikalarına da ihtiyaç duyacaktır;
kubectl -n cattle-system create secret generic tls-ca \ --from-file=cacerts.pem=./cacerts.pem
Aşağıdaki komutla helm chart kurulumu yapılır;
helm install rancher rancher-latest/rancher \ --namespace cattle-system \ --set hostname=rancher.enterprisecoding.dev \ --set ingress.tls.source=secret
Hostname parametresi Rancher node’ları önündeki load balancer’da sonlanan bir alan adı olmalıdır.
Eğer sertifikalar kurum için bir CA tarafından üretildi ise;
helm install rancher rancher-latest/rancher \ --namespace cattle-system \ --set hostname=rancher.enterprisecoding.dev \ --set ingress.tls.source=secret \ --set privateCA=true
Kurulum Kontrolü
Aşağıdaki komutla deployment’ın hazır olması beklenir;
kubectl -n cattle-system rollout status deploy/rancher
Kurulumda verilen hostname birden fazla node var ise önlerinde konumlandırılan bir loadbalancer’ı ya da tek node ise bu node’u işaret etmelidir.
Tarayıcıdan hostname adı girilerek sayfa açılır;
