K3S jest wyjątkowo małą i lekką wersją Kubernetes, którą można zainstalować nawet na Raspberry Pi 4. Spośród sprawdzonych przeze mnie innych rozwiązań takich jak minikube oraz kubespray, to k3s wydaje się najłatwiejszy w instalacji.
Architektura rozwiązania
Instalacja
Do zainstalowania k3s wystarczy 1 polecenie:
curl -sfL https://get.k3s.io | sh
Po instalacji
[seba@homelab ~]$ sudo systemctl status k3s
k3s.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-01-11 12:17:30 CET; 41min ago
Docs: https://k3s.io
Process: 405 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
Process: 407 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
Main PID: 410 (k3s-server)
Tasks: 80
Memory: 712.0M
CGroup: /system.slice/k3s.service
├─ 410 /usr/local/bin/k3s server
├─ 737 containerd -c /var/lib/rancher/k3s/agent/etc/containerd/config.toml -a /run/k3s/containerd/containerd.sock --state /run/k3s/containerd --root /var/lib/rancher/k3s/agent/containerd
├─1322 /var/lib/rancher/k3s/data/4cfa2251faf52b23038d5e3f7f522a7d6e997d454addc5be415db7608bd57b38/bin/containerd-shim-runc-v2 -namespace k8s.io -id 179fe7f60db1ccbedd4bde228e7f8faf7aae2911f6e241407>
├─1325 /var/lib/rancher/k3s/data/4cfa2251faf52b23038d5e3f7f522a7d6e997d454addc5be415db7608bd57b38/bin/containerd-shim-runc-v2 -namespace k8s.io -id bd7a03339357c187009e539b6ffcbb7dca3f33c5b838357dd>
├─1333 /var/lib/rancher/k3s/data/4cfa2251faf52b23038d5e3f7f522a7d6e997d454addc5be415db7608bd57b38/bin/containerd-shim-runc-v2 -namespace k8s.io -id 8b33daac531739a6075e9bbf679b78b790b4527e55f783636>
├─1334 /var/lib/rancher/k3s/data/4cfa2251faf52b23038d5e3f7f522a7d6e997d454addc5be415db7608bd57b38/bin/containerd-shim-runc-v2 -namespace k8s.io -id 6c806d274fca717a9e04a751312c94789c5db2a33228ec546>
├─1406 /pause
├─1414 /pause
├─1421 /pause
├─1428 /pause
├─2841 local-path-provisioner start --config /etc/config/config.json
├─2954 /metrics-server
└─3181 /coredns -conf /etc/coredns/Corefile
[seba@homelab ~]$ sudo kubectl get node
NAME STATUS ROLES AGE VERSION
homelab Ready master 5d14h v1.16.3-k3s.2
Dostęp zdalny do klastra
W przypadku chęci uzyskania dostępu zdalnego, konieczne będzie wykorzystanie konfiguracji dla kubectl
z pliku /etc/rancher/k3s/k3s.yaml
.
Inne ciekawe materiały
Na temat k3s można znaleźć informacje również np. na blogu kaluzny.io.