Unterstützung für die Verbesserung dieser Seite beitragen
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten unter, der sich im rechten Bereich jeder Seite befindet.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Argo CD-Einstellungen konfigurieren
Mit der EKS-Funktion für Argo CD erhalten Sie ein vollständig verwaltetes Argo-CD-Erlebnis. Upstream Argo CD bietet viele optionale Einstellungen und Funktionen, und die EKS-Funktion für Argo CD unterstützt eine Teilmenge davon. Unterstützte Einstellungen konfigurieren Sie auf die gleiche Weise wie die Upstream-Argo-CD, und zwar über die argocd-cm ConfigMap in Ihrem Cluster.
AWS liest daraus die unterstützten Felder ConfigMap und wendet sie auf die verwaltete Argo-CD-Instanz an.
In den folgenden Abschnitten wird beschrieben, wie Sie die vier argocd-cm ConfigMap unterstützten Einstellungen konfigurieren.
Voraussetzungen
Bevor Sie die Argo CD-Einstellungen konfigurieren, benötigen Sie:
-
Ein EKS-Cluster mit der Argo-CD-Funktion wurde erstellt (siehe) Erstellen einer Argo CD-Funktion
-
Der in der Capability für Argo CD konfigurierte Namespace (standardmäßig der Namespace)
argocd -
Die
kubectlCLI ist für die Kommunikation mit Ihrem Cluster konfiguriert
Konfigurieren Sie das argocd-cm ConfigMap
Um die unterstützten Argo-CD-Einstellungen zu konfigurieren, erstellen Sie einen ConfigMap Namen argocd-cm in Ihrem Cluster. Die verwaltete Funktion liest daraus die unterstützten Felder ConfigMap und wendet sie auf die verwaltete Argo-CD-Instanz an. Die Funktion ignoriert alle nicht unterstützten Felder und Funktionen, die Sie festgelegt haben. Überprüfen Sie die Liste der unterstützten Felder, um sicherzustellen, dass eine Einstellung wirksam wird.
Erstellen Sie das ConfigMap mit den folgenden Anforderungen:
-
Nennen Sie den ConfigMap
argocd-cm. -
Erstellen Sie es in dem für Argo CD in der Capability konfigurierten Namespace (dem Namespace, den Sie in der Argo-CD-Konfiguration festgelegt haben, als Sie die Capability erstellt haben). Standardmäßig ist dies der Namespace.
argocd -
Wenden Sie das Etikett
app.kubernetes.io/part-of: argocdan. Dieses Label ist erforderlich und entspricht dem Verhalten der Upstream-Argo-CD. -
Verwenden Sie dasselbe Feldformat und dieselben Schlüssel wie die Upstream-Argo-CD.
Das folgende Beispiel zeigt die ConfigMap Struktur:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: # Supported settings go here (see the following sections)
Wichtig
A ConfigMap ist kein sicheres Geschäft. Speichern Sie keine Geheimnisse, Anmeldeinformationen oder andere vertrauliche Informationen in den argocd-cm ConfigMap.
Unterstützte Einstellungen
Die verwaltete Funktion unterstützt das folgende argocd-cm Feld:
| Feld | Description |
|---|---|
|
|
Benutzerdefinierte Integritätsprüfungsskripte für benutzerdefinierte Ressourcen. Siehe Benutzerdefinierte Zustandsprüfungen. |
Benutzerdefinierte Zustandsprüfungen
Argo CD bewertet den Zustand der bereitgestellten Ressourcen. Für Standard-Kubernetes-Ressourcen wie Bereitstellungen und Dienste verfügt Argo CD über eine integrierte Integritätslogik. Für benutzerdefinierte Ressourcen, die Argo CD nicht erkennt, hat es keine integrierte Integritätslogik und meldet keinen Integritätsstatus.
Wenn für eine benutzerdefinierte Ressource keine Integritätsprüfung durchgeführt wird, meldet Argo CD, dass kein Zustand für sie vorliegt, und schließt sie aus dem allgemeinen Zustand der Anwendung aus. Daher kann eine Anwendung Healthy auch dann einen Bericht erstatten, wenn ihre Ressourcen noch bereitgestellt werden oder ausgefallen sind. Das bedeutet auch, dass Synchronisierungswellen voranschreiten können, bevor diese Ressourcen bereit sind, da die Reihenfolge der Synchronisierungen vom gemeldeten Zustand abhängt.
Mit benutzerdefinierten Zustandsprüfungen können Sie die Integritätslogik für Ihre benutzerdefinierten Ressourcen definieren, sodass Argo CD den genauen Zustand meldet und Bereitstellungen korrekt sequenziert. Sie definieren benutzerdefinierte Integritätsprüfungen auf die gleiche Weise wie auf der Upstream-Argo-CD, wobei dieselben Konfigurationsschlüssel verwendet werden. Bestehende Upstream-Skripte und Community-Beispiele funktionieren mit der EKS-Fähigkeit für Argo-CD ohne Änderungen.
Built-in Zustandsprüfungen für ACK und Kro
Die EKS-Capability for Argo-CD umfasst integrierte Integritätsprüfungen für AWS Controller für Kubernetes- (ACK) - und KRO-Ressourcen (Kube Resource Orchestrator). Diese Ressourcen melden den genauen Zustand ohne zusätzliche Konfiguration.
Um zu ändern, wie die Funktion den Zustand einer ACK- oder KRO-Ressource bewertet, können Sie eine benutzerdefinierte Zustandsprüfung für diesen Ressourcentyp definieren. Eine benutzerdefinierte Zustandsprüfung, die Sie für einen Ressourcentyp definieren, überschreibt die integrierte Zustandsprüfung für diesen Typ.
Schreiben Sie eine benutzerdefinierte Systemdiagnose
Definieren Sie eine benutzerdefinierte Integritätsprüfung, indem Sie dem argocd-cm ConfigMap ein Lua-Skript hinzufügen. Verwenden Sie dazu einen Schlüssel im folgenden Format:
resource.customizations.health.<group>_<kind>
<group>Ersetzen Sie durch die API-Gruppe der benutzerdefinierten Ressource und <kind> durch deren Art. Der Schlüssel für eine benutzerdefinierte Ressource mit der API-Gruppe example.com und der Art Database lautet beispielsweiseresource.customizations.health.example.com_Database.
Das Lua-Skript hat über die globale obj Variable Zugriff auf das Ressourcenobjekt. Das Skript muss eine Tabelle mit einem status Feld zurückgeben, das auf einen Wert vonHealthy, ProgressingDegraded, oder Suspended gesetzt ist. Das Skript kann auch ein optionales message Feld einrichten, um eine beschreibende Statusmeldung bereitzustellen.
Das folgende Beispiel ConfigMap definiert eine Zustandsprüfung für eine Database benutzerdefinierte Ressource. Das Skript meldet die Ressource soHealthy, als ob sich ihre Statusphase befindetReady, und wie Progressing andernfalls:
apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: resource.customizations.health.example.com_Database: | hs = {} hs.status = "Progressing" hs.message = "Waiting for the resource to become ready" if obj.status ~= nil then if obj.status.phase == "Ready" then hs.status = "Healthy" hs.message = "Database is ready" end end return hs
Weitere Informationen über das Health-Check-Skriptformat, die Liste der integrierten Integritätsprüfungen und Community-Beispiele, die Sie anpassen können, finden Sie unter Resource Health
Sicherheit und Einschränkungen
Mit der verwalteten Funktion werden Ihre benutzerdefinierten Integritätsprüfungsskripts in isolierten, vollständig verwalteten Recheneinheiten ausgeführt. Die Ausführungsumgebung ist pro Funktion isoliert und hat keinen Zugriff auf die Daten Ihres Clusters oder auf AWS APIs. Sie stellen keinen Teil der Ausführungsumgebung bereit, patchen oder betreiben keinen Teil davon.
Beachten Sie Folgendes, wenn Sie benutzerdefinierte Integritätsprüfungen für die Verwendung mit der EKS-Funktion schreiben:
-
Standard-Lua-Bibliotheken sind nicht verfügbar. Die
useOpenLibsOption ist immer deaktiviert, was in der Upstream-Argo-CD die Standardeinstellung ist. Skripte können nicht auf das Betriebssystem oder Dateisystem zugreifen. Wenn Sie ein Skript von einer selbstverwalteten Argo-CD migrieren, das auf Standard-Lua-Bibliotheken basiert, wird es in der Funktion möglicherweise nicht auf die gleiche Weise ausgeführt. Wir empfehlen, dass Sie Ihre Health-Check-Skripte in einer Entwicklungsumgebung testen, bevor Sie sie in der Produktion verwenden.
Wenn die Integritätsprüfung vorübergehend nicht verfügbar ist, meldet die Funktion die betroffenen benutzerdefinierten Ressourcen als, Progressing anstatt ihren Status zu entfernen. Dadurch bleiben die betroffenen Ressourcen im Status der Anwendung sichtbar, bis die Evaluierung wiederhergestellt ist.
Überprüfen Sie eine benutzerdefinierte Systemdiagnose
Nachdem Sie den angewendet oder aktualisiert haben argocd-cm ConfigMap, stellen Sie sicher, dass die Integritätsprüfung aktiv ist:
-
Wählen Sie auf der Argo-CD-Benutzeroberfläche eine Anwendung aus, die eine benutzerdefinierte Ressource enthält, für die Sie eine Systemdiagnose definiert haben. Vergewissern Sie sich, dass die Ressource den Integritätsstatus meldet, den Ihr Skript zurückgibt. Sie können auch die Ressource ausführen
argocd app getund den Integritätsstatus überprüfen.<application-name> -
Wenn die Ressource nicht den erwarteten Zustand meldet, überprüfen Sie Folgendes:
-
Der ConfigMap hat einen Namen
argocd-cmund befindet sich in dem Namespace, der in der Funktion für Argo CD konfiguriert ist. -
Der ConfigMap hat das erforderliche Label.
app.kubernetes.io/part-of: argocd -
Der Integritätsprüfschlüssel verwendet den richtigen
<group>_<kind>für den Ressourcentyp.
-