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

75 lines
1.7 KiB
Markdown

# 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]]