Was ist Kubectl Proxy?

Was ist Kubectl Proxy?
Ein Benutzer außerhalb eines Kubernetes -Cluster kann den Kubernetes -API -Server -Proxy verwenden, um eine Verbindung zu Cluster -IPs herzustellen, die ansonsten nicht verfügbar wäre. Dies ermöglicht beispielsweise den Zugriff auf einen Dienst, der nur im Netzwerk des Clusters verfügbar ist. Zwischen dem Benutzer und dem In-Cluster-Endpunkt arbeitet der Apiserver als Proxy und Bastion.

Wir haben Ubuntu 20 installiert.04 Auf unserem Linux -Betriebssystem, um die Anweisungen in Kubernetes auszuführen. Sie können ihm folgen. Sie müssen zusätzlich den Minikube -Cluster auf Ihrem Computer installieren, um Kubernetes unter Linux auszuführen. Minikube erleichtert Testbefehle und -Programme, indem Sie dies auf methodische Weise tun können. Infolgedessen bietet es Newcomern die beste Kubernetes -Lernerfahrung. Anfangs muss der Minikube -Cluster gestartet werden. Dann in Ubuntu 20.04, gehen Sie zum neu installierten Befehlszeilenterminal. Sie können dies tun, indem Sie die Taste Strg+Alt+T -Verknüpfung drücken oder „Terminal“ in die Ubuntu 20 eingeben.04 Suchbox des Systems. Eine der oben genannten Techniken startet das Terminal. Der Minikube wird danach gestartet. Geben Sie "Minikube Start" in das Terminal ein, um die Minikube zu starten. Der Kubernetes -Cluster wird gestartet, nachdem eine virtuelle Maschine, die in der Lage ist, einen einzelnen Knotencluster zu betreiben, erstellt wurde. Es ist auch mit der Kubectl -Umgebung kompatibel. Dies wird verwendet, um zunächst mit dem Cluster zu kommunizieren.

$ minikube Start

Um Zugang zu einem Cluster zu erhalten, müssen Sie wissen, wo sich er befindet und welche Anmeldeinformationen Sie benötigen. Dies geschieht normalerweise automatisch, wenn Sie einem Anleitung für Erste Schritte folgen oder jemand anderes den Cluster einstellt und Ihnen Anmeldeinformationen und einen Ort gibt. Der Befehl config -Ansicht zeigt an, wo Kubectl den Ort und die Anmeldeinformationen kennt.

$ kubectl config -Ansicht

So greifen Sie direkt auf die Rest -API zu ?

Kubectl ist verantwortlich für das Finden und Authentifizieren des Apiservers. Führen Sie im Proxy -Modus Kubectl aus.

  • Es ist eine empfohlene Methode.
  • Der Ort des gespeicherten Apiservers wird verwendet.
  • Der Apiserver ist authentifiziert.
  • Intelligenter Kunden auf dem Kunden auf der anderen Seite des Lades und des Failovers können in Zukunft erreichbar sein.

Stellen Sie dem HTTP -Client direkt den Standort und die Anmeldeinformationen an.

  • Eine andere Technik ist möglich.
  • Funktioniert mit einem bestimmten Client -Code, der verwirrt wird, wenn ein Proxy verwendet wird.
  • Um sich gegen MITM zu schützen, müssen Sie ein Stammzertifikat in Ihren Browser importieren.

Mit Kubectl -Proxy

Dieser Befehl konfiguriert Kubectl so, dass sie als Reverse Proxy arbeitet. Es ist verantwortlich für die Lokalisierung und Authentifizierung des Apiservers. Nehmen Sie dieses Szenario an:

$ kubectl proxy -port = 8080

Ein Beispiel für die Ausgabe ist wie folgt:

Ohne die Verwendung von Kubectl -Proxy

Um das Standard -Service -Account -Token zu erwerben, rennen Sie Kubectl Secret… mit Grep/Cut.

$ kubectl beschreibt Secret

API und der programmatische Zugriff

Es ist bekannt zu geben, dass Kubernetes jetzt Go und Python -Client -Bibliotheken unterstützt. Der GO -Client und der Python -Client können dieselbe Kubeconfig -Datei wie die Kubectl CLI verwenden, um sich mit dem Apiserver zu lokalisieren und zu authentifizieren.

Greifen Sie aus einer Pod auf die API zu

Bei der Kontaktaufnahme mit der API von einem Pod unterscheidet sich der Prozess des Findens und der Authentifizierung des Apiservers geringfügig. Der beste Weg, den Apiserver in der POD zu lokalisieren, besteht darin, die Kubernetes zu verwenden.Standard.SVC -DNS -Name. Es wird auf eine Service -IP aufgelöst, und es wird dann wiederum zu einem Apiserver übergeben.

Die Verwendung eines Service -Konto -Anmeldeinformationen zur Authentifizierung mit dem Apiserver wird vorgeschlagen. Danach wird ein Token für dieses Servicekonto im Dateisystembaum des Containers in dieser Pod aufbewahrt. Ein Zertifikatbündel wird in den Dateisystembaum jedes Containers bei/var/run/secrets/kubernetes eingefügt.IO/serviceAccount/ca.CRT, falls verfügbar und sollte verwendet werden, um das Servierzertifikat des Apiservers zu überprüfen.

Schließlich wird in jedem Container der Standard -Namespace für Namespa -API -Aktivitäten in einer Datei bei/var/run/secrets/kubernetes gespeichert.IO/serviceAccount/Namespace. Hier finden Sie einige Optionen, um eine Verbindung zu einer API innerhalb eines Pods herzustellen:

Führen Sie den Kubectl -Proxy als Hintergrundprozess im Container oder als POD -Seitenwagenbehälter aus. Dies ermöglicht andere Prozesse in einem der Container des POD, über die Localhost -Schnittstelle des POD auf die Kubernetes -API zuzugreifen.

Erstellen Sie einen Client, indem Sie die Go -Client -Bibliothek mit dem Code kombinieren. Kubernetes mit InclusterConfig () Die Funktionen newForConfig () und newForConfig () können verwendet werden, um einen Cluster zu konfigurieren. Sie sind verantwortlich für die Suche und Authentifizierung des Apiservers.

Abschluss

Hier haben wir Richtlinien zum Kubectl -Proxy gegeben. Was ist die Kubectl -Konfigurationsansicht üblich und wie können Sie mit und ohne Kubectl -Proxy auf die REST -API zugreifen?. Wir haben auch Beispiele geliefert, die Ihnen helfen, das Konzept besser zu verstehen.