Wir möchten bestimmte Befehle als Pods und Dienste ausführen, wenn sie starten oder stoppen. Die Verwendung der Lebenszyklus-Hooks in den XML-Dateien funktioniert nicht für uns, da diese Befehle nicht optional sind. Wir haben überlegt, einen Watcher-Pod auszuführen, der die Watch-API verwendet, um diese Befehle auszuführen. Aber wir können nicht herausfinden, wie man die Uhr-API benutzt, damit sie nicht immer wieder dieselben Ereignisse sendet. Gibt es eine Möglichkeit, der Uhr zu sagen, dass nur neue Ereignisse gesendet werden sollen, seit die Verbindung geöffnet wurde? Wenn es nicht zumutbar ist, eine Stateful-Watch-API zu erwarten, wird es möglich sein, einen Zeitstempel oder eine monoton steigende ID zu übergeben, um zu vermeiden, bereits gesehene Ereignisse zu sehen?
Was wir jetzt machen, wir betreiben einen Pod mit einem Daemon-Prozess, der mit der API kommuniziert. Wir können die Ereignisse als Stream finden. Aber wir möchten eine Aufgabe ausführen, wenn ein Pod erstellt oder gelöscht wird.
Ich würde empfehlen, den Client von der Kube Repo. Warum funktionieren die Lebenszyklus-Hooks nicht für Ihren Anwendungsfall?
Falls es im Cluster ist, können Sie das in golang so machen:
%Vor%Tags und Links kubernetes