Muss Dagu im Cluster laufen?
Nein. Es löst den Cluster über eine explizite kubeconfig, dann die normalen kubeconfig-Ladepfade und schließlich die In-Cluster-Konfiguration auf, funktioniert also in beiden Fällen. Außerhalb zu laufen ermöglicht cluster- und grenzübergreifende Workflows; innerhalb ist in Ordnung, wenn alles Berührte in diesem Cluster liegt.
Worin unterscheidet sich das von einem CronJob, der ein kubectl-Skript ausführt?
Dieses Muster gibt Ihnen Reihenfolge und sonst nichts: Der Exit-Code des Wrapper-Pods verbirgt, welche Stufe fehlschlug, Wiederholungen starten das ganze Skript neu, und die Logs sind ein ununterscheidbarer Strom, der mit dem Pod verschwindet. Dagu erzeugt einen Job pro Schritt, sodass jede Stufe eigenen Status, eigene Wiederholung und ein eigenes aufbewahrtes Log hat.
Teilen Schritte ein Dateisystem?
Nein. Jeder Schritt ist ein eigener Job und damit ein eigener Pod. Reichen Sie Daten über Objektspeicher, ein in jeden Schritt gemountetes persistentes Volume oder für kleine Werte über Schrittausgaben weiter, genau wie zwischen separaten Jobs.
Was passiert mit dem Job, wenn ein Lauf abgebrochen wird?
Abbruch-, Kill- und Timeout-Pfade erzwingen die Bereinigung, selbst wenn cleanup_policy auf keep steht, ein gestoppter Lauf lässt also keinen Job zurück. Im Normalbetrieb wird der Job standardmäßig nach Abschluss gelöscht.
Sollten wir das statt Argo Workflows verwenden?
Nur wenn es Ihnen nützt, dass der Orchestrator außerhalb des Clusters liegt. Sind alle Tasks Container in einem Cluster und sollen Workflows Kubernetes-Objekte unter demselben RBAC- und GitOps-Fluss sein, passt Argo besser. Dagu eignet sich für Graphen, die Cluster-Jobs mit Hosts, APIs und menschlichen Freigaben mischen.
Kann ich Dagu selbst auf Kubernetes deployen?
Ja. Das offizielle Helm-Chart (helm repo add dagu https://dagucloud.github.io/dagu) deployt UI, Scheduler und Koordinator sowie optionale Worker-Pools. Dagu im Cluster zu betreiben und zugleich diesen Schritttyp zu nutzen ist ein normaler Aufbau; der Executor löst den Cluster dann über die In-Cluster-Konfiguration auf.