# Pentaradio vom 24. Mai 2022 # Titel: "Standardisierte 40-Fuß-Programmpakete" Mit Mole, ttimeless und Xyrill. Die News verleiten uns zu der Frage, ob der vorgeschlagene Standard zum Login durch Telefon stattdessen zum Lock-In durch Telefonhersteller werden könnte. Im Thema gehen wir zurück zu Xyrills erstem Auftritt vor knapp vier Jahren zum Thema "Cloud Computing", und tauchen in die Welt der Container-Virtualisierung mit Docker und Kubernetes ein. (Aufgezeichnet am 15. Mai 2022.) ## News * Digital Markets Act: [Apple soll verpflichtet werden, auch andere Browser-Engines als Webkit zuzulassen](https://www.mactechnews.de/news/article/Regulierung-mit-weitreichenden-Konsequenzen-Was-sich-fuer-Apple-und-Kunden-konkret-aendern-soll-180026.html) * Führt das zu mehr Wettbewerb auf iOS? Oder wird es nur dazu beitragen, dass alle auch dort auf Chrome wechseln und Blink noch mehr zum De-Facto-Standard wird? * Gemeinsame Initative von Microsoft, Google und Apple: [Login mit Telefon soll Passwörter ersetzen](https://krebsonsecurity.com/2022/05/your-phone-may-soon-replace-many-of-your-passwords/) * Das wird tatsächlich ein Sicherheitsgewinn sein für die Massen von Leuten, die überall dasselbe 8-Buchstaben-Passwort wiederverwenden. Aber es erhöht auch den Lock-In in Smartphones. Man kann bei FIDO zwar auch nen Yubikey, Nitrokey oder dergleichen nehmen, aber die restlichen 99% aller Nutzer\*innen werden dann nur eine falsche KI-Entscheidung vom kompletten Lockout aus ihrer digitalen Identität entfernt sein. * [EU-Kommission legt Gesetzentwurf zu Chatkontrolle vor](https://netzpolitik.org/2022/eu-plaene-einfach-erklaert-warum-die-chatkontrolle-grundrechte-bedroht/) * "Anbieter von Hosting- oder interpersonellen Kommunikationsdiensten" sollen alle Kommunikation auf sexuellen Missbrauch von Kindern oder der Anbahnung desselben ("Cyber-Grooming") durchsuchen, und Verdachtsfälle an Strafverfolger weitergeben. All dies unter Umgehung jeglicher privatsphäre-schützender Techniken wie Ende-zu-Ende-Verschlüsselung. * [Kritische Stimmen](https://netzpolitik.org/2022/massenueberwachung-vernichtende-kritik-fuer-die-chatkontrolle-aus-verbaenden-und-politik/): * "weder verhältnismäßig noch zielführend" (Deutscher Kinderschutzbund) * "größte europäische Datenüberwachung aller Zeiten" (Deutscher Journalisten-Verband) * "die ausgeklügelteste Massenüberwachungs-Maschinerie, die je außerhalb Chinas und der Sowjetunion ausgerollt wurde. Keine Übertreibung." (Matthew Green, Sicherheitsforscher) * "Die EU will Video-Telefonate mit Ihren Kindern nach potentiellem Missbrauch durchleuchten. Wenn Sie als Elternteil auf Geschäftsreisen gehen, sollten sie sehr besorgt sein, wer alles ihre Familienrituale ausspäht." (Alec Muffett, Kryptograf) * "Kinder werden durch mehr Personal für Ermittler\*innen und Jugendschutz geschützt, nicht durch systematisches Ausspionieren." (Alexandra Geese, MdEP, Bündnis 90/Grüne) * "Wir müssten die Befürworter von #Chatkontrolle mal ganz direkt fragen, wer genau es übernehmen soll, in den privaten Chats von Heranwachsenden heimlich herumzuschnüffeln, wenn da eine dubiose 'KI' Anzeichen für 'Grooming' erkannt haben will." ([Florian Gallwitz](https://twitter.com/FlorianGallwitz/status/1525538113166233601), Professor für Medieninformatik) * siehe auch: * [Logbuch Netzpolitik Folge 429](https://logbuch-netzpolitik.de/lnp429-endlich-sind-wir-am-anfang-angekommen) mit Patrick Breyer (MdEP, Piratenpartei) * [Pädokriminelle Foren: Warum löscht niemand die Aufnahmen? | STRG_F](https://www.youtube.com/watch?v=iItLpwkQMUQ) * Kommentar: Uns fehlt (einerseits durch Sprachbarrieren, aber auch durch die alteingesessenen Prozesse der Medien und Zivilgesellschaft) eine europäische Öffentlichkeit. Der Gesetzgebungsprozess auf EU-Ebene muss stärker einer gesellschaftlichen Kontrolle unterlegen, damit wir nicht jedes Mal panisch mobilisieren müssen, wenn derart absurde Gesetzentwürfe dann auf dem Tisch liegen. * Fundstück des Monats: ["Linux Insides"](https://0xax.gitbooks.io/linux-insides/content/), ein frei verfügbares Buch über die Interna des Linux-Kernels * Am 25. Mai ist [Towel Day](https://de.wikipedia.org/wiki/Towel_Day). Vergesst euer Handtuch nicht und "Don't Panic". ## Musik * (CC-BY-NC laut Fußnote) ## Thema: Container/Kubernetes Als Auskopplung aus einer kommenden Folge des [Schlüsseltechnologie-Podcasts](https://schluesseltechnologie-podcast.de). * [Container](https://de.wikipedia.org/wiki/Containervirtualisierung): isolierte Umgebungen innerhalb eines OS, aus denen Programme im Allgemeinen nicht ohne weiteres ausbrechen können * Vorteil gegenüber virtuellen Maschinen (VM): ressourcenschonender (nur ein Kernel für alle), Container starten schneller als VM (kein Boot eines Gast-Kernels notwendig) * Nachteil gegenüber VM: Isolation zwischen Containern ist potentiell löchriger als zwischen VMs (deswegen normalerweise Isolation von Containern verschiedener Kunden in getrennten VMs) * unter Unix ab ca. 2000: FreeBSD Jails ab 1999, Virtuozzo/OpenVZ (unter Linux mit Kernel-Patch) ab 2000, Solaris Zones ab 2005, LXC (Linux Containers) ab 2008 * Basistechnologien zur Realisierung von Container-Virtualisierung unter Linux * [Cgroups (control groups)](https://en.wikipedia.org/wiki/Cgroups) (seit 2007): Gruppierungsmechanismus für Prozesse, der die Einschränkung gewisser OS-Ressourcen (CPU-Zeit, Prozess-Priorität, Arbeitsspeicher-Menge, zugreifbare Syscalls) erlaubt, ohne dass Prozesse daraus ausbrechen können * [Linux Namespaces](https://en.wikipedia.org/wiki/Linux_namespaces) (seit 2002): unterschiedliche voneinander isolierte Perspektiven auf bestimmte OS-Ressourcen, zwischen denen privilegierte Prozesse nach Bedarf wechseln können * Mount Namespace: beschreibt verfügbare Dateisysteme * PID Namespace: beschreibt verfügbare Prozess-Nummern (damit kann ein Container wieder bei PID 1 anfangen) * Network Namespace: beschreibt verfügbare Netzwerkgeräte * User ID Namespace: beschreibt verfügbare User-IDs und Group_IDs (damit ist User `root` im Container etwas anderes als der "echte" User `root`) * etc. * [Docker](https://en.wikipedia.org/wiki/Docker_(software)) (ab 2013): nicht die erste, nicht die letzte, aber die einflussreichste Container-Lösung für Linux * Fokus auf Reproduzierbarkeit von Laufzeitumgebungen durch Abbilder (Images) von Container-Dateisystemen * eine von mehreren Lösungen für Reproduzierbarkeit, siehe [Pentaradio zu Nix(OS) vom Februar 2020](https://c3d2.de/news/pentaradio24-20200225.html) * [Beispiel: Dockerfile für ein Redis-Image](https://github.com/docker-library/redis/blob/d01d0c39a1f5b1af9fcf3646d3dd3935eae73e76/7.0/alpine/Dockerfile) * [Kubernetes](https://en.wikipedia.org/wiki/Kubernetes) (ab 2014): nicht der erste, nicht der letzte, aber der einflussreichste Container-Orchestrator * Idee: statt festen Rollenzuweisungen für Server (z.B. "der Datenbank-Server" oder "der Mail-Server") ein Haufen möglichst gleichförmiger Server, zwischen denen konkrete Applikationen je nach Bedarf verschoben werden können * Vorteile bis hierhin: Toleranz gegenüber den meisten Hardwarefehlern, flexible Ressourcenverteilung je nach aktueller Systemlast * Meine Meinung: Wenn es nur darum geht, kann man diese Vorteile auch anders einfacher haben. * technische Struktur von Kubernetes: eine zentrale Datenbank für Konfigurationsobjekte mit vorgeschalteter API; dazu eine riesige Flotte unabhängiger Steuerungsprozesse (**Controller**), die einzelne Teile der Clusterlogik abbilden; und auf jedem beteiligten Server ein **Kubelet**, dass die zugewiesenen Container in einer lokal laufenden Container-Engine wie Docker startet und überwacht * Controller kommen entweder als Teil von Kubernetes selbst, oder als Third-Party-Erweiterungen (**Operatoren**) * [Beispiel: Kubernetes-Deklaration für eine MySQL-Instanz](https://github.com/kubernetes-sigs/kustomize/tree/1cf5b00af804f3a78e8f68f8c4678a4798e653ee/examples/mySql) * Beispiel (vereinfacht) für Zusammenspiel verschiedener Operatoren 1. User deklariert über die API ein ReplicaSet ("ich möchte drei Instanzen vom folgenden Wordpress-Container") 2. ReplicaSet-Controller legt anhand der Vorlage drei Pods an, die diesen Container enthalten 3. Scheduling-Controller weist die angelegten Pods zu Servern zu 4. Kubelets auf den entsprechenden Servern starten die notwendigen Container z.B. in Docker * Kubernetes hat sehr partikulare Anforderungen an die Struktur des Netzwerks und des Storages innerhalb eines Clusters * Hauptvorteile von Kubernetes: * standardisierte Schnittstellen: neue Komponenten für Enterprise-IT werden zunehmend gleich als Kubernetes-Operator gebaut und können nicht außerhalb von Kubernetes betrieben werden * organisationelle Entkopplung: Betrieb der Serverhardware plus OS plus Kubernetes kann fast komplett vom Betrieb der darauf laufenden Software unabhängig gemacht werden, sodass die entsprechenden Abteilungen nicht eng zusammenarbeiten müssen * Meine Meinung: Wenn das die Probleme sind, mit denen die eigene IT zu kämpfen hat, ist Kubernetes wahrscheinlich eine gute Idee. Man sollte aber sehr genau überlegen, ob diese Vorteile so signifikant sind, dass sie die Komplexität eines Kubernetes-Deployments aufwiegen. ___ Glossar: * [adjazent](https://de.wiktionary.org/wiki/adjazent) * [eBPF](https://en.wikipedia.org/wiki/Berkeley_Packet_Filter) * [NTP](https://en.wikipedia.org/wiki/Network_Time_Protocol) * [PHP-FPM](https://www.php.net/manual/de/install.fpm.php) * [vSphere](https://www.vmware.com/de/products/vsphere.html) * [Ansible](https://www.ansible.com/) * [Backscatter](https://de.wikipedia.org/wiki/Backscatter)