Wie ändere ich den Standard -Namespace in Kubectl??

Wie ändere ich den Standard -Namespace in Kubectl??

Sie werden lernen, wie Sie in diesem Beitrag einen Standard -Namespace in Kubectl ändern können. Alle Ressourcen von Kubernetes werden in Namespaces organisiert. Mit Namespaces können Sie Bedenken hinsichtlich der von verschiedenen Projekte geteilten Ressourcen trennen. Wenn der Namespace nicht angegeben ist, werden alle Ressourcen im Standard -Namespace erstellt. Dies gilt für alle Anweisungen, die an Ihren Cluster gerichtet sind. Wenn das Argument -n nicht für einen Namespace in einem Kubectl -Befehl verwendet wird, gibt der Kubernetes die Ausgabe von Ressourcen im Standard -Namespace an.

Namespaces sind eine Kubernetes -Funktion, mit der Sie Ressourcengruppen in einem Cluster teilen können. In einem Namespace müssen Ressourcennamen eindeutig sein, jedoch nicht zwischen Namespaces. Der Namespace-basierte Scoping ist nur für Namensartikel (z. B. Bereitstellungen und Dienste) anwendbar, nicht für clusterweite Objekte (e.G., StorageClass, Knoten, persistentvolum usw.).

Der "Standard" -Anernamespace

In den meisten Kubernetes -Veröffentlichungen sind ein Namespace mit dem Namen "Standard" im Cluster enthalten. In Kubernetes gibt es drei Namespaces: Standard, Kube-System und Kube-Public. Kube-public wird derzeit nicht sehr oft verwendet, und das Kube-System wird normalerweise ignoriert, insbesondere in einem regulierten System wie Google Kubernetes Engine (GKE). Infolgedessen wird der Standard -Namespace verwendet, um Ihre Dienste und Apps zu erstellen. An diesem Namespace ist nichts Bemerkenswertes als das Kubernetes -Tooling so konfiguriert, dass Sie ihn nicht in der Box verwenden können und dass Sie es nicht löschen können. Es eignet sich hervorragend zum Einstieg und für kleinere Produktionssysteme, aber es ist nicht für größere geeignet. Dies liegt an der Tatsache, dass es für ein Team recht einfach ist, einen anderen Service versehentlich zu überschreiben oder zu stören. Teilen Sie stattdessen Ihre Dienste in verdauliche Bits, indem Sie mehrere Namespaces erstellen.

Bevor Sie fortfahren:

Starten Sie zunächst den Minikube -Cluster, der bereits auf Ihrem Ubuntu 20 installiert ist.04 LTS -Betriebssystem. Geben Sie zum Ausführen von Minikube den angehängten Befehl in die Befehlszeile ein:

$ minikube Start

Namespaces anzeigen

Sie können eine Liste aller Namespaces in einem Cluster erhalten, indem Sie den folgenden Befehl eingeben.

Wenn ein Element keinen anderen Namespace hat, ist dies der Standard -Namespace. Der Kube-System-Namespace enthält Objekte, die speziell vom Kubernetes-System entwickelt wurden. Andererseits existiert der kube-öffentliche Namespace automatisch und steht allen Benutzern Arten zur Verfügung. Dieser Namespace ist für die Verwendung von Cluster dient, wenn einige Ressourcen öffentlich verfügbar und lesbar über den gesamten Cluster lesbar sein müssen. Der öffentliche Aspekt dieses Namespace ist lediglich eine Empfehlung, kein Mandat. Mit jedem Knoten verbundene Leasingobjekte werden im Kube-Knoten-Lase-Namespace gespeichert. Das KuBelet kann über Knotenmietverträge Heartschläge an die Kontrollebene übertragen, sodass die Kontrollebene einen Knotenausfall erkennen kann.

Definieren des Namespace einer Anfrage

Beachten Sie, dass der Parameter -namespace -Parameter speziell verwendet wird, um den Namespace für eine aktuelle Anforderung festzulegen.

Mit dem folgenden Befehl erhalten Sie möglicherweise eine Liste aller Pods aus einem bestimmten Namespace.

Auswahl eines bevorzugten Namespace

Für alle weiteren Kubectl -Befehle in diesem Zusammenhang können Sie den Namespace dauerhaft speichern.

In diesem Befehl wird der derzeit genutzte Namespace angezeigt.

Nicht jedes Objekt hat einen Namespace

Pods, Dienste, Replikationscontroller und andere Kubernetes -Ressourcen sind in Namespaces organisiert. Namespace -Ressourcen hingegen sind nicht in einem Namespace enthalten. Knoten und Persistentvolum sind Ressourcen mit niedriger Ebene, die sich in keinem Namespace befinden. Um zu sehen, welche Kubernetes -Ressourcen in einem Namespace verwendet werden, lesen Sie den folgenden Befehl:

Verwenden Sie den folgenden Befehl, um zu sehen, welche Kubernetes -Ressourcen nicht in einem Namespace verwendet werden:

DNS -Namespaces

Ein DNS -Eintrag wird für einen Dienst erstellt, wenn er erstellt wird. Das Format dieses Eintrags ist . Wenn ein Container ausschließlich Service-NAME> verwendet, wird er laut SVC auf einen Namespace-Lokal-Dienst aufgelöst.Cluster.lokal. Wenn Sie dieselbe Konfiguration in mehreren Namensspitzen wie Inszenierung, Entwicklung und Produktion verwenden möchten, wäre dies kritisch. Sie müssen den voll qualifizierten Domainnamen verwenden, wenn Sie über Namespaces hinweg erreichen möchten.

Wann sollten Sie mehrere Namespaces verwenden?

Namespaces sind für Situationen ausgelegt, in denen eine große Anzahl von Benutzern in mehreren Teams oder Projekten verteilt ist. Sie sollten keine Namespaces für Cluster mit einigen bis zehn Benutzern erstellen oder übernachten müssen. Wenn Sie die von den Namenspaces angegebenen Funktionen benötigen, beginnen Sie sie mit ihnen.

Namespaces bieten Namen für einen Ort, an dem Sie gehen können. In einem Namespace müssen Ressourcennamen eindeutig sein, jedoch nicht zwischen Namespaces. Namespaces sind ein Mittel für zahlreiche Benutzer, um Cluster -Ressourcen zu teilen, und sie trennen Ressourcen, die denselben Namespace enthalten.

Abschluss

Sie haben gelernt, wie man den Standardkubernetes -Namespace mit der Kubectl -Befehlszeile in diesem Beitrag ändert. Der Standard -Namespace wird dem Standard -Namespace zugewiesen, wenn Sie einen AKS oder ein lokaler Kubernetes -Cluster erstellen. Wenn alle Ihre Workloads nicht im Standard -Namespace sind, kann dies ein Ärger sein.