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ırmaHelm ParametresiÖn Gereksinim
Rancher tarafından üretilen sertifika (varsayılan)ingress.tls.source=rancherCert-manager kurulumu
Let’s Encyptingress.tls.source=letsEncryptCert-manager kurulumu
Kendi sertifikamızingress.tls.source=secret
Alterntif SSL yapılandırma senaryoları

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;


Leave a Comment

en_USEnglish