Erfahrungen mit Kubernetes?

Ich habe am Wochenende mal einen näheren Blick auf Kubernetes geworfen und das, was ich in diversen Talks auf YouTube dazu gesehen habe (u. a. von Kelsey Hightower), war recht interessant.
Hat jemand von euch schon Erfahrungen mit Kubernetes machen können? Vielleicht könnte man das auch für Freifunk nutzen, in größeren Communitys sind ja typischerweise mehrere (v)Server vorhanden.

Kubernetes ist ja nur „ein“ Orchestrator für Container.

Container mit Kernel Modulen möchte man definitiv nicht benutzen,daher sind Supernodes auf Container Basis
keine gute Lösung. Selbst ein simples NFS Kernel Modul in einem Container, kann den kompletten Host inkl. aller Container die darauf laufen abschießen, und was bei Batman alles schief gehen kann möchte man sicherlich nicht auf einem Container Host.

Gruß

Die Virtualisierung hat hat so viele Spielarten wie es Linux-Distributionen gibt.

Und ja, ich kenne Leute, die haben ernsthaft Batman in LXC gefahren… Vermutlich wird sich auch jemand finden, der das mit Virtuzzo gewagt hat.
Und am Port von Batman auf FreeBSD wird dem Vernehmen nach auch noch gearbeitet. Und dann wird sich auch jemand finden, der das dort in eine Jail packt.

Aber im Ernst, als Zukunftsmusik wollen wir ja zu Babel, d.h. wir kommen ohne semi-proprietäre Kernelmodule aus.

Was einem (LXC-User werden es kennen) auf die Füße fallen kann sind Speicherlecks in den Containern, die bis ins Wirtssystem durchschlagen und auch durch Container-Restart nicht zu beheben sind.
Ist natürlich selten, aber natürlich auch ärgerlich. Umgekehrt gibt es auch jede Menge Dinge, die bei einem KVM/qemu schief gehen können, die dann doch wieder ein Host-Restart nötig machen. Zum beispiel wenn vmbr-Bridges wilden Paketverlust produzieren und man sich nur mit einem Reboot zu helfen weiss.

Was die Orchestrierung anbelangt: Im Freifunk scheitern wir meist daran, dass wir völlig zusammengestückelte Serverlandschaften haben, respektive „Geschenkte Gäule“ in Form von unterschiedlichen Blechen bei verschiedenen Hostern (mit unterschiedlichem Handling der Failover-IPs und IPv6-Adresszuweisung), oder noch schlimmer einzelne geschenkte VMs.

Da baut man dann Orchestrierung mit egal was (chef, salt, ainsible, ggf noch vagran oben drauf), aber nicht um das dann auf einem Dutzend identischen Hosts zu auszurollen, sondern man konfiguriert doch „passend“ einzelne Maschinen. Nur halt in einem zentralen Config-Management (was ja auch nicht verkehrt ist, zumal man das „stateless“ gratis dazu bekommt.)

Will sagen: Ja, man kann dabei sehr viel lernen. Eine Arbeitserleichterung ist es jedoch eher weniger.
Zumindest nicht, wenn man nicht zentral 10+ Communities auf einmal maintained.
Wenn man das für 2-3 Communities (oder 5-10 zusammengestückelte Supernodes) tut, dann ist es eher um

  • mehr Spass am Frickeln dabei zu haben
  • Einstiegshürden für Nachwuchsadmins aufzubauen.

(zumindest ist das meine Beobachtung. Wobei ich nicht sagen werde, wo ich Vorsatz unterstelle.)

Zum Kubernets: Ich bin unschlüssig, sehr unschlüssig. Meinem Eindruck nach, wird da wieder versucht, ein noch runderes Rad zu erfinden. So wie bei Sony, die jahrelang den noch besseren Mememorystick (der besser ist als SD und CF zusammen) erfunden hat… jedes Jahr ein neuer Anlauf.

Im Bezug auf Babel, könnte man noch einmal darüber Nachdenken,
aber aus eigener Erfahrung im Beruflichen Umfeld kann ich nur von
Kernel Modulen in Containern abraten.

Machen kann man vieles, ob man es tun sollte steht auf einem anderen Blatt :slight_smile:

Wobei es sicherlich schöner wäre Supernodes als Container zu betreiben,
da sehr viel Overhead weg fällt, und man die Server kleiner Dimensionieren kann.

2 Likes

Ich weiss zwar gerade nicht, wieviele Tunnel man mit Wireguard auf einem Kernel hinbekommt, aber wenn man wirklich „mit Babel nur noch routet“, dann braucht es meiner Auffassung nach auch kein Container, sondern nur mehr IP-Tables-Tabellen (wenn man mehrere Communities auf einem „Dicken“ laufen lassen möchte), plus irgendwas in Ainsible, um diese Tabellen zu pflegen.

Ja, leider alles keine Erfahrung mit Kubernets.
Aber fernab von „Web/Cloudservices“ sehe ich dafür gerade wirklich keine passende Anwendung.

Ich sehe da im Freifunk-Kontext einige:

  • Webseite und Forum
  • Datenbank(en)
  • Graphite / Prometheus
  • Grafana
  • Knotenkarte
  • Mumble-Server
  • Jenkins

All das ließe sich auch in Kubernetes abbilden. Man bekommt eine höhere Ausfallsicherheit (= weniger Downtimes), kann im laufenden Betrieb neue Versionen der entsprechenden Services ausrollen (und bei Problemen auch wieder zurückrollen), Server warten, ohne, dass es zu Unterbrechungen kommt, bekommt Load-Balancing usw…
Das ist nichts, was man „mal eben so“ umsetzen kann, aber ich sehe da Potenzial und denke, es lohnt sich, das mal näher zu betrachten. Die nötigen Ressourcen sind meistens ja bereits vorhanden.

2 Likes