# Fehlerbehebung beim Mounten von Kubernetes-Ressourcen in Dynamic Engine-Umgebungen

Verwenden Sie diesen Diagnoseabschnitt, um häufige Probleme beim Mounten von Kubernetes-Ressourcen (ConfigMap, Secret, volumes, PersistentVolumeClaim und securityContext) in Ihren Dynamic Engine-Umgebungen zu identifizieren und zu beheben. In diesem Abschnitt erfahren Sie, wie Sie Fehlermuster erkennen, und werden zum entsprechenden Lösungsthema geleitet.

## Häufige Fehlermuster und Lösungen

In der folgenden Tabelle sind Fehlertypen, Aktionen für die Diagnose und Links zu den entsprechenden Dynamic Engine-Anpassungsthemen aufgeführt:

| Fehlertyp | Aktion | Relevantes Thema |
| --- | --- | --- |
| CreateContainerConfigError | Überprüfen Sie die Schlüsselkonsistenz in der additionalSpec mit dem gemounteten Secret oder ConfigMap | [Mounten von Kubernetes Secret als Volumes in Dynamic Engine-Containern](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-secrets-as-volumes "Anstatt Secret als Umgebungsvariable zu verwenden, können Sie diese als Dateien im Container-Dateisystem mounten. Dadurch erhalten Ihre Datenintegrations-Tasks (einschließlich Big Data), Datenservices und Routen-Tasks Zugriff auf Anmeldedaten in Konfigurationsdateien.") oder [Injizieren von Umgebungsvariablen über Kubernetes Secret](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/injecting-sensitive-data-from-kubernetes-secrets "Injizieren Sie sensible Daten (Passwörter, API-Schlüssel, Token) aus Kubernetes Secret als Umgebungsvariablen in Ihren Job-Tasks (Datenintegration, Big Data und Datenservices) und Routen-Tasks, damit sie leicht und sicher auf Anmeldedaten zugreifen können.") oder [Injizieren von Umgebungsvariablen über ConfigMap](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/injecting-environment-variables-from-configmaps "Verwenden Sie Kubernetes ConfigMap, um nicht-sensible Konfiguration (wie API-Endpunkte, Funktions-Flags oder Anwendungseinstellungen) als Umgebungsvariablen für Ihre Datenintegrations-Tasks (einschließlich Big Data), Datenservices und Routen-Tasks bereitzustellen.") |
| Job nicht erstellt | Überprüfen Sie die Schlüsselkonsistenz in der additionalSpec mit den erklärten Volumes oder PVCs | [Mounten von Kubernetes PersistentVolumeClaims für persistenten Speicher in Dynamic Engine](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-persistentvolumeclaims "Verwenden Sie PersistentVolumeClaims, um persistente Speicher-Volumes in Ihre Container zu mounten, damit für Ihre Datenintegrations-Tasks (einschließlich Big Data), Datenservices und Routen-Tasks statusbehafteter Datenzugriff, Datenfreigabe über mehrere Pods hinweg und persistenter Speicher über Pod-Neustarts hinweg möglich sind.") |
| securityContext-Fehler | <ul> <li>Überprüfen Sie, ob die UID/GID-Werte für Ihr Container-Image gültig sind.</li> <li>Prüfen Sie Pod-Ereignisse auf <span>securityContext</span>-Fehler.</li> <li>Vergewissern Sie sich, dass <span>runAsNonRoot: true</span> mit Ihrem Container-Image kompatibel ist</li> </ul> | [Konfigurieren des securityContext für Task-Container, die in Dynamic Engine-Umgebungen ausgeführt werden](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/configuring-security-context-in-dynamic-engine "Überschreiben Sie den securityContext des Standard-Containers, um Tasks mit spezifischen Benutzer-IDs und Gruppen-IDs auszuführen. Dies ermöglicht eine detaillierte Berechtigungssteuerung, verbessert die Sicherheitsposition und erfüllt die Compliance-Anforderungen, ohne Container-Images für verschiedene Benutzer-IDs oder Gruppen-IDs neu erstellen zu müssen.") |
| Umgebungsvariablen werden nicht angezeigt | <ul> <li>Überprüfen Sie, ob die ConfigMap/das Secret vorhanden ist: <span>kubectl get configmap/secret -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span>.</li> <li>Prüfen Sie die Pod-Umgebung: <span>kubectl exec &lt;pod-name&gt; -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID -- env</span>.</li> <li>Prüfen Sie die Helm-Werte</li> </ul> | [Injizieren von Umgebungsvariablen über Kubernetes Secret](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/injecting-sensitive-data-from-kubernetes-secrets "Injizieren Sie sensible Daten (Passwörter, API-Schlüssel, Token) aus Kubernetes Secret als Umgebungsvariablen in Ihren Job-Tasks (Datenintegration, Big Data und Datenservices) und Routen-Tasks, damit sie leicht und sicher auf Anmeldedaten zugreifen können.") oder [Injizieren von Umgebungsvariablen über ConfigMap](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/injecting-environment-variables-from-configmaps "Verwenden Sie Kubernetes ConfigMap, um nicht-sensible Konfiguration (wie API-Endpunkte, Funktions-Flags oder Anwendungseinstellungen) als Umgebungsvariablen für Ihre Datenintegrations-Tasks (einschließlich Big Data), Datenservices und Routen-Tasks bereitzustellen.") |
| volumes können nicht gemountet werden | <ul> <li>Überprüfen Sie, ob das Secret vorhanden ist: <span>kubectl get secret -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span>.</li> <li>Überprüfen Sie den PVC-Status: <span>kubectl get pvc -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span>.</li> <li>Prüfen Sie Pod-Ereignisse: <span>kubectl describe pod &lt;pod-name&gt; -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID</span></li> </ul> | [Mounten von Kubernetes Secret als Volumes in Dynamic Engine-Containern](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-secrets-as-volumes "Anstatt Secret als Umgebungsvariable zu verwenden, können Sie diese als Dateien im Container-Dateisystem mounten. Dadurch erhalten Ihre Datenintegrations-Tasks (einschließlich Big Data), Datenservices und Routen-Tasks Zugriff auf Anmeldedaten in Konfigurationsdateien.") oder [Mounten von Kubernetes PersistentVolumeClaims für persistenten Speicher in Dynamic Engine](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/mounting-kubernetes-persistentvolumeclaims "Verwenden Sie PersistentVolumeClaims, um persistente Speicher-Volumes in Ihre Container zu mounten, damit für Ihre Datenintegrations-Tasks (einschließlich Big Data), Datenservices und Routen-Tasks statusbehafteter Datenzugriff, Datenfreigabe über mehrere Pods hinweg und persistenter Speicher über Pod-Neustarts hinweg möglich sind.") |

## Nächste Schritte

Nach dem Identifizieren Ihres Problems mit diesem Abschnitt:

* Prüfen Sie im Abschnitt [Mounten von benutzerdefinierten Kubernetes-Ressourcen in Dynamic Engine-Umgebungen](https://help.qlik.com/talend/de-DE/dynamic-engine-configuration-guide/Cloud/custom-kubernetes-resource-mounting "Anpassen von Dynamic Engine-Umgebungen durch Mounten von Kubernetes-Ressourcen: ConfigMap für nicht-sensible Konfiguration, Secret für Anmeldedaten, volumes für Dateien und Zertifikate, PersistentVolumeClaim für persistenten Speicher und securityContext für Benutzerberechtigungen.") die Voraussetzungen.
* Konsultieren Sie in der [Kubernetes-Dokumentation](https://kubernetes.io/docs/concepts/configuration/) Details zu ConfigMap, Secret, volumes und securityContext.
* Allgemeine Kubernetes-Fehlerbehebungsmuster und die kubectl-Befehlsreferenz finden Sie im [Kubernetes-Debugging-Handbuch](https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/).