Debug für allgemeine CLI-Probleme mit Clustern ausführen
Virtuelle Private Cloud Klassische Infrastruktur
Informieren Sie sich anhand dieses Abschnitts über gängige Ursachen für CLI-Verbindungsprobleme oder das Fehlschlagen von Befehlen.
Firewall verhindert das Ausführen von CLI-Befehlen
Wenn Sie die Befehle ibmcloud, kubectl, oc oder calicoctl über die Befehlszeilenschnittstelle ausführen, schlagen sie fehl.
Möglicherweise verhindern Unternehmensnetzrichtlinien den Zugriff von Ihrem lokalen System auf öffentliche Endpunkte über Proxys oder Firewalls.
Lassen Sie TCP-Zugriff zu, damit die CLI-Befehle ausgeführt werden können.
Diese Aufgabe erfordert die IAM-Plattformzugriffsrolle Administrator IBM Cloud für den Cluster.
kubectl- oder oc-Befehle funktionieren nicht
Wenn Sie die Befehle kubectl oder oc für Ihren Cluster ausführen, schlagen Ihre Befehle mit einer Fehlermeldung ähnlich dem folgenden Beispiel fehl.
No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"
Ihre Version von kubectl weicht von der Version des Clusters ab.
Kubernetes unterstützt nicht kubectl Client-Versionen, die 2 oder mehr Versionen von der Server-Version abweichen (n +/- 2). Wenn
Sie einen Community-Kubernetes-Cluster verwenden, verfügen Sie möglicherweise auch über die Red Hat OpenShift-Version von kubectl, die für Community-Kubernetes-Cluster nicht geeignet ist.
Um die kubectl-Version Ihres Clients mit der entsprechenden Version des Cluster-Servers zu vergleichen, führen Sie den Befehl oc version --short aus.
Installieren Sie die Version der Befehlszeilenschnittstelle, die der Version Ihres Clusters entspricht.
Wenn Sie mehrere Cluster mit unterschiedlichen Versionen oder unterschiedliche Container-Plattformen wie Red Hat OpenShift haben, laden Sie jede kubectl Version in ein separates Verzeichnis herunter. Anschließend können Sie einen
Aliasnamen in Ihrem Profil der lokalen Befehlszeilenschnittstelle (CLI) konfigurieren, um auf das Verzeichnis der Binärdatei kubectl zu verweisen, das mit der kubectl-Version des Clusters übereinstimmt, mit dem Sie
arbeiten möchten, oder Sie können ein Tool wie brew switch kubernetes-cli <major.minor> verwenden.
Zeitlimitüberschreitung beim Herstellen einer Verbindung zu einem Pod
Sie versuchen, eine Verbindung zu einem Pod herzustellen, z. B. bei einer Anmeldung mit oc exec oder beim Abrufen von Protokollen mit oc logs. Der Pod ist in Ordnung, aber Sie erhalten eine Fehlermeldung ähnlich dem
folgenden Beispiel.
Error from server: Get https://<10.xxx.xx.xxx>:<port>/<address>: dial tcp <10.xxx.xx.xxx>:<port>: connect: connection timed out
Der VPN-Server hat Konfigurationsprobleme, die den Zugriff auf den Pod von seiner internen Adresse aus verhindern.
Vorbereitende Schritte: Greifen Sie auf Ihren Red Hat OpenShift-Cluster zu.
- Überprüfen Sie, ob Cluster- und Workerknotenaktualisierungen verfügbar sind. Rufen Sie hierfür Ihre Cluster- und Workerknotendetails in der Konsole oder mit dem Befehl
cluster lsbzw.worker lsab. Sind Aktualisierungen verfügbar, aktualisieren Sie Ihre Cluster- und Workerknoten auf die neueste Version. - Starten Sie den VPN-Pod neu, indem Sie ihn löschen. Ein anderer VPN-Pod wird geplant. Wenn er den STATUS Running hat, versuchen Sie eine Verbindung des Pods herzustellen, zu dem bisher keine Verbindung hergestellt
werden konnte.
oc delete pod -n kube-system -l app=vpn
500-Fehler beim Versuch, sich bei einem Red Hat OpenShift-Cluster über oc login
Wenn Sie zum ersten Mal versuchen, sich über oc login bei einem Red Hat OpenShift-Cluster anzumelden, erhalten Sie eine Fehlermeldung ähnlich dem folgenden Beispiel.
$ oc login SERVER -u apikey -p <APIKEY>
The server uses a certificate signed by an unknown authority.
You can bypass the certificate check, but any data you send to the server could be intercepted by others.
Use insecure connections? (y/n): y
Error from server (InternalError): Internal error occurred: unexpected response: 500
Einige kürzlich erfolgte Änderungen an der IAM-Benutzerrolle wurden noch nicht mit dem Red Hat OpenShift-Cluster synchronisiert.
Synchronisieren Sie die IAM-Benutzerinformationen mit dem Red Hat OpenShift-Cluster. Nach der Ausführung der initialen Benutzersynchronisation sollte die weitere RBAC-Synchronisierung automatisch erfolgen.
Vorbereitende Schritte:
Rufen Sie Ihren Red Hat OpenShift-Cluster auf.
Um die IAM-Informationen für den Benutzer zu synchronisieren, haben Sie zwei Optionen:
- Melden Sie sich über die Red Hat OpenShift Konsole bei Ihrem Cluster an.
- Definieren Sie den Befehlszeilenkontext für den Cluster, indem Sie den Befehl
ibmcloud oc cluster config --cluster CLUSTERausführen.
Wenn Sie einen API-Schlüssel für eine Funktions-ID oder einen anderen Benutzer verwenden, stellen Sie sicher, dass Sie sich als der richtige Benutzer anmelden.
Nachdem der betroffene Benutzer die IAM-Synchronisation abgeschlossen hat, kann der Clusteradministrator überprüfen, ob der Benutzer im Cluster vorhanden ist, indem er Benutzer mit dem Befehl oc get users auflistet.
Fehlende Projekte oder oc- und kubectl-Befehle schlagen fehl
Virtuelle Private Cloud Klassische Infrastruktur
Es werden nicht alle Projekte angezeigt, auf die Sie Zugriff haben. Wenn Sie versuchen, oc- oder kubectl-Befehle auszuführen, dann wird der folgende Fehler angezeigt.
No resources found.
Error from server (Forbidden): <resource> is forbidden: User "IAM#user@email.com" can't list <resources> at the cluster scope: no RBAC policy matched
Sie müssen die admin Konfigurationsdateien für Ihren Cluster herunterladen, um Befehle auszuführen, die die cluster-admin Clusterrolle erfordern.
Führen Sie ibmcloud oc cluster config --cluster <cluster_name_or_ID> --admin aus und versuchen Sie es erneut.