|
Dieses Dokument wurde mithilfe automatisierter maschineller Übersetzungstechnologie übersetzt. Wir bemühen uns um korrekte Übersetzungen, übernehmen jedoch keine Gewähr für die Vollständigkeit, Richtigkeit oder Zuverlässigkeit der übersetzten Inhalte. Im Falle von Abweichungen ist die englische Originalversion maßgebend und stellt den verbindlichen Text dar. |
Projekte und Kubernetes Namespaces mit SUSE Rancher Prime
Ein Namespace ist ein Kubernetes-Konzept, das einen virtuellen Cluster innerhalb eines Clusters ermöglicht, was nützlich ist, um den Cluster in separate "virtuelle Cluster" zu unterteilen, die jeweils ihre eigene Zugriffskontrolle und Ressourcenquoten haben.
Ein Projekt ist eine Gruppe von Namespaces und ein Konzept, das von Rancher eingeführt wurde. Projekte ermöglichen es Ihnen, mehrere Namespaces als Gruppe zu verwalten und Kubernetes-Operationen in ihnen durchzuführen. Sie können Projekte nutzen, um die Multi-Tenancy zu unterstützen, sodass ein Team auf ein Projekt innerhalb eines Clusters zugreifen kann, ohne Zugriff auf andere Projekte im selben Cluster zu haben.
|
Projekte werden in der Benutzeroberfläche weniger betont, da es nicht erforderlich ist, Kubernetes-Ressourcen innerhalb eines Projektumfangs zu erstellen. Ressourcen wie Geheimnisse können weiterhin im Projektumfang erstellt werden. |
Dieser Abschnitt beschreibt, wie Projekte und Namespaces mit Rancher funktionieren.
Über Namespaces
Ein Namespace ist ein Konzept, das von Kubernetes eingeführt wurde. Laut der offiziellen Kubernetes-Dokumentation zu Namespaces,
|
Kubernetes unterstützt mehrere virtuelle Cluster, die demselben physischen Cluster zugrunde liegen. Diese virtuellen Cluster werden als Namespaces bezeichnet. […] Namespaces sind für die Verwendung in Umgebungen mit vielen Benutzern gedacht, die über mehrere Teams oder Projekte verteilt sind. Für Cluster mit wenigen bis mehreren Dutzend Benutzern sollten Sie keine Namespaces erstellen oder darüber nachdenken müssen. |
Namespaces bieten die folgende Funktionalität:
-
Bereitstellung eines Geltungsbereichs für Namen: Die Namen von Ressourcen müssen innerhalb eines Namespace eindeutig sein, jedoch nicht über verschiedene Namespaces hinweg. Namespaces können nicht ineinander geschachtelt werden, und jede Kubernetes-Ressource kann sich nur in einem Namespace befinden.
-
Ressourcenkontingente: Namespaces bieten eine Möglichkeit, Clusterressourcen zwischen mehreren Benutzern zu teilen.
Sie können Ressourcen auf Projektebene zuweisen, sodass jeder Namespace im Projekt diese nutzen kann. Sie können diese Vererbung auch umgehen, indem Sie Ressourcen explizit einem Namespace zuweisen.
Sie können die folgenden Ressourcen direkt einem Namespace zuweisen:
Um Berechtigungen in einem Standard-Kubernetes-Cluster zu verwalten, konfigurieren Cluster-Administratoren rollenbasierte Zugriffskontrolle für jeden Namespace. Mit Rancher werden die Benutzerberechtigungen stattdessen auf Projektebene zugewiesen, und die Berechtigungen werden automatisch von jedem Namespace geerbt, der zu dem jeweiligen Projekt gehört.
Für weitere Informationen zum Erstellen und Verschieben von Namespaces siehe Namespaces.
Probleme mit der rollenbasierten Zugriffskontrolle bei Namespaces und kubectl
Da Projekte ein Konzept sind, das von Rancher eingeführt wurde, hat kubectl nicht die Möglichkeit, die Erstellung von Namespaces auf ein Projekt zu beschränken, auf das der Ersteller Zugriff hat.
Das bedeutet, dass, wenn Standardbenutzer mit projektbezogenen Berechtigungen einen Namespace mit kubectl erstellen, er unbrauchbar sein kann, da kubectl nicht erfordert, dass der neue Namespace innerhalb eines bestimmten Projekts eingegrenzt ist.
Wenn Ihre Berechtigungen auf Projektebene beschränkt sind, ist es besser, einen Namespace über Rancher zu erstellen, um sicherzustellen, dass Sie die Berechtigung haben, auf den Namespace zuzugreifen.
Wenn ein Standardbenutzer Projektinhaber ist, kann der Benutzer Namespaces innerhalb dieses Projekts erstellen. Die Rancher-Benutzeroberfläche wird verhindern, dass dieser Benutzer Namespaces außerhalb des Geltungsbereichs der Projekte erstellt, auf die er Zugriff hat.
Über Projekte
In Bezug auf die Hierarchie:
-
Cluster enthalten Projekte
-
Projekte enthalten Namespaces
Sie können Projekte nutzen, um die Multi-Tenancy zu unterstützen, sodass ein Team auf ein Projekt innerhalb eines Clusters zugreifen kann, ohne Zugriff auf andere Projekte im selben Cluster zu haben.
In der Basisversion von Kubernetes werden Funktionen wie rollenbasierte Zugriffsrechte oder Clusterressourcen einzelnen Namespaces zugewiesen. Ein Projekt ermöglicht es Ihnen, Zeit zu sparen, indem es einer Einzelperson oder einem Team gleichzeitig Zugriff auf mehrere Namespaces gewährt.
Sie können Projekte verwenden, um Aktionen wie Folgendes auszuführen:
-
Benutzer einer Gruppe von Namespaces zuweisen (d.h. Projektmitgliedschaft).
-
Benutzern spezifische Rollen in einem Projekt zuweisen. Eine Rolle kann Eigentümer, Mitglied, nur lesen oder benutzerdefiniert sein.
-
Ressourcen dem Projekt zuweisen.
Wenn Sie einen Cluster erstellen, werden automatisch zwei Projekte darin erstellt:
Das Standardprojekt des Clusters
Wenn Sie einen Cluster mit Rancher bereitstellen, wird automatisch ein default Projekt für den Cluster erstellt. Dies ist ein Projekt, das Sie verwenden können, um mit Ihrem Cluster zu beginnen, aber Sie können es jederzeit löschen und durch Projekte mit beschreibenderen Namen ersetzen.
Wenn Sie keinen Bedarf für mehr als den Standard-Namespace haben, benötigen Sie auch nicht mehr als das Standard Projekt in Rancher.
Wenn Sie eine weitere Organisationsebene über das Standard Projekt hinaus benötigen, können Sie in Rancher weitere Projekte erstellen, um Namespaces, Anwendungen und Ressourcen zu isolieren.
Das Systemprojekt
Bei der Fehlersuche können Sie das system Projekt anzeigen, um zu überprüfen, ob wichtige Namespaces im Kubernetes-System ordnungsgemäß funktionieren. Dieses leicht zugängliche Projekt erspart Ihnen die Fehlersuche in einzelnen Containern des System-Namespaces.
Um es zu öffnen, öffnen Sie die Clusteransicht und klicken Sie auf . Diese Ansicht zeigt alle Namespaces im system Projekt.
Das system Projekt:
-
Wird automatisch erstellt, wenn Sie einen Cluster bereitstellen.
-
Listet alle Namespaces auf, die in
v3/settings/system-namespacesexistieren, falls sie existieren. -
Erlaubt es Ihnen, weitere Namespaces hinzuzufügen oder deren Namespaces in andere Projekte zu verschieben.
-
Kann nicht gelöscht werden, da es für Clusteroperationen erforderlich ist.
|
In RKE2/K3s-Clustern, in denen die Option zur Netzwerkisolierung des Projekts aktiviert ist, überschreibt das |
Projektberechtigung
Standardbenutzer sind nur in zwei Situationen für den Projektzugriff autorisiert:
-
Ein Administrator, Clusterbesitzer oder Clustermitglied fügt den Standardbenutzer ausdrücklich zur Registerkarte Mitglieder des Projekts hinzu.
-
Standardbenutzer können auf Projekte zugreifen, die sie selbst erstellen.
Projekte erstellen
Dieser Abschnitt beschreibt, wie man ein neues Projekt mit einem Namen und optionaler Pod-Sicherheitsrichtlinie, Mitgliedern und Ressourcenkontingenten erstellt.
Benennen Sie ein neues Projekt
-
Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.
-
Gehen Sie auf der Seite Cluster zu dem Cluster, in dem Sie ein Projekt erstellen möchten, und klicken Sie auf Erforschen.
-
Klicken Sie auf .
-
Klicken Sie auf Projekt erstellen.
-
Geben Sie einen Projektnamen ein.
Empfohlen: Projektmitglieder hinzufügen
Verwenden Sie den Abschnitt Mitglieder, um anderen Benutzern Zugriff auf das Projekt und Rollen zu gewähren.
Standardmäßig wird Ihr Benutzer als Owner des Projekts hinzugefügt.
|
Hinweise zu Berechtigungen:
|
Um Mitglieder hinzuzufügen:
-
Klicken Sie im Tab Mitglieder auf Hinzufügen.
-
Suchen Sie im Feld Mitglied auswählen nach einem Benutzer oder einer Gruppe, die Sie mit Projektzugriff zuweisen möchten. Sie können nur nach Gruppen suchen, wenn die externe Authentifizierung aktiviert ist.
Anmerkungen-
Es müssen mindestens 2 Zeichen im Suchfeld eingegeben werden, damit Ergebnisse angezeigt werden.
-
Benutzer können anhand ihres Benutzernamens oder Anzeigenamens gesucht werden.
-
Die Suche basiert auf Präfixen (z. B. wird ein Benutzer mit dem Namen
Stan Dardangezeigt, wenn nachStagesucht wird, jedoch nicht, wenn nachDargesucht wird) und ist groß-/kleinschreibungssensitiv.
-
-
Wählen Sie im Abschnitt Projektberechtigungen eine Rolle aus. Für weitere Informationen siehe die Dokumentation zu Projektrollen.
Optional: Ressourcenkontingente hinzufügen
Ressourcenkontingente begrenzen die Ressourcen, die ein Projekt (und seine Namespaces) verbrauchen kann. Für weitere Informationen siehe Ressourcenkontingente.
Um ein Ressourcenkontingent hinzuzufügen,
-
Klicken Sie im Tab Ressourcenkontingente auf Ressource hinzufügen.
-
Wählen Sie einen Ressourcentyp aus. Für weitere Informationen siehe Ressourcenkontingente..
-
Geben Sie Werte für das Projektlimit und das Namespace-Standardlimit ein.
-
Optional: Geben Sie Standardressourcengrenze für Container an, die auf jeden im Projekt gestarteten Container angewendet wird. Der Parameter wird empfohlen, wenn Sie CPU- oder Speicherkontingente durch das Ressourcenkontingent festgelegt haben. Es kann auf Ebene eines einzelnen Namespace oder eines Containers überschrieben werden. Für weitere Informationen siehe Standardressourcengrenze für Container
-
Klicken Sie auf Erstellen.
Ergebnis: Ihr Projekt wurde erstellt. Sie können es in der Projekte/Namespaces-Ansicht des Clusters anzeigen.
| Feld | Beschreibung |
|---|---|
Projektlimit |
Das gesamte Ressourcenlimit für das Projekt. |
Namespace-Standardlimit |
Das standardmäßige Ressourcenlimit, das für jeden Namespace verfügbar ist. Dieses Limit wird auf jeden Namespace im Projekt angewendet, wenn er erstellt wird. Das kombinierte Limit aller Projekt-Namespaces sollte das Projektlimit nicht überschreiten. |
Projekte löschen
-
Klicken Sie in der oberen linken Ecke auf ☰ > Clusterverwaltung.
-
Gehen Sie auf die Seite Cluster, zu der das Projekt gehört, und klicken Sie auf Erkunden.
-
Klicken Sie auf .
-
Suchen Sie das Projekt, das Sie löschen möchten, und klicken Sie auf ⋮.
-
Wählen Sie Löschen aus.
Wenn Sie ein Projekt löschen, bleiben alle Namespaces, die zuvor mit dem Projekt verbunden waren, im Cluster erhalten. Diese Namespaces finden Sie in der Rancher-Benutzeroberfläche im Tab Nicht in einem Projekt der Seite Projekte/Namespaces. Sie können diese Namespaces einem Projekt zuweisen, indem Sie verschieben verwenden.
Weitere Dokumente
Sie können Projekte und Projektmitglieder programmatischer über die Öffentliche API erstellen. Siehe das Dokument zum Projektworkflow für weitere Informationen.