Kubectl erhalten Sie Liste der Namespaces

Kubectl erhalten Sie Liste der Namespaces
Kubernetes ermöglichen verschiedene virtuelle Cluster, die von einem einzelnen physischen Cluster unterstützt werden, der als Namespaces in Kubernetes bekannt ist. In Kubernetes unterteilt das Namespace -Objekt im Grunde genommen einen einzelnen Cluster in mehrere virtuelle Cluster. Darüber hinaus können physische Ressourcen in logisch benannte Gruppen unterteilt werden und ermöglicht einem Kubernetes -Cluster, Ressourcen mit verschiedenen Gruppen zu teilen.

In diesem Artikel werden die Funktionen, Einschränkungen, die Einrichtung von Namespaces und die Erhöhung einer Liste von Namespaces erörtert. Beginnen wir mit der Definition von Kubectl -Namespaces.

Was sind Kubectl -Namespaces?

Ein Kubectl -Namespace ist ein Objekt in Kubernetes, das einen einzelnen physikalischen Kubernetes -Cluster in mehrere virtuelle Cluster unterteilt. Jedes Namespace -Objekt definiert die Grenzen für die Namen, die damit enthalten sind. Mit anderen Worten, jedes Namespace -Objekt im Cluster verfügt.

Die Kubectl -Namespaces werden verwendet. Die Effizienz der Ressourcen kann mithilfe von Namespaces erhöht werden, da ein Cluster für mehrere Sammlungen von Workloads verwendet wird.

Lassen Sie uns nun vorwärts gehen und sehen, wie Sie eine Liste von Namespaces erhalten und welche Voraussetzung erfüllt werden muss.

Voraussetzung:

Um das Namespaces Kubernetes -Objekt zu verwenden, muss der Minikube -Cluster installiert werden. In unserem Fall Ubuntu 20.04 wird verwendet, um die Befehle des Namespace -Objekts auszuführen. Zwei verschiedene Techniken werden verwendet, um ein Minikube -Cluster -Terminal zu starten. Die erste Technik besteht darin, mit der Anwendungsleiste des Betriebssystems auf das Terminal zuzugreifen. Die zweite Technik besteht darin, auf das Terminalfenster zuzugreifen, indem Strg+Alt+T gedrückt wird.

Starten Sie nach dem Zugriff auf das Terminalfenster das Minikube mit dem Befehl minikube start. Wenn der Befehl 'Minikube Start' ausgeführt wird, wird die folgende Ausgabe angezeigt:

Lassen Sie uns nun sehen, wie und wann die Kubectl -Namespaces verwendet werden soll.

So verwenden Sie Kubectl -Namespaces?

Das Kubernetes -Namespaces -Objekt gibt einen Mechanismus zur Trennung der Ressourcengruppe in einem Cluster an. Der Name jeder Ressource muss in einem Namespace eindeutig sein, aber nicht über die Namespaces hinweg eindeutig. Der Scoping von Namespaces ist jedoch nur für Namespace-Objekte wie Dienste und Bereitstellungen anwendbar, jedoch nicht für clusterweite Objekte wie persistente Bände, Knoten, Speicherklassen usw.

So wird die vorhandenen Namespaces in einem Cluster 'Kubectl GET Namespace' verwendet. Nach der Ausführung des Befehls wird die folgende Ausgabe erzeugt:

Beachten Sie, dass das Kubernetes-Objekt mit vier ersten Namespaces beginnt: Standard, Kube-Node-Lease, Kube-Public und Kube-System.

Standard: Namespace für Objekte ohne ein anderes Objekt.

Kube-Knoten-Lase: Es enthält ein Leasingobjekt, das allen Knoten zugeordnet ist.

Kube-public: Es wird automatisch erstellt und kann sowohl von authentifizierten als auch von nicht authentifizierten Benutzern lesbar sein.

Kube-System: Es wird durch das System von Kubernetes erstellt.

So setzen Sie den Namespace für eine Anfrage?

Das Flag '-Namesapace' wird verwendet, um den Namespace für eine Anfrage festzulegen. Hier ist der Code, um den Namespace für eine Anfrage festzulegen:

Nach dem Ausführen des Befehl 'kubectl run nginx' hat der Server den Fehler geworfen, da der Nginx -Pod bereits vorhanden ist. Lassen Sie uns jedoch den Befehl Get POD ausführen, um die Namespaces zu erhalten. Der Befehl 'kubectl get Pods' wird ausgeführt, um die Namespaces zu erhalten. Im Folgenden können Sie das Ergebnis des Befehls get pods sehen.

So setzen Sie die Einstellungen für Kubectl -Namespaces?

Die Namespaces für alle nachfolgenden Kubectl-Befehle können dauerhaft mit dem Befehl Set-Context gespeichert werden. Hier ist der Befehl, um die "Standard" -Namenspace -Präferenz festzulegen. Beachten Sie, dass '-NameSpace = Standard' bereitgestellt wird, um die Kubectl-Präferenz auf Standard zu setzen.

In ähnlicher Weise muss der Befehl "Ansicht" ausgeführt werden, um den Namespace anzuzeigen. Siehe den Code unten:

Die Beziehung zwischen DNS und Namespaces

Wenn ein Dienst erstellt wird, wird auch der entsprechende DNS -Eintrag erstellt. Der DNS -Eintrag enthält den Dienstnamen, den Namespace -Namen und den lokalen Cluster, was bedeutet, dass ein Container, wenn er nur den Dienstnamen verwendet, eine Verbindung zum lokalen Cluster -Namespace herstellt.

Dies wird nützlich, während die gleiche Konfiguration über verschiedene Namespaces wie Produktion, Inszenierung und Entwicklung bereitgestellt wird. Wenn die Benutzer über die Namespaces gelangen müssen, müssen sie den voll qualifizierten Domänennamen (FQDN) angeben.

Objekte, die nicht Teil des Namespace sind:

Das Kubernetes -Objekt oder die Ressourcen sind Teil eines Namespace, ich.e., Replikationscontroller, Dienste, Schoten usw. Das Namespace -Objekt selbst ist jedoch kein Teil eines Namespace. Darüber hinaus sind die anhaltenden Bände, Knoten und andere Ressourcen auf niedrigem Niveau kein Teil eines Namespace.

Um festzustellen, welche Ressourcen sich in einem Namespace befinden und welche Ressourcen in keinem Namespace enthalten sind, wird der Befehl API -Ressourcen verwendet. Siehe den Code unten.

Wenn die -namespaces auf 'true' festgelegt werden. Wenn die -namespaces andererseits auf "False" festgelegt werden, wird der Name dieser Ressourcen angezeigt, die sich in keinem der Namespaces befinden. Die 'kubectl api -resource -namespace = Namespace -Präferenz' wird verwendet, um die Ressourcen des Namespace anzuzeigen.

Wie Sie in den oben angegebenen Ausgängen beobachten können, werden die wahren und falschen Vorlieben gegeben, um festzustellen, welche Ressource in einem Namespace ist und welche nicht.

Abschluss:

In diesem Artikel geht es darum, komplizierte Systeme wie Kubernetes zu verwalten, selbst für Expertenbenutzer eine große Herausforderung sein kann. Ein starkes Wissen und das Kommando eines Namespace können jedoch herausfordernde und komplizierte Aufgaben erheblich erleichtern. Ein Namespace ist ein leistungsstarkes Tool, das die Hierarchie, Leistung und Sicherheit des Kubernetes -Systems definiert.