K3s single-node cluster

Single-Node cluster

In een single-node cluster wordt de server-node automatisch schedulable waardoor de workloads op de (enige) server kunnen draaien.

Als voorwaarde om K3s te kunnen draaien, dient de cgroup memory ingesteld te worden. Deze is standaard niet ingezteld dus is een aanpassing nodig in /boot/cmdline.txt (Raspbian) of in /boot/firmware/cmdline.txt (Ubuntu). Voeg de volgende tekst toe achteraan de reeds bestaande regel:

cgroup_memory=1 cgroup_enable=memory

Een herstart is hierna nodig!

De installatie van een single-node cluster met K3S kan met de volgende commando’s uitgevoerd worden:

$ sudo -i
# wget https://github.com/k3s-io/k3s/releases/download/v1.21.2%2Bk3s1/k3s
# chmod +x ./k3s
# mv ./k3s /usr/local/bin/k3s
# k3s server &

Inplaats van de k3s-server met een commando op te starten, kun je K3S ook via systemd laten runnen (autostart) en daarvoor wordt dan een installatie-script gebruikt:

$ sudo -i
# curl -sfL https://get.k3s.io | sh -

Om te controleren of de server draait kan het volgende commando gebruikt worden:

# k3s kubectl get nodes
NAME             STATUS   ROLES                  AGE     VERSION
ubuntu-desktop   Ready    control-plane,master   5m22s   v1.21.2+k3s1
# k3s kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   local-path-provisioner-5ff76fc89d-6k9zh   1/1     Running     0          5m45s
kube-system   metrics-server-86cbb8457f-vhd6k           1/1     Running     0          5m45s
kube-system   coredns-7448499f4d-dz52l                  1/1     Running     0          5m45s
kube-system   helm-install-traefik-crd-77bqk            0/1     Completed   0          5m45s
kube-system   helm-install-traefik-wclst                1/1     Running     1          5m45s

Remote installatie van K3S m.b.v. k3sup

Met behulp van k3sup (https://k3sup.dev) kan een K3S installatie uitgevoerd worden over ssh met als voordeel dat een kubeconfig bestand wordt gegenereerd op de lokale host:

$ k3sup install --ip {server_ip}

Zie verder de demo op de site van k3sup.