Workshop wiki · German and English

15 RuntimeClass für Sandbox-Workloads

Dieses Beispiel ist Teil des containerd-Workshops und folgt dem Format der Kubernetes-Beispiele: ein Haupt-README, Detaildokumentation auf Deutsch, Englisch und Griechisch sowie kleine prüfbare Artefakte.

Workshop examples as ZIP files
Learning progress in the web app

Mark chapters as read, view reading progress and check off practice modules after enabling the optional web app. Workshop progress is calculated from chapters across all document pages. Your choices stay on this device; there is no account or server sync. Installation is not required. Withdrawing your choice in Privacy settings deletes the progress.

Reading progress0%
0%
0 / 11 chapters read
Other language versionGreek ↗

15 RuntimeClass für Sandbox-Workloads

Dieses Beispiel ist Teil des containerd-Workshops und folgt dem Format der Kubernetes-Beispiele: ein Haupt-README, Detaildokumentation auf Deutsch, Englisch und Griechisch sowie kleine prüfbare Artefakte.

1. Ziel

RuntimeClass, Handler und Pod-Referenz werden für Kata/gVisor-ähnliche Isolation modelliert.

Das Beispiel ist als isoliertes Lab oder Modell aufgebaut. Es verändert keine produktive Runtime-Konfiguration und schreibt Laufzeitergebnisse ausschließlich nach work/.

01 / 11

2. Voraussetzungen

  • Linux, WSL, VM oder vergleichbare Testumgebung.
  • python3 für JSON/TOML/YAML-Validierung.
  • Optional containerd, ctr, runc, nerdctl und crictl für zusätzliche Evidence.
  • Keine produktiven Nodes, Registries, Credentials oder Pull Secrets verwenden.
02 / 11

3. Dateien

  • README.md
  • README-EL.md
  • docs/de/README.md
  • docs/en/README.md
  • docs/el/README.md
  • run.sh
  • kubernetes/pod-sandboxed.yaml
  • kubernetes/runtimeclass-sandboxed.yaml
03 / 11

4. Ausführung

bash
cd examples/15-runtimeclass-sandboxed
chmod +x run.sh
./run.sh
find work -maxdepth 3 -type f | sort
04 / 11

5. Erwartetes Ergebnis

  • run.sh endet mit Exit-Code 0.
  • TOML, JSON und YAML werden syntaktisch geprüft.
  • Shell-Skripte werden mit bash -n geprüft.
  • Wenn containerd lokal verfügbar ist, werden Version und optional ctr-Evidence gesammelt.
  • Alle Laufzeitartefakte entstehen unter work/.
05 / 11

6. Erklärung

containerd-Arbeit muss sauber zwischen mehreren Ebenen unterscheiden: Host, containerd-Daemon, API, Content Store, Snapshotter, Runtime, CRI, CNI und Kubernetes. Dieses Beispiel isoliert genau einen Ausschnitt davon und macht die Reviewfragen nachvollziehbar.

06 / 11

7. Typische Fehler

Fehler Ursache Diagnose
ctr zeigt keine Kubernetes-Images falscher containerd-Namespace ctr namespaces ls, ctr -n k8s.io images ls
Pull schlägt fehl Registry, TLS, Auth oder Mirror hosts.toml, Logs, Resolver prüfen
Pod startet nicht CRI, CNI, Snapshotter oder Runtime crictl, journalctl, Events prüfen
Config wirkt korrekt, wird aber ignoriert falsche Plugin-ID oder falscher Pfad containerd config dump, Version prüfen
Disk Pressure Content, Snapshots, Leases oder Logs ctr content ls, ctr snapshots ls, ctr leases ls
07 / 11

8. Sicherheitsaspekte

  • Keine produktiven Sockets, Registry-Credentials oder Cluster-Endpunkte in Labs eintragen.
  • Registry-TLS nicht mit skip_verify = true kaschieren, außer als klar markiertes Negativbeispiel.
  • Sandbox-Runtimes, Seccomp und AppArmor sind zusätzliche Kontrollen, kein Ersatz für sichere Images.
  • Runtime-Konfigurationsänderungen auf Kubernetes-Nodes brauchen Drain, Rollback und Abnahme.
08 / 11

9. Review und Evidence

Eine vollständige Abgabe enthält mindestens:

text
work/evidence/
  tooling.txt
  result.txt
  config-review.txt
  risk-note.md
  cleanup.md

Nicht jede Datei entsteht in jedem Beispiel. Entscheidend ist, dass die Evidence zum Lernziel passt und keine Geheimnisse enthält.

09 / 11

10. Erweiterungsmöglichkeiten

  • Beispiel mit echter Test-Registry erweitern.
  • CRI-Ausgaben aus einem Lab-Node ergänzen.
  • RuntimeClass-Variante für Kata oder gVisor hinzufügen.
  • Image-Verifikation mit Cosign oder Notation als separates Lab ergänzen.
  • Evidence in CI gegen TOML/JSON/YAML validieren.

10 / 11

Beispielanhang: Evidence, Betrieb und Transfer

Dieser Zusatzteil macht das Beispiel als Trainingsbaustein vollständig. Er beschreibt, wie aus einem lokalen Modell eine belastbare Runtime-Analyse entsteht, ohne produktive Nodes oder Zugangsdaten zu berühren.

B.1 Scope bestimmen

Scope bestimmen ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.2 Artefakte validieren

Artefakte validieren ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.3 Runtime-Schicht benennen

Runtime-Schicht benennen ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.4 Kubernetes-Bezug prüfen

Kubernetes-Bezug prüfen ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.5 Security-Grenzen festhalten

Security-Grenzen festhalten ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.6 Rollback formulieren

Rollback formulieren ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.7 Evidence bereinigen

Evidence bereinigen ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.8 Transfer begrenzen

Transfer begrenzen ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.9 Review abschließen

Review abschließen ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.10 Cleanup durchführen

Cleanup durchführen ist für dieses Beispiel notwendig, weil containerd-Labs sonst leicht von einem sicheren Modell zu einer unkontrollierten Node-Änderung werden. Die Bewertung muss klar sagen, ob ein Artefakt nur erklärt, lokal prüft oder auf einem echten Node angewendet würde.

Frage Erwartung
Was ist betroffen? Host, Daemon, Plugin, Content, Snapshotter, Runtime, CRI, CNI oder Kubernetes ist genannt.
Was ist belegt? Eine Datei oder Ausgabe unter work/evidence/ zeigt den Befund.
Was bleibt offen? Voraussetzungen für echte Nodes sind als Grenze dokumentiert.

Reviewpunkte:

  • keine produktiven Secrets
  • keine ungeprüften Socket- oder Systemd-Änderungen
  • keine Registry-Ausnahmen ohne Begründung
  • keine Verwechslung von ctr, crictl und nerdctl
  • Cleanup durch Entfernen von work/ möglich

B.11 Abschluss

Ein Beispiel gilt als fertig, wenn das Skript erfolgreich läuft, alle Modellartefakte syntaktisch gültig sind, die betroffene Runtime-Schicht benannt ist und die Evidence keine vertraulichen Daten enthält.

11 / 11

CTR · Orthevs Academy

31 modules as one continuous learning path.

The sequence remains unchanged: from the lab skeleton through technical foundations and operating models to final troubleshooting. The technical directory names are deliberately preserved.

Orthevs – Engineering the foundation for what comes next.

Orthevs as an app

Install Orthevs

The Orthevs web app can be installed on supported mobile devices and desktop browsers.

iPhone and iPad

Open Orthevs in Safari. Tap Share, then Add to Home Screen. Enable Open as Web App if offered, then tap Add.

Android

For the web app, open the browser menu and choose Install app or Add to Home screen. Confirm the installation.

Desktop browser

Open the browser menu or the install icon in the address bar, then choose Install app or Add to Dock.

Web app installation depends on your browser. If no install prompt appears, follow the browser steps shown above.