Files
obsidian-sympozium/08-Słownik-K8s/RuntimeClass.md
2026-03-25 00:05:57 +01:00

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