Voor Rancher Manager zijn een aantal onderdelen nodig:
- Certificate Manager
- Cluster Issuer
- Rancher Manager
Maak met ssh een sessie naar de (master) node van het cluster.
De KubeConfig file voor dit cluster wordt vervolgens gebruikt met het volgende commando:
$ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml
Cert-manager
Cert-Manager werkt met CRD’s (Custom Resource Definitions) en die worden eerst geladen en daarna kan via Helm de Cert-Manager deployment gestart worden:
$kubectl create namespace cert-manager
$kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.6.2/cert-manager.yaml
ClusterIssuer
Vervolgens maken we een ClusterIssuer om certificaten via Let’s Encrypt op te kunnen halen. Het manifest clusterissuer.yaml ziet er alsvolgt uit:
apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-staging spec: acme: email: <hier_komt_jouw_emailadres@domain.com> server: https://acme-staging-v02.api.letsencrypt.org/directory privateKeySecretRef: name: acme-issuer-account-key solvers: - http01: ingress: class: nginx
Invoeren met:
$ kubectl apply -f clusterissuer.yaml
Rancher Manager
Hierna kan de Rancher Manager geïnstalleerd worden. Allereerst een Helm repository toevoegen met:
$helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
$helm repo update
en hierna kan het eigenlijke werk beginnen. Voor de eenvoud van geldige cerificaten maak ik hier gebruik van LetsEncrypt en daarvoor zijn de extra parameters voor helm aan het eind van dit commando. Zorg er wel voor dat de hostname ge-resolved kan worden via DNS en gebruik een echt email-adres.
$ helm install rancher rancher-stable/rancher \
--namespace cattle-system \
--create-namespace \
--set hostname=server.domain.com \
--set ingress.tls.source=letsEncrypt \
--set letsEncrypt.email=youremail@domain.com
En het resultaat zou dan iets als dit moeten zijn:
NAME: rancher LAST DEPLOYED: Wed Dec 27 18:32:53 2020 NAMESPACE: cattle-system STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: Rancher Server has been installed. NOTE: Rancher may take several minutes to fully initialize. Please standby while Certificates are being issued and Ingress comes up. Check out our docs at https://rancher.com/docs/rancher/v2.x/en/ Browse to https://server.domain.com Happy Containering!
Browse nu naar de URL zoals ingesteld en log in als Admin met het initiële wachtwoord voor de Admin gebruiker dat tijdens de installatie is aangemaakt als secret in de cattle-system namespace.