- Überblick
- Anforderungen
- Vor der Installation
- Vorbereiten der Installation
- Herunterladen der Installationspakete
- Konfigurieren der OCI-konformen Registrierung
- Erteilen von Installationsberechtigungen
- Installieren und Konfigurieren des Dienstgeflechts
- Installieren und Konfigurieren des GitOps-Tools
- Installieren des Operators „Externe Geheimnisse“ in Kubernetes
- Anwenden verschiedener Konfigurationen
- Ausführen von uipathctl
- Installation
- Nach der Installation
- Migration und Upgrade
- Überwachung und Warnungen
- Clusterverwaltung
- Produktspezifische Konfiguration
- Erweiterte Orchestrator-Konfiguration
- Konfigurieren von Orchestrator-Parametern
- Konfigurieren von AppSettings
- Konfigurieren der maximalen Anforderungsgröße
- Überschreiben der Speicherkonfiguration auf Clusterebene
- Konfigurieren von NLog
- Speichern von Roboterprotokollen in Elasticsearch
- Konfigurieren von Anmeldeinformationsspeichern
- Konfigurieren der Verwendung von einem Verschlüsselungsschlüssel pro Mandant
- Bereinigen der Orchestrator-Datenbank
- Installation der Hostbibliothek überspringen
- AI Trust Layer
- Fehlersuche und ‑behebung
- AI Center-Bereitstellungsfehler nach Upgrade auf 2023.10 oder höher
- Insights-Volumes, die nach der Migration in zwei verschiedenen Zonen erstellt wurden
- Upgrade schlägt aufgrund überschriebener Insights-PVC-Größen fehl
- Velero-Backup-Komponenten bleiben nach dem Upgrade auf AKS von Automation Suite 2024.10.x erhalten
- Das Sicherungssetup funktioniert nicht, da die Verbindung mit Azure Government fehlgeschlagen ist
- Hängende Pods im uipath-Namespace bei Aktivierung von benutzerdefinierten Knoten-Markierungen
- Automation Hub und Apps können mit Proxy-Setup nicht gestartet werden
- Die Velero-Sicherung schlägt mit dem Fehler „FehlgeschlageneValidierung“ fehl
- Fehlerbehebung bei externen Geheimnissen
- Temporär als Dienst-Fehlerbehebung
- AI Center und Document Understanding Pods können bei aktivierter TLS-Zertifikatsverifizierung nicht gestartet werden
- Validierungsfehler beim TLS-Zertifikat
- Fluentd exportiert keine Protokolle in IPv6-Umgebungen
- Studio Desktop kann keine Integration Service-Connectors und -Aktivitäten laden
- Manuelle Schadensbegrenzung bei ArgoCD NetworkPolicy (GHSA-47m3-95c7-g2g8)
- Konfigurieren von Ressourcenanforderungen und Limits für von uipathctl erstellte Workloads
Fehlerbehebung bei externen Geheimnissen
Lösungen für Probleme mit externen Geheimnisoperatoren in der Automation Suite auf EKS/AKS.
Überblick
Dieser Abschnitt enthält Schritte zur Fehlerbehebung im Zusammenhang mit dem Operator externer Geheimnisse und der Konfiguration des geheimen Speichers in der Automation Suite.
Um Synchronisierungs- oder Authentifizierungsprobleme zwischen Ihrem Cluster und dem externen Geheimnisanbieter zu identifizieren und zu lösen, führen Sie die in diesem Abschnitt beschriebenen Schritte aus.
Überprüfen Sie den Pod-Status und die Protokolle von External Secrets
Überprüfen Sie zunächst, ob die Pods des Operators „Externe Geheimnisse“ ordnungsgemäß ausgeführt werden.
Wenn die Pods nicht im Status „Wird ausgeführt“ sind oder wiederholte Neustarts anzeigen, überprüfen Sie ihre Protokolle auf Fehler im Zusammenhang mit Authentifizierung, Berechtigungen oder Fehlkonfigurationen.
Führen Sie Folgendes aus, um den Status der Pods für externe Geheimnisse zu überprüfen und ihre Protokolle anzuzeigen:
kubectl get pods -A | grep external-secrets
kubectl logs -f <pod-name> -n <namespace>
kubectl get pods -A | grep external-secrets
kubectl logs -f <pod-name> -n <namespace>
Führen Sie beispielsweise Folgendes aus, um Protokolle von einem bestimmten Pod anzuzeigen:
kubectl logs -f external-secrets-7d8c9b5f9f-abc12 -n external-secrets
kubectl logs -f external-secrets-7d8c9b5f9f-abc12 -n external-secrets
Überprüfen Sie die Objekte SecretStore und ExternalSecret
Wenn die Pods ordnungsgemäß ausgeführt werden, stellen Sie sicher, dass die Ressourcen SecretStore und ExternalSecret ordnungsgemäß konfiguriert und synchronisiert sind.
Diese Ressourcen definieren, wie externe Geheimnisse abgerufen und gespeichert werden, sodass jede Fehlkonfiguration eine erfolgreiche Synchronisierung verhindern kann.
- Überprüfen von ExternalSecret-Ressourcen Überprüfen Sie zunächst die ExternalSecret-Objekte in Ihrem Cluster. Dadurch wird bestätigt, dass die Ressourcen korrekt mit ihrem SecretStore verknüpft sind und der Synchronisierungsstatus gültig ist.
- Um Ihre ExternalSecret-Ressourcen anzuzeigen und zu überprüfen, führen Sie die folgenden Befehle aus:
kubectl get externalsecrets -A kubectl describe externalsecret <externalsecret-name> -n <namespace>kubectl get externalsecrets -A kubectl describe externalsecret <externalsecret-name> -n <namespace> - Um beispielsweise ein bestimmtes ExternalSecret im Namespace
uipathzu überprüfen:kubectl describe externalsecret azure-secret-store -n uipathkubectl describe externalsecret azure-secret-store -n uipath
- Um Ihre ExternalSecret-Ressourcen anzuzeigen und zu überprüfen, führen Sie die folgenden Befehle aus:
- SecretStore-Ressourcen überprüfen Überprüfen Sie die zugehörige SecretStore-Konfiguration. Diese Ressource definiert die Verbindungsdetails für Ihren Geheimnisanbieter (z. B. Azure Key Vault), und Fehler hier können die Synchronisierung von Geheimnissen blockieren.
- Um die SecretStore-Definitionen zu überprüfen, verwenden Sie die folgenden Befehle:
kubectl get secretstores -A kubectl describe secretstore <secretstore-name> -n <namespace>kubectl get secretstores -A kubectl describe secretstore <secretstore-name> -n <namespace> - Um beispielsweise eine SecretStore-Konfiguration im
uipath-Namespace zu untersuchen:kubectl describe secretstore azure-secretstore -n uipathkubectl describe secretstore azure-secretstore -n uipath
- Um die SecretStore-Definitionen zu überprüfen, verwenden Sie die folgenden Befehle:
- Überprüfen Sie Ereignisse im Zusammenhang mit externen Geheimnissen Überprüfen Sie alle Kubernetes-Ereignisse im Zusammenhang mit dem externen Geheimnisoperator. Diese Ereignisse können Synchronisierungsfehler, Berechtigungsprobleme oder Fehlkonfigurationen des Anbieters aufdecken.
-
Um verwandte Ereignisse anzuzeigen, führen Sie den folgenden Befehl aus:
kubectl get events -A | grep external-secretskubectl get events -A | grep external-secretsAchten Sie bei der Überprüfung der Ereignisausgabe auf Folgendes:
- Fehlermeldungen im Abschnitt Status
- Bedingungen, die angeben, ob
Ready: True - Warnungen oder Synchronisierungsfehler im Abschnitt Ereignisse
-
Überprüfen Sie die Anmeldeinformationen für den Secret Store
Wenn Sie Azure Key Vault als Geheimnisanbieter verwenden, stellen Sie sicher, dass die Anmeldeinformationen und die Konfiguration gültig und aktuell sind.
Falsche Anmeldeinformationen oder fehlende Berechtigungen sind häufige Ursachen für Synchronisierungsfehler.
- Anmeldeinformationen für die Authentifizierung
- Bestätigen Sie, dass die Werte
clientId,clientSecretundtenantIdkorrekt sind. - Stellen Sie sicher, dass der Dienstprinzipal über die erforderlichen Berechtigungen für den Key Vault verfügt.
- Bestätigen Sie, dass die Werte
- Key Vault-Zugriffsrichtlinien
- Überprüfen Sie
GetundList-Berechtigungen für Geheimnisse. - Stellen Sie sicher, dass die Key Vault-Firewalleinstellungen den Zugriff von Ihrem Cluster aus zulassen.
- Überprüfen Sie
- Konfiguration der Workload-Identität (falls zutreffend)
- Überprüfen Sie, ob die verbundenen Anmeldeinformationen korrekt konfiguriert sind.
- Stellen Sie sicher, dass das zugeordnete Dienstkonto über die erforderlichen Anmerkungen verfügt.
- Key Vault-URI
-
Stellen Sie sicher, dass der
vaultUrlin Ihrer SecretStore-Konfiguration korrekt ist.Beispielformat:
https://<key-vault-name>.vault.azure.net/https://<key-vault-name>.vault.azure.net/
-
Überprüfen der Azure Key Vault-Dienstprinzipalberechtigungen
Wenn Ihre Bereitstellung einen Dienstprinzipal verwendet, bestätigen Sie, dass er Zugriff zum Abrufen von Geheimnissen aus dem Azure Key Vault hat.
Führen Sie Folgendes aus, um die Geheimnisse aufzulisten, auf die Ihr Dienstprinzipal zugreifen kann:
az keyvault secret list --vault-name <key-vault-name>
az keyvault secret list --vault-name <key-vault-name>
Überprüfen Sie die HashiCorp Vault-Verbindung und -Authentifizierung
Wenn Sie HashiCorp Vault als Geheimnisanbieter verwenden, überprüfen Sie Folgendes:
-
Erreichbarkeit des Test Vault-Servers Bestätigen Sie, dass die Vault-Server-URL in Ihrer SecretStore-Konfiguration von einem Knoten oder Jumphost aus erreichbar ist, der Netzwerkzugriff auf den Cluster hat:
curl -sk https://<vault-server>:8200/v1/sys/healthcurl -sk https://<vault-server>:8200/v1/sys/healthEin fehlerfreier Vault gibt eine JSON-Antwort mit
"initialized": trueund"sealed": falsezurück. Wenn der Befehl eine Zeitüberschreitung auslöst oderconnection refusedzurückgibt, überprüfen Sie die Netzwerkrichtlinien und Firewallregeln zwischen dem Cluster und dem Vault-Server. -
Überprüfen Sie den Status der Tresor Siedung
curl -sk https://<vault-server>:8200/v1/sys/seal-statuscurl -sk https://<vault-server>:8200/v1/sys/seal-statusBei
"sealed": truemuss der Vault-Server geöffnet werden, bevor ESO geheime Schlüssel abrufen kann. -
Testen Sie Kubernetes-Auth-Anmeldung Wenn Sie
auth_type: kubernetesverwenden, stellen Sie sicher, dass sich ein Dienstkonto-Token bei Vault authentifizieren kann. Extrahieren Sie zuerst das Token aus dem ESO-Pod:ESO_POD=$(kubectl get pods -n uipath -l app.kubernetes.io/name=external-secrets -o jsonpath='{.items[0].metadata.name}') JWT=$(kubectl exec -n uipath $ESO_POD -- cat /var/run/secrets/kubernetes.io/serviceaccount/token)ESO_POD=$(kubectl get pods -n uipath -l app.kubernetes.io/name=external-secrets -o jsonpath='{.items[0].metadata.name}') JWT=$(kubectl exec -n uipath $ESO_POD -- cat /var/run/secrets/kubernetes.io/serviceaccount/token)Testen Sie dann die Anmeldung:
curl -sk --request POST \ --data "{\"jwt\": \"$JWT\", \"role\": \"<vault-role>\"}" \ https://<vault-server>:8200/v1/auth/<mount-path>/logincurl -sk --request POST \ --data "{\"jwt\": \"$JWT\", \"role\": \"<vault-role>\"}" \ https://<vault-server>:8200/v1/auth/<mount-path>/loginEine erfolgreiche Antwort enthält ein
client_token. Einpermission denied-Fehler gibt an, dass die Vault-Rolle das Dienstkonto nicht zulässt oder dass die Kubernetes-Authentifizierungs-Methode falsch konfiguriert ist. -
Testen Sie die AppRole-Authentifizierungs-Anmeldung Wenn Sie
auth_type: approleverwenden, überprüfen Sie die AppRole-Anmeldeinformationen:curl -sk --request POST \ --data '{"role_id": "<role-id>", "secret_id": "<secret-id>"}' \ https://<vault-server>:8200/v1/auth/<mount-path>/logincurl -sk --request POST \ --data '{"role_id": "<role-id>", "secret_id": "<secret-id>"}' \ https://<vault-server>:8200/v1/auth/<mount-path>/loginWenn dies fehlschlägt, überprüfen Sie, ob die AppRole
secret-idnicht abgelaufen ist (secret_id_ttl). -
Stellen Sie sicher, dass das AppRole-Anmeldeinformationsgeheimnis vorhanden ist
kubectl get secret <credentials-secret-name> -n uipath -o json | jq '.data | keys'kubectl get secret <credentials-secret-name> -n uipath -o json | jq '.data | keys'Das Geheimnis muss sowohl
role-idals auchsecret-id-Schlüssel enthalten. -
Testen Sie das Lesen eines Geheimnisses aus Vault KV v2 mit einem Vault-Token, das aus den obigen Authentifizierungsschritten erhalten wurde:
curl -sk -H "X-Vault-Token: <vault-token>" \ https://<vault-server>:8200/v1/<kv-path>/data/<secret-path>curl -sk -H "X-Vault-Token: <vault-token>" \ https://<vault-server>:8200/v1/<kv-path>/data/<secret-path>Entfernen Sie bei KV v1
/data/aus dem Pfad. Wenn die Antwortno value found at pathist, stellen Sie sicher, dasshashicorp_kv.versionmit der aktuellen Engine-Version übereinstimmt. -
Version der KV-Engine überprüfen Stellen Sie sicher, dass der
hashicorp_kv.versionin Ihrer Konfiguration mit der tatsächlichen Version der KV-Engine übereinstimmt, die im Vault aktiviert ist (v1oderv2). Eine Abweichung führt zuno value found at path-Fehlern, da v1 und v2 unterschiedliche API-Pfade verwenden. -
Konfiguration der Kubernetes-Authentifizierung überprüfen Stellen Sie sicher, dass die Kubernetes-Auth-Methode des Vault aktiviert und mit der richtigen
kubernetes_hostkonfiguriert ist. Überprüfen Sie, ob die Vault-Rolle das ESO-Dienstkonto (oder eine benutzerdefinierteservice_account_name) zulässt.
Überprüfen Sie die Konnektivität und Berechtigungen von AWS Secrets Manager
Wenn Sie AWS Secrets Manager als Geheimnisanbieter verwenden, überprüfen Sie Folgendes:
-
Stellen Sie sicher, dass das Anmeldeinformationen-Geheimnis des Zugriffsschlüssels vorhanden ist
kubectl get secret <credentials-secret-name> -n uipath -o json | jq '.data | keys'kubectl get secret <credentials-secret-name> -n uipath -o json | jq '.data | keys'Das Geheimnis muss sowohl
access-key-idals auchsecret-access-key-Schlüssel enthalten. -
Testen des Zugriffs auf AWS Secrets Manager Stellen Sie mithilfe der Anmeldeinformationen des Zugriffsschlüssels sicher, dass das Geheimnis abgerufen werden kann:
aws secretsmanager get-secret-value \ --secret-id <secret-name> --region <region>aws secretsmanager get-secret-value \ --secret-id <secret-name> --region <region>AccessDeniedException– Der IAM-Benutzer hat keinesecretsmanager:GetSecretValue-Berechtigung.ResourceNotFoundException– Das Geheimnis ist in der angegebenen Region nicht vorhanden. Überprüfen Sie den Wertaws_kv.region.
-
Regionskonfiguration überprüfen Stellen Sie sicher, dass der
aws_kv.region-Wert mit der Region übereinstimmt, in der Ihre Geheimnisse gespeichert sind. Eine Regionsabweichung führt zuResourceNotFoundException-Fehlern.
Probleme mit TLS- und Zertifizierungsstellen
Wenn der Vault- oder AWS-Endpunkt HTTPS mit einem privaten Zertifizierungsstellenzertifikat verwendet, überprüfen Sie Folgendes:
-
Überprüfen Sie, ob der zusätzliche geheime Schlüssel des Zertifikats der Zertifizierungsstelle vorhanden ist
kubectl get secret additional-ca-certificates -n uipathkubectl get secret additional-ca-certificates -n uipath -
Überprüfen Sie den Inhalt des Zertifikats der Zertifizierungsstelle
kubectl get secret additional-ca-certificates -n uipath -o jsonpath='{.data.ca\.crt}' | base64 -d | openssl x509 -text -nooutkubectl get secret additional-ca-certificates -n uipath -o jsonpath='{.data.ca\.crt}' | base64 -d | openssl x509 -text -nooutStellen Sie sicher, dass das Zertifikat nicht abgelaufen ist und der Aussteller mit der Zertifizierungsstelle übereinstimmt, die von Ihrem Vault- oder AWS-Endpunkt verwendet wird.
-
Testen Sie den TLS-Handshake
curl -v https://<vault-server>:8200/v1/sys/healthcurl -v https://<vault-server>:8200/v1/sys/healthWenn Sie
SSL certificate problem: unable to get local issuer certificatesehen, wird dem Zertifikat der Zertifizierungsstelle nicht vertraut. Stellen Sie sicher, dassadditional_ca_certsininput.jsonkonfiguriert ist. So testen Sie mit einer bestimmten Zertifikatsdatei einer Zertifizierungsstelle:curl -v --cacert /path/to/ca.crt https://<vault-server>:8200/v1/sys/healthcurl -v --cacert /path/to/ca.crt https://<vault-server>:8200/v1/sys/health
Häufige Konfigurationsprobleme
Sehen Sie sich die folgenden häufigen Probleme und die entsprechenden Fehlermeldungen an, um die Problemdiagnose zu unterstützen.
| Problem | Mögliche Ursache | Beispiel-/Fehlerausgabe |
|---|---|---|
| Geheimer Schlüssel nicht im Cluster gefunden | Fehlendes Kubernetes-Geheimnis | Warning InvalidProviderConfig 3s (x4 over 8s) secret-store cannot get Kubernetes secret "azure-service-principal-secret" from namespace "uipath": secrets "azure-service-principal-secret" not found |
| Ungültige Anmeldeinformationen | Client-ID, geheimer Clientschlüssel oder Mandanten-ID falsch | error processing spec.data[0] (key: external-object-storage-account-key-10176524), err: azure.BearerAuthorizer#WithAuthorization: Failed to refresh the Token for request ... StatusCode=400 |
| Fehlendes Key Vault-Objekt | Schlüssel ist in Azure Key Vault nicht vorhanden | external-secrets error processing spec.data[0] (key: external-object-storage-account-key), err: Secret does not exist |
| HashiCorp Vault nicht erreichbar | Falsche Server-URL oder Netzwerkrichtlinie, die den Zugriff blockiert | connection refused oder context deadline exceeded |
| Tresorauthentifizierung fehlgeschlagen | Kubernetes-Dienstkonto, das nicht an Vault-Rolle gebunden ist, oder AppRole abgelaufen secret-id | permission denied |
| KV-Versionen stimmen nicht überein | hashicorp_kv.version auf v2 festgelegt, aber Engine ist v1 (oder umgekehrt) | no value found at path |
| AWS-Anmeldeinformationen ungültig | Falsche Zugriffsschlüssel-ID oder geheimer Zugriffsschlüssel | InvalidClientTokenId oder SignatureDoesNotMatch |
| AWS-Geheimnis nicht gefunden | Geheimer Schlüssel ist in der konfigurierten Region nicht vorhanden, oder es liegt eine Regionskonfliktübereinstimmung vor | ResourceNotFoundException |
Um diese Probleme weiter zu untersuchen, überprüfen Sie die Controller-Protokolle oder beschreiben Sie die zugehörigen Ressourcen:
kubectl describe externalsecret <name> -n <namespace>
kubectl describe secretstore <name> -n <namespace>
kubectl describe externalsecret <name> -n <namespace>
kubectl describe secretstore <name> -n <namespace>
- Überblick
- Überprüfen Sie den Pod-Status und die Protokolle von External Secrets
- Überprüfen Sie die Objekte SecretStore und ExternalSecret
- Überprüfen Sie die Anmeldeinformationen für den Secret Store
- Überprüfen Sie die Berechtigungen des Azure Key Vault-Dienstprinzipals
- Überprüfen Sie die HashiCorp Vault-Verbindung und -Authentifizierung
- Überprüfen Sie die Konnektivität und Berechtigungen von AWS Secrets Manager
- Probleme mit TLS- und Zertifizierungsstellen
- Häufige Konfigurationsprobleme