1.7 KiB
1.7 KiB
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
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
# /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:
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:
# 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