Replica in Docker Swarm bereinigen

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Jetzt wo Synology die Docker Engine geupdated hat und nun auch Docker Swarm unterstützt, habe ich mal wieder Spaß beim Tüfteln gefunden.
Frage an die Experten: Wenn innerhalb eines Services ein Replica wegbricht, bleibt diese als Artefakt bestehen. Hier im Beispiel beim Plex Orchestrator:
Bild_2024-06-03_202332247.png

Wie kriege ich die denn am besten bereinigt? Gibt es da einen zentralen Befehl für den gesamten Service bzw. dem Swarm-Cluster?

P.S.: Wer sich fragt, was ich treibe: Ich versuche die Last beim Transkodieren besser zu verteilen. Weil meine RS1221+ keine Hardware-Transkodierung kann, stößt die immer mal wieder an ihre Grenzen, wenn Familie und Freunde am Streamen sind. https://github.com/pabloromeo/clusterplex/
https://github.com/pabloromeo/clusterplex/
 
  • Like
Reaktionen: ctrlaltdelete

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Das ist die Swarm Service Task History. Da Swarm Services Rolling Updates unterstützen, kann man hierüber bei gescheiterten Update ein automatisches Revert auf eine vorherige funktionsfähige Konfiguration einstellen.

Per Default müsste die Task History die aktuellsten 5 Konfigurationen enthalten. Man kann sie mit dem Befehl docker swarm update --task-history-limit 0 (ausgeführt auf einem Master Node) entsprechend auf 0 setzen.
 
  • Like
Reaktionen: Ulfhednir

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Noch eine nutzlose Info am Rande: nicht wundern das Portforwarding nicht an den Service Tasks (=den Container) angezeigt wird. Die Kleben bei Swarm Services nämlich am Service selbst, der wiederum eine eigene virtuelle IP hat und per Round-Robin an die Service Task Replicas verteilt.
 
  • Like
Reaktionen: Ulfhednir

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
P.S.: Wer sich fragt, was ich treibe: Ich versuche die Last beim Transkodieren besser zu verteilen. Weil meine RS1221+ keine Hardware-Transkodierung kann, stößt die immer mal wieder an ihre Grenzen, wenn Familie und Freunde am Streamen sind. https://github.com/pabloromeo/clusterplex/
https://github.com/pabloromeo/clusterplex/
Magst Du hier in den nächsten Wochen und Monaten Deine Langzeiterfahrung dazu teilen? Ich hab es früher mal ausprobiert, hab dann aber aufgegeben, als ständig irgendwas nicht mehr ging - dabei hatte ich VERSION schon von latest auf docker umgestellt.

Dazu muss man übrigens nicht zwingend Swarm einsetzen. Ich hatte es verteilt auf zwei unabhängigen Docker Nodes laufen.
 
  • Like
Reaktionen: Ulfhednir

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
@haydibe eine kleine Story kann ich auch jetzt schon berichten. Bei der Installation hatte ich vor ein paar Tagen meine Schwierigkeiten. Erstmal funktionieren die Dockermods bei mir nicht. Ich verwende daher das Clusterplex-Image von pabloromeo. Aber auch damit ging es weiter:
Ständig war die interne Plex-DB beschädigt und der Container startete nicht.
Habe dann festgestellt, dass die Probleme dann auftraten, wenn das QNAP(Slave) den Plex-Container gestartet hat. Das Problem lag dann am UID / GID, die ich a.) vergessen hatte im Compose anzupassen und b.) wie ich feststellen musste, am CIFS-Mount.. Das QNAP hatte scheinbar keine echten Schreibrechte auf das Verzeichnis. Diese habe ich jetzt auch beim Mount angegeben.

Ich muss nochmal für mich testen, ob docker volume potentiell die elegantere Option ist und ob hier die UID / GID sauber übergeben werden können.
Habe damit noch keine Erfahrung gesammelt.. Wie auch immer:

Jetzt läuft die Sache stabil und ich habe mich getraut meine Mediatheken zu indizieren. Auch der Probelauf mit QNAP als Worker sieht erfolgversprechend aus.
Als nächstes wollte ich eigentlich meinen Desktop-PC mit Docker Desktop in den Swarm aufnehmen. (Der Rechner ist eh die meiste Zeit an und langweilt sich)
Musste aber beim Überfliegen feststellen, dass die Sache mit dem Mounting nicht so einfach funktioniert. Ich grüble noch, wie ich das lösen kann.. Dazu hatte ich schon den schmutzigen Gedanken, ob ich das Docker-Image anpasse und den Mount in das Image hardcodiere.

Auf jeden Fall ein spannendes Projekt mit tollen Aha!-Effekten. Ich hatte ja auch schon einmal mit k8s geliebäugelt, aber das wäre für mich derzeit doch ein klarer Overkill. Aber gut.. Vielleicht später doch einmal.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Danke für's Teil! Ich hatte nur die Dockermod-Variante ausprobiert, war aber dann irgendwann genervt, als der Plex-Container irgendwann anfing beim Start immer am Dockermod zu scheitert und immer wieder terminiert wurde. Zudem hat es sich komisch angefühlt, dass der Container immer beim Start gepatcht wurde. Vielleicht hätte ich hier auch einfach mal das fertige Image verwenden sollen.

Docker Volumes für CIFS Backends zu verwenden erlaubt mehr Flexibilität, da hier jedes Volume mit eigener uid:gid gemountet werden kann:
Code:
volumes:
  media1:
    driver_opts:
      type: cifs
      o: username=meinuser,password=seinpasswort,uid=1026,gid=100,vers=3.0
      device: //192.168.x.y/media1

Leider wird hier die Option credentials nicht unterstützt, mit der man die Credentials aus einer Datei laden kann.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Achja, eine Sache hat mich zusätzlich gestört: der Abspielfortschritt wurde nicht mehr oder nur sehr ungenau aktualisiert. Die Zeitmarke, mit der dann weitergespielt wurde, war oftmals nicht die, bei der ich aufgehört hatte Inhalte anzusehen.

Ist das immer noch ein Thema? Oder hat Clusterplex das mittlerweile in den Griff bekommen?
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Der Fortschritt ist bei mir eigentlich absolut nahtlos.
 
  • Like
Reaktionen: haydibe

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Ein paar Tage später und ein paar Erkenntnisse reicher:
So habe ich mir das irgendwann mal vorgestellt. (4K HDR -> 720p).
Wobei derzeit die Hardware-Transkodierung nicht richtig läuft. Mal schauen, ob ich da noch weitere Zeit und Muße investieren werde.

Bild_2024-06-10_081135309.png
 
  • Like
Reaktionen: ctrlaltdelete


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat