App-Bereitstellungen debuggen
Virtuelle Private Cloud Klassische Infrastruktur
Informieren Sie sich über die Optionen, die Ihnen für das Debuggen Ihrer App-Bereitstellungen und zum Eingrenzen der jeweiligen Fehlerquelle zur Verfügung stehen.
Bevor Sie beginnen, vergewissern Sie sich, dass Ihnen die IAM-Service-Zugriffsrolle -Writer or -Manager IBM Cloud für den Namensbereich zugewiesen ist, in dem Ihre App bereitgestellt wird.
-
Informieren Sie sich anhand der folgenden allgemeinen Szenarios, bei denen möglicherweise eine Änderung Ihrer Apps für die Bereitstellung in Red Hat OpenShift-Clustern erforderlich ist.
-
Suchen Sie nach Unregelmäßigkeiten in den Service- oder Bereitstellungsressourcen, indem Sie den Befehl
describeausführen.oc describe service <service_name> -
Überprüfen Sie, ob die Container im Status
ContainerCreatingblockiert sind. -
Überprüfen Sie, ob der Cluster sich im Status
Critical(Kritisch) befindet. Befindet sich der Cluster im StatusCritical, dann überprüfen Sie die Firewallregeln und verifizieren Sie, ob der Master mit den Workerknoten kommunizieren kann. -
Vergewissern Sie sich, dass der Service am korrekten Port empfangsbereit ist.
- Rufen Sie den Namen eines Pods ab.
oc get pods - Melden Sie sich am Container an.
oc exec -it <pod_name> -- /bin/bash - Führen Sie den Curl-Befehl für die App innerhalb des Containers aus. Wenn auf den Port nicht zugegriffen werden kann, dann ist der Service möglicherweise nicht am richtigen Port empfangsbereit oder in der App sind Probleme aufgetreten. Aktualisieren
Sie die Konfigurationsdatei für den Dienst mit dem richtigen Port und stellen Sie ihn erneut bereit, oder untersuchen Sie mögliche Probleme mit der Anwendung.
curl localhost:<port>
- Rufen Sie den Namen eines Pods ab.
-
Stellen Sie sicher, dass der Service korrekt mit den Pods verbunden ist.
- Rufen Sie den Namen eines Pods ab.
oc get pods - Melden Sie sich am Container an.
oc exec -it <pod_name> -- /bin/bash - Führen Sie den Curl-Befehl für die Cluster-IP-Adresse und den Port des Service aus.
curl <cluster_IP>:<port> - Wenn nicht auf die IP-Adresse und den Port zugegriffen werden kann, dann untersuchen Sie die Endpunkte des Service.
- Wenn keine Endpunkte vorhanden sind, dann stimmt der Selektor für den Service nicht mit den Pods überein. Beispiel: Ihre App-Bereitstellung trägt die Bezeichnung
app=foo, der Service hat aber den Selektorrun=foo. - Wenn Endpunkte aufgeführt sind, dann überprüfen Sie das Feld des Zielports für den Service und vergewissern Sie sich, dass der Zielport identisch mit dem Zielport für die Pods ist. Beispiel: Ihre App ist an Port 9080 empfangsbereit, der Service jedoch an Port 80.
- Wenn keine Endpunkte vorhanden sind, dann stimmt der Selektor für den Service nicht mit den Pods überein. Beispiel: Ihre App-Bereitstellung trägt die Bezeichnung
- Rufen Sie den Namen eines Pods ab.
-
Überprüfen Sie für die Ingress-Services, ob auf den Service von innerhalb des Clusters zugegriffen werden kann.
- Rufen Sie den Namen eines Pods ab.
oc get pods - Melden Sie sich am Container an.
oc exec -it <pod_name> -- /bin/bash - Führen Sie den Curl-Befehl für die URL aus, die für den Ingress-Service angegeben wurde. Wenn nicht auf die URL zugegriffen werden kann, dann überprüfen Sie das System auf ein Firewallproblem zwischen dem Cluster und dem externen Endpunkt.
curl <host_name>.<domain>
- Rufen Sie den Namen eines Pods ab.