Rancher
Let's see how to run Rancher (docs, code) in a Kubernetes cluster.
Configuration
We'll use the official Helm chart (docs):
Deployment
💡 Kubernetes objects will be installed in cattle-system namespace
bash
# adds Helm chart repository
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo update
# installs
helm upgrade --install rancher rancher-latest/rancher --namespace cattle-system --create-namespace
# checks everything is ok
kubectl get svc,deploy,pod,ingress,pv,certificate -n cattle-system
# retrieves generated password
kubectl get secret --namespace cattle-system bootstrap-secret -o go-template='{{ .data.bootstrapPassword|base64decode}}{{ "\n" }}'
# uninstalls
helm uninstall rancher -n cattle-system
kubectl delete ns cattle-systemExamples
cert-manager, NGINX
bash
# gets ingress controller public IP
NGINX_PUBLIC_IP=`kubectl get service -n ingress-nginx ingress-nginx-controller --output jsonpath='{.status.loadBalancer.ingress[0].ip}'`
# installs the application
helm upgrade --install rancher rancher-latest/rancher --namespace cattle-system --create-namespace \
--set rancher.replicas=2 \
--set hostname=rancher.${NGINX_PUBLIC_IP}.sslip.io \
--set ingress.extraAnnotations.'cert-manager\.io/cluster-issuer'=letsencrypt-prod \
--set ingress.ingressClassName=nginx \
--set ingress.tls.source=secret \
--set ingress.tls.secretName=rancher-tls