initial commit
This commit is contained in:
74
08-Słownik-K8s/RuntimeClass.md
Normal file
74
08-Słownik-K8s/RuntimeClass.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# 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]]
|
||||
Reference in New Issue
Block a user