commit 320f7937c87f044dd4f0a813cc61fcfa24d2409a Author: Elouin Date: Thu Jan 30 15:18:16 2025 +0100 init diff --git a/README.md b/README.md new file mode 100644 index 0000000..7ae4fde --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +"Linux native Container mit Podman und system" talk fuer das Kassel Code Meetup. + +Gebaut mit [Marp](https://marp.app). diff --git a/podmantalk.html b/podmantalk.html new file mode 100644 index 0000000..67cd177 --- /dev/null +++ b/podmantalk.html @@ -0,0 +1,148 @@ +
+

Linux native Container mit Podman und systemd

+
+
+

Was ist Podman

+
    +
  • Container management tooling
  • +
  • Daemonless
  • +
  • Rootless möglich
  • +
  • Docker API kompatibel
  • +
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

Was ist systemd

+
    +
  • Primär init system
  • +
  • Resourcen werden in Unit files definiert
  • +
  • Verschiedene Alternative für Systemtools +
      +
    • journal
    • +
    • resolved
    • +
    • timesyncd
    • +
    +
  • +
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

Was sind systemd generators

+
    +
  • Executables welche Units rendern
  • +
  • Werden beim Start und daemon-reload ausgeführt
  • +
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

Quadlet

+
    +
  • systemd generator von Podman
  • +
  • Wandelt Podman eigene Units in systemd konforme
  • +
  • Kann auch Kubernetes Manifeste lesen
  • +
  • Schaut in verschiedenen Pfaden nach Dateien +
      +
    • /etc/containers/systemd/
    • +
    • ~/.config/containers/systemd/
    • +
    • ...
    • +
    +
  • +
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

test.container

+
[Unit]
+Description=A minimal container
+
+[Container]
+Image=quay.io/centos/centos:latest
+Exec=sleep 60
+Volume=test.volume:/data
+
+[Service]
+TimeoutStartSec=900
+
+[Install]
+WantedBy=multi-user.target default.target
+
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

test.volume

+
[Volume]
+User=root
+Group=root
+Label=org.test.Key=value
+
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

test.network

+
[Network]
+Subnet=172.16.0.0/24
+Gateway=172.16.0.1
+IPRange=172.16.0.0/28
+Label=org.test.Key=value
+
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

Demonstration

+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

Fazit / Warum

+
    +
  • Klare Struktur
  • +
  • Sehr nah am System und den restlichen Services
  • +
  • Autoupdates
  • +
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+

Vielen Dank für die Aufmerksamkeit!

+
    +
  • Fragen
  • +
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+
+
Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025
+
+

- Kurze Vorstellung. +- init systeme können wie Editors ein sehr emotional schweres Thema sein. Bitte Diskussionen nach dem Talk. +- Geht auchähnlich mit anderen toolings wie Guix, heute aber Fokus auf systemd.

- Weitere Features wie: integrierte Autoupdates, Pods und auch Desktop Anwendung +- Entwickelt von Redhat +- Keine "Enterprise Edition" +- Nutzt crun als runtime

- Unit files beschreiben unter anderem: + - service + - socket + - timer + - etc +- Vereinheitlicht viel wie z.B. das log handling. +- Bei den meisten Linux Distributionen das default init system + - Debian + - RHEL, Fedora + - SUSE + - Arch + - etc

- Units werden bei jedem Aufruf neu generiert

- Eingeführt in Podman 4.4 + - In Debian Stable aktuell noch 4.3, also kein Quadlet support

- Container Section bietet fast alle Möglichkeiten, welche auch die CLI als Options bietet + - oder halt compose etc +- Timeout wichtig, damit genug Zeit um image zu pullen +- Kann einen schnell mal ins dockerhub ratelimit werfen, wenn z.B. Architektur nicht vorhanden.

- Kann genauso wie bei Networks eine leere Datei sein

- Kann genauso wie bei Volumes eine leere Datei sein

- Klare Struktur heisst, die Dateien haben klar vordefinierte Verzeichnisse, nicht wie bei docker compose wilder Westen +- Verwaltung per systemctl und logs per journalctl +- In kombination mit MicroOS sind autoupdates sehr nice +- Man kann sich mit MicroOS und Podman, "stateless appliance" basteln

\ No newline at end of file diff --git a/podmantalk.md b/podmantalk.md new file mode 100644 index 0000000..95a0fc5 --- /dev/null +++ b/podmantalk.md @@ -0,0 +1,174 @@ +--- +marp: true +paginate: true +author: Max +theme: gaia +footer: 'Linux native Container mit Podman und systemd | Max | Kassel Code Meetup 29.01.2025' +--- + + + + + +# Linux native Container mit Podman und systemd + + + +--- + +# Was ist Podman + +* Container management tooling +* Daemonless +* Rootless möglich +* Docker API kompatibel + + + +--- + +# Was ist systemd + +* Primär init system +* Resourcen werden in Unit files definiert +* Verschiedene Alternative für Systemtools + - journal + - resolved + - timesyncd + + + +--- + +# Was sind systemd generators + +* Executables welche Units rendern +* Werden beim Start und `daemon-reload` ausgeführt + + + +--- + +# Quadlet + +* systemd generator von Podman +* Wandelt Podman eigene Units in systemd konforme +* Kann auch Kubernetes Manifeste lesen +* Schaut in verschiedenen Pfaden nach Dateien + - /etc/containers/systemd/ + - ~/.config/containers/systemd/ + - ... + + + +--- + +`test.container` + +``` +[Unit] +Description=A minimal container + +[Container] +Image=quay.io/centos/centos:latest +Exec=sleep 60 +Volume=test.volume:/data + +[Service] +TimeoutStartSec=900 + +[Install] +WantedBy=multi-user.target default.target +``` + + + +--- + +`test.volume` + +``` +[Volume] +User=root +Group=root +Label=org.test.Key=value +``` + + + +--- + +`test.network` + +``` +[Network] +Subnet=172.16.0.0/24 +Gateway=172.16.0.1 +IPRange=172.16.0.0/28 +Label=org.test.Key=value +``` + + + +--- + +# Demonstration + +--- + +# Fazit / Warum + +* Klare Struktur +* Sehr nah am System und den restlichen Services +* Autoupdates + + + +--- + +# Vielen Dank für die Aufmerksamkeit! + +- Fragen + +---