# RuntimeClass #kubernetes #security #container-runtime #słownik ## Co to jest? **RuntimeClass** to zasób Kubernetes pozwalający na **wybór container runtime** dla poda. Domyślnie pody używają standardowego runtime (runc), ale RuntimeClass pozwala na użycie alternatywnych runtime'ów jak [[gVisor]] (runsc) czy [[Kata Containers]]. ## Jak działa? ``` 1. Administrator tworzy RuntimeClass 2. Pod spec: runtimeClassName: gvisor 3. Kubelet: zamiast runc, użyj runsc (gVisor) 4. Pod uruchamiany w gVisor sandbox ``` ## Przykład ```yaml apiVersion: node.k8s.io/v1 kind: RuntimeClass metadata: name: gvisor handler: runsc # Nazwa handler'a w konfiguracji containerd --- apiVersion: node.k8s.io/v1 kind: RuntimeClass metadata: name: kata handler: kata-qemu ``` ## Containerd konfiguracja ```toml # /etc/containerd/config.toml [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runsc] runtime_type = "io.containerd.runsc.v1" [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.kata-qemu] runtime_type = "io.containerd.kata.v2" ``` ## Overhead scheduling RuntimeClass może deklarować overhead: ```yaml overhead: podFixed: memory: "120Mi" cpu: "250m" ``` Kubernetes scheduler uwzględnia overhead przy planowaniu. ## Użycie w Sympozium Sympozium obsługuje RuntimeClass przez [[Agent Sandbox - gVisor i Kata]]: ```yaml # SympoziumPolicy - wymusza i ogranicza runtime classes agentSandboxPolicy: required: true defaultRuntimeClass: gvisor allowedRuntimeClasses: [gvisor, kata] ``` Controller tworzy Sandbox CR z `runtimeClassName` ustawionym z konfiguracji. --- Powiązane: [[gVisor]] | [[Kata Containers]] | [[Agent Sandbox - gVisor i Kata]]