Pod- und Serviceprobleme auf virtuellen Knoten mit dem kubectl-Proxy anstatt mit der kubectl-Portweiterleitung beheben

Erfahren Sie, wie Sie mit dem kubectl-Proxy (und nicht mit dem kubectl-Port-Forward) die Anwendungsausgabe anzeigen, um Probleme mit Pods zu lösen, die auf virtuellen Knoten ausgeführt werden.

Wenn Sie eine Anwendung testen und debuggen, die in Pods in einem Kubernetes-Cluster ausgeführt wird, und auf die internen Ressourcen des Clusters zugreifen, ohne sie dem öffentlichen Internet zugänglich zu machen, ist es oft nützlich, die Ausgabe der Anwendung so anzuzeigen, als würde sie lokal auf Ihrem Computer ausgeführt.

Wenn Sie verwaltete Knotenpools verwenden, können Sie den Befehl kubectl port-forward auf Ihrem lokalen Rechner verwenden, um die Ausgabe von Anwendungen anzuzeigen, die in Pods auf verwalteten Knoten ausgeführt werden. Mit dem Befehl kubectl port-forward wird ein sicherer Tunnel zwischen einem lokalen Rechner und einer Anwendung erstellt, die auf einem Kubernetes-Cluster ausgeführt wird. Der Tunnel ermöglicht den Datenverkehr zwischen den beiden Endpunkten, sodass Sie die Ausgabe der Anwendung vom lokalen Rechner anzeigen können.

Wenn Sie jedoch virtuelle Knotenpools verwenden, können Sie den Befehl kubectl port-forward nicht verwenden, um die Ausgabe von Anwendungen anzuzeigen, die in Pods auf virtuellen Knoten ausgeführt werden. Verwenden Sie alternativ den Befehl kubectl proxy für denselben Zweck.

Beispiel:

  1. Falls noch nicht geschehen, installieren Sie kubectl (siehe kubectl-Dokumentation).
  2. Falls noch nicht geschehen, führen Sie die Schritte zum Einrichten der kubeconfig-Konfigurationsdatei des Clusters für die lokale Verwendung aus, und legen Sie (gegebenenfalls) die Umgebungsvariable KUBECONFIG so fest, dass sie auf die Datei verweist. Beachten Sie, dass Sie Ihre eigene kubeconfig-Datei einrichten müssen. Sie können nicht mit einer kubeconfig-Datei, die von einem anderen Benutzer eingerichtet wurde, auf ein Cluster zugreifen. Möglicherweise müssen Sie auch die Umgebungsvariable OCI_CLI_PROFILE auf den Namen des in der CLI-Konfigurationsdatei definierten Profils festlegen, bevor Sie kubectl-Befehle ausführen. Siehe Lokalen Zugriff auf Cluster einrichten.
  3. Erstellen Sie ein Deployment im Cluster im Standard-Namespace. Beispiel: Geben Sie Folgendes ein:
    kubectl create -f https://k8s.io/examples/application/deployment.yaml
  4. Rufen Sie die Liste der Pods ab, indem Sie Folgendes eingeben:
    kubectl get pods
  5. Starten Sie in einem lokalen Terminalfenster einen Proxy, indem Sie Folgendes eingeben:
    kubectl proxy --port=8080
  6. In einem anderen lokalen Terminalfenster können Sie jetzt:
    • Zeigen Sie die Podausgabe an, indem Sie Folgendes eingeben:
      curl http://localhost:8080/api/v1/namespaces/<namespace-name>/pods/<pod-name>/proxy/

      Beispiel:

      curl http://localhost:8080/api/v1/namespaces/default/pods/nginx-5b6b9d4766-qs9tc/proxy/
    • Zeigen Sie die Serviceausgabe an, indem Sie Folgendes eingeben:
      curl http://localhost:8080/api/v1/namespaces/<namespace-name>/services/<service-name>/proxy/

      Beispiel:

      curl http://localhost:8080/api/v1/namespaces/default/services/nginx-service/proxy/

    Beachten Sie in beiden Fällen den Schrägstrich ( / ) am Ende des Befehls.