K3s met Rancher Manager

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.