Skip to content

K3s

K3s ist der Kubernetes-Distribution, die auf Janus läuft - leichtgewichtig und für Arm64 optimiert.

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

K3s wird über das offizielle Installations-Skript installiert:

Terminal window
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)

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-

Namespaces verwenden Pod Security Standards (PSS):

apiVersion: v1
kind: Namespace
metadata:
name: test
labels:
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/warn: restricted
Terminal window
# K3s-Status
k3s kubectl get nodes
k3s kubectl get pods -A
# Logs
journalctl -u k3s -f
# Service-Status
systemctl status k3s