Kubernetes, Argo CD und Flux
Die Dimension “Wo läuft dieser Service, und ist er gesund” des Service-Katalogs wird aus drei Quellen gespeist: einer direkten Kubernetes-Cluster-Abfrage, Argo CD und Flux. Alle drei synchronisieren im Hintergrund alle 10 Minuten; die Schaltfläche Jetzt synchronisieren auf der Integrationsseite startet einen Lauf ohne Wartezeit.
Kubernetes
Abschnitt betitelt „Kubernetes“Deployment-, StatefulSet-, DaemonSet- und CronJob-Workloads werden direkt aus der Kubernetes-API gelesen - das deckt alles Laufende ab, auch Umgebungen ohne GitOps-Werkzeug. Pod-Anzahlen (bereit/gewünscht) und Workload-Gesundheit stammen aus dieser Abfrage.
Verbinden
Abschnitt betitelt „Verbinden“- Gehen Sie zu Integrationen → Kubernetes → Verbinden.
- Geben Sie die API-Server-Adresse (
https://...) und ein ServiceAccount-Token ein. - Das Token wird verschlüsselt gespeichert; die Verbindung wird vor dem Speichern geprüft.
Erforderliche RBAC
Abschnitt betitelt „Erforderliche RBAC“Ein rein lesender ServiceAccount genügt. list wird zum Massenlesen der Workloads benötigt, get zum Lesen des Status einzelner Workloads (Pod-Anzahlen) - gewähren Sie beides:
apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata: name: apparch-readerrules: - apiGroups: ["apps"] resources: ["deployments", "statefulsets", "daemonsets"] verbs: ["list", "get"] - apiGroups: ["batch"] resources: ["cronjobs"] verbs: ["list"] # Wenn Sie Flux einsetzen, sind auch diese drei Regeln erforderlich (siehe unten): - apiGroups: ["source.toolkit.fluxcd.io"] resources: ["gitrepositories"] verbs: ["list"] - apiGroups: ["kustomize.toolkit.fluxcd.io"] resources: ["kustomizations"] verbs: ["list"] - apiGroups: ["helm.toolkit.fluxcd.io"] resources: ["helmreleases"] verbs: ["list"]Binden Sie die Rolle an einen ServiceAccount und übergeben Sie dessen Token an AppArch:
kubectl create serviceaccount apparch-readerkubectl create clusterrolebinding apparch-reader \ --clusterrole=apparch-reader --serviceaccount=default:apparch-readerkubectl create token apparch-reader --duration=8760hArgo CD
Abschnitt betitelt „Argo CD“Argo CD liefert pro Application Umgebung, Sync-/Gesundheitsstatus und den laufenden Commit. Verbinden Sie über Integrationen → Argo CD → Verbinden mit der Argo-CD-Server-Adresse und einem API-Token (nötig, wenn anonymer Lesezugriff deaktiviert ist). Pod-Anzahlen werden aus dem Resource-Tree jeder Application gelesen.
Flux benötigt keine eigene Verbindung - es lebt als Custom Resources (Kustomization, HelmRelease) in Ihrem Cluster und wird über die bestehende Kubernetes-Verbindung gelesen. Sie brauchen lediglich die drei Flux-Regeln aus dem RBAC-Beispiel oben auf Ihrem Token. Wird Flux erkannt, erscheint ein Flux-Badge in der Kubernetes-Zeile der Integrationsseite.