K3s
K3s ist der Kubernetes-Distribution, die auf Janus läuft - leichtgewichtig und für Arm64 optimiert.
K3s-Architektur
Section titled “K3s-Architektur”graph TB
subgraph Janus ["Janus Server"]
K3sBinary["K3s Binary<br/>(stable channel)"]
subgraph Components ["K3s Komponenten"]
APIServer["API Server"]
Scheduler["Scheduler"]
ControllerMgr["Controller Manager"]
Kubelet["Kubelet"]
Etcd["etcd (SQLite)"]
end
subgraph Disabled ["Deaktiviert"]
Traefik["Traefik Ingress ✗"]
end
subgraph Added ["Hinzugefügt"]
IngressNginx["ingress-nginx ✓"]
CertManager["cert-manager ✓"]
FluxAgent["Flux ✓"]
end
end
K3sBinary --> APIServer
APIServer --> Etcd
Kubelet --> ControllerMgr
Scheduler --> APIServer
IngressNginx --> APIServer
CertManager --> APIServer
FluxAgent --> APIServer
Installation
Section titled “Installation”K3s wird über das offizielle Installations-Skript installiert:
curl -sfL https://get.k3s.io | sh -s - server \ --tls-san janus.ciss.digital \ --disable traefik \ --write-kubeconfig-mode 0600- Channel:
stable - Traefik: Deaktiviert (ingress-nginx wird stattdessen verwendet)
- Single-Node: Taint wird entfernt (Workloads laufen auf dem einzigen Node)
Single-Node Setup
Section titled “Single-Node Setup”Da Janus ein Single-Node-Cluster ist, wird der NoSchedule-Taint entfernt:
- name: Remove single-node taint command: k3s kubectl taint nodes --all node-role.kubernetes.io/control-plane-Pod Security Standards
Section titled “Pod Security Standards”Namespaces verwenden Pod Security Standards (PSS):
apiVersion: v1kind: Namespacemetadata: name: test labels: pod-security.kubernetes.io/enforce: restricted pod-security.kubernetes.io/audit: restricted pod-security.kubernetes.io/warn: restrictedNützliche Befehle
Section titled “Nützliche Befehle”# K3s-Statusk3s kubectl get nodesk3s kubectl get pods -A
# Logsjournalctl -u k3s -f
# Service-Statussystemctl status k3s