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 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-Administrator-Zugriffsrolle der IBM CloudIAM-Plattform für den Cluster.

kubectl-Befehle funktionieren nicht

Wenn Sie kubectl Befehle gegen 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.

Einen Vergleich der kubectl-Version Ihres Clients mit der entsprechenden Version des Cluster-Servers liefert der Befehl kubectl version --short.

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.

kubectl-Befehle überschreiten Zeitlimit

Wenn Sie Befehle wie kubectl exec, kubectl attach, kubectl proxy, kubectl port-forward oder kubectl logs ausführen, wird die folgende Nachricht angezeigt:

<workerIP>:10250: getsockopt: connection timed out
kubectl -n kube-system logs metrics-server-65fc69c6b7-f682d -c metrics-server
Error from server: Get “https://10.38.193.213:10250/containerLogs/kube-system/metrics-server-65fc69c6b7-f682d/metrics-server”: EOF
kubectl -n kube-system exec -it metrics-server-65fc69c6b7-f682d -c metrics-server -- sh
Error from server: error dialing backend: EOF

Überprüfen und führen Sie die folgenden Schritte für Ihre Clusterversion aus.

  • Ab Version 1.21 funktioniert die Konnectivity-VPN-Verbindung zwischen dem Masterknoten und den Workerknoten nicht ordnungsgemäß.
  • Im Cluster sind sowohl private als auch öffentliche Serviceendpunkte aktiviert.
  • Serviceendpunkte oder VRF sind im Konto nicht aktiviert.

Um festzustellen, ob VRF und Serviceendpunkte in Ihrem Konto aktiviert sind, führen Sie ibmcloud account show aus. Suchen Sie nach der folgenden Ausgabe:

VRF Enabled:                        true
Service Endpoint Enabled:           true

Führen Sie ibmcloud ks cluster get -c <cluster_id> aus, um festzustellen, ob für Ihren klassischen Cluster sowohl der öffentliche als auch der private Serviceendpunkt aktiviert ist. Suchen Sie nach einer Ausgabe ähnlich der folgenden.

Public Service Endpoint URL:    https://c105.<REGION>.containers.cloud.ibm.com:<port>
Private Service Endpoint URL:   https://c105.private.<REGION>.containers.cloud.ibm.com:<port>

Wenn Ihr Cluster diese Bedingungen erfüllt, aktivieren Sie Serviceendpunkte und VRF für das Konto.