‫Bei Ihrem ersten Cluster, vielleicht sogar Ihren ersten Clustern,
‫müssen Sie sich nicht allzu viele Gedanken über dieses
‫Konzept von Namespaces und Kontexten machen.
‫Sie müssen sich jedoch darüber im Klaren sein, dass
‫es für den Fall, dass Sie es verwenden müssen, vorhanden ist.
‫Namespaces sind im Wesentlichen virtuelle Cluster oder virtuelle
‫Ansichten innerhalb eines einzelnen Clusters.
‫Sie filtert nicht nur die Ansicht des Befehls, sodass Sie
‫beim Eingeben von Befehlen nur bestimmte
‫Dinge sehen, sondern sie kann mit den richtigen Netzwerkrichtlinien-Plug-ins
‫auch das Netzwerk steuern.
‫Dies ist ein bisschen anders als in Swarm,
‫wo Sie in Swarm verschiedene Overlay-Netzwerke erstellen und alles
‫im Wesentlichen privat war.
‫In Kubernetes hängt die Vernetzung und Kontrolle von Apps
‫und deren Datenschutz sowie die Sicht- und Zugriffsmöglichkeiten
‫und die physische Kontrolle der Apps wirklich von Ihrem
‫Netzwerk-Plugin ab.
‫Namespaces selbst haben nichts mit Docker-Namespaces zu tun,
‫von denen Sie vielleicht schon gehört haben, die
‫eigentlich Teil des Linux-Subsystems sind, und so
‫funktionieren Container. Das hat nichts damit zu tun.
‫Dies ist einfach Kubernetes 'Sprichwort: Hey, in Ihrem Cluster ist möglicherweise
‫eine ganze Menge los, und ich gebe Ihnen die Möglichkeit,
‫kleine Mini-Cluster zu erstellen, in denen Sie den
‫Namespace mit einem Kontext festlegen, und das ist Ihre
‫Ansicht von Ändern Sie Ihren Kontext.
‫Sie können ändern, was Sie sehen.
‫Der Namespace besteht dann aus verschiedenen
‫Segmenten zum Filtern der Befehle sowie möglicherweise
‫des Netzwerks. Auf meinem System hier auf
‫meinem Desktop sehe ich einfach, wie Kubectl Namespaces abruft und dieser
‫Befehl zeigt mir 4. Das ist
‫der Standard, den Sie sehen werden.
‫Standard ist das, mit dem Sie bisher gearbeitet haben.
‫Das ist für den Standard-Namespace Ihrer
‫Apps gemacht. Das einzige, was es
‫Ihnen wirklich zeigt, wenn Sie
‫ein Kubectl bekommen haben, ist der Kubernetes API-Endpunkt selbst, richtig.
‫Bis wir angefangen haben, Apps hinzuzufügen, haben wir dort
‫nichts wirklich gesehen. Technisch läuft das
‫ganze Zeug im Hintergrund, richtig. Das ist es, was das Kubectl alles
‫bekommt - alle Namespaces.
‫Mit diesem Befehl können Sie alle
‫API-Container und alles, was nicht in Kubernetes
‫selbst läuft, anzeigen. Wenn ich mir alle Namespaces
‫auf einmal ansehe, bekomme ich alles inklusive Systemmaterial.
‫Dies ist eine Ansicht davon, wie es auf einem
‫Minikube aussehen würde, der alles in seine eigenen Pods packt, um den
‫Cluster selbst zu betreiben.
‫Dort ist viel los.
‫Die Erkenntnis ist, dass bei der normalen
‫Verwendung von Kubernetes die Befehlszeile standardmäßig auf den
‫Standard-Namespace ausgerichtet ist.
‫Sie werden Ihre Apps dort nur wirklich sehen,
‫außer auf dem API-Endpunkt.
‫Das ist eine gute Sache, richtig. Es verbirgt die
‫Komplexität dessen, was im Hintergrund vor sich geht,
‫vor Ihren alltäglichen Befehlen, da Sie diese Dinge nicht
‫wirklich sehen müssen, es sei denn, Sie müssen sie aktualisieren oder ändern oder
‫wenn Sie ein Problem haben. Der Kontext wird zum
‫Festlegen der Ansicht für das Ausführen von Befehlen verwendet.
‫Das Kubectl macht viele Dinge, richtig.
‫Es kann eine Verbindung zu verschiedenen Clustern herstellen.
‫Dies kann die Authentifizierung oder den Benutzer ändern, mit
‫dem Sie mit dem Cluster oder dem Namespace kommunizieren,
‫über den wir noch nicht gesprochen haben.
‫Also gibt es diese drei Teile wirklich eines Kontexts.
‫Dies ist der Cluster, die Authentifizierung oder der Benutzer und
‫dann der Namespace, den Sie anzeigen möchten.
‫All das ist standardmäßig in einer Datei
‫in der Datei definiert. kube-Verzeichnis Ihres
‫Home-Verzeichnisses.
‫Es gibt eine Datei namens config, und es
‫wird im Grunde genommen eine YAML-Datei von allen drei dieser Teile sein.
‫Sie können mehrere Einträge dort haben und Sie können es
‫bearbeiten, wie Sie möchten.
‫Sie könnten eine Reihe von verschiedenen Clustern haben, und solange Sie die Zertifikate
‫haben, um mit ihnen zu kommunizieren, die richtige Authentifizierung, können Sie
‫all das Zeug in diese Datei einfügen, und es ist etwas, das
‫Sie geheim halten möchten. Es ist
‫nichts, was Sie wirklich teilen möchten, da es
‫normalerweise Ihre Authentifizierungsschlüssel für die Kommunikation
‫mit einem Cluster enthält. Wenn Sie
‫den Befehl kubectl config mit dem Unterbefehl get contexts verwenden, also
‫plural, können Sie im Grunde die
‫Ausgabe dieser Datei sehen. Anstatt es roh
‫abzulegen, können Sie tatsächlich eine kleine
‫Liste dessen sehen, was es enthält.
‫In meinem Fall habe ich meinen Standard-Docker-Desktop auf
‫meinem lokalen Computer. Dieser Eintrag ist in
‫den letzten Ausgaben von Docker Desktop zweimal vorhanden, da der Name
‫geändert wurde, sodass beide Einträge aus Kompatibilitätsgründen beibehalten werden.
‫Dann habe ich einen lokalen Minikube und
‫eine Remote-Instanz von Micro-K8s, die auf einem
‫Ubuntu-Server ausgeführt werden.
‫Sie können sich also vorstellen, dass ich,
‫wenn ich viele andere Server verwalte, nicht immer in
‫diese Maschinen sshen möchte. Ich möchte wirklich nur auf meinem lokalen Computer
‫sitzen und mit dieser Remote-API sprechen.
‫Sie können den Befehl kubectl config mit jeder der
‫festgelegten Optionen verwenden. Sie möchten auf
‫jeden Fall die Hilfe dort überprüfen. Es gibt jedoch festgelegte Optionen
‫zum Festlegen der Standardeinstellungen für jede dieser Optionen, sodass
‫Sie möglicherweise den Benutzer ändern können, um eine
‫andere Authentifizierung zu erhalten. Vielleicht haben Sie also
‫Gottrechte, anstatt nur eine Teilmenge der Befehle, die Kubernetes
‫ausführen könnte. Oder vielleicht ändern Sie den Cluster,
‫mit dem Sie sprechen.
‫Es gibt sogar Befehlszeilen-Plug-ins, wenn Sie sich bei
‫Google umschauen, damit Sie
‫in Ihrer Shell sehen können, welchen Kontext Sie verwenden.
‫Das ist praktisch, wenn Sie am Ende eine ganze Reihe
‫verschiedener Cluster verwalten. Sie wollen wissen,
‫mit wem spreche ich gerade? Sie können das tatsächlich so
‫einstellen, wie es in den Eingabeaufforderungen angezeigt wird, in welchem
‫Zweig Sie sich befinden. Anhand dieser Informationen erfahren Sie,
‫welchen Kontext Sie haben.