Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Je nach Ihrer Rolle als Cluster-Operator oder Entwickler können Sie Entwicklern eine Umgebung (Project) in AKS-Desktop bereitstellen, in der sie Anwendungen bereitstellen, migrieren oder verwalten können, oder ihnen ermöglichen, ihre Anwendungen selbstständig auf einem dedizierten AKS-Cluster bereitzustellen und zu verwalten. Alternativ können Sie weiteren Entwicklern Zugriff auf die Verwaltung, Beobachtung und Problembehandlung von Anwendungen gewähren.
Wenn Sie ein Projekt in AKS-Desktop erstellen, können Sie dies standardmäßig für andere Personen in Ihrer Organisation freigeben und die Berechtigungen für Sie festlegen. Möglicherweise müssen Sie jedoch Berechtigungen im Laufe der Zeit verwalten oder sie automatisieren oder ein Betriebssystemmodell definieren, indem Sie die entsprechenden Berechtigungen festlegen.
In diesem Artikel wird beschrieben, wie Sie RBAC-Berechtigungen verwalten, damit Teammitglieder mit AKS-Desktop arbeiten können.
Hinweis
AKS Desktop bietet derzeit keine Ui-Option zum Ändern von Project-Berechtigungen nach der Erstellung. Verwenden Sie das Azure-Portal oder die Azure CLI, wie in diesem Artikel beschrieben, um Berechtigungen zu aktualisieren oder zusätzlichen Benutzern Zugriff auf weitere Benutzer zu gewähren, nachdem ein Projekt erstellt wurde.
Hinweis
Wenn Sie Projekte in AKS-Desktop erstellen, werden von AKS verwaltete Namespaces in derselben Ressourcengruppe wie Ihr Cluster erstellt.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie nicht über ein Azure-Abonnement verfügen, können Sie ein kostenloses Azure-Konto erstellen.
- Azure CLI Version 2.64.0 oder höher installiert und konfiguriert. Überprüfen Sie Ihre Version mit dem Befehl
az --version. Informationen zum Ausführen einer Installation oder eines Upgrades finden Sie unter Installieren der Azure CLI. - Die
aks-previewAzure CLI-Erweiterung. Installieren Sie sie mit demaz extension add --name aks-previewBefehl. - Ein grundlegendes Verständnis der rollenbasierten Zugriffssteuerung (Azure Role-Based Access Control, RBAC) finden Sie unter "Was ist Azure RBAC?" und "Integrierte Azure-Rollen".
- Eine Azure-Ressourcengruppe, die Ihren AKS-Cluster und alle über AKS-Desktop erstellten AKS-verwalteten Projekte enthält.
- Ein AKS Standard-Cluster , der die AKS-Desktopanforderungen erfüllt, oder ein AKS Automatic Cluster, bei dem es sich um den Kubernetes-Cluster handelt, in dem Ihre Anwendungen ausgeführt werden.
- Eine Azure Container Registry (ACR) um Ihre Container-Abbilder für die Bereitstellung zu speichern.
Verantwortlichkeiten des Clusteroperators
Als Clusteroperator sind Sie für die Bereitstellung und Konfiguration der grundlegenden Infrastruktur verantwortlich, mit der Entwicklungsteams Anwendungen erstellen und bereitstellen können. Ihre Zuständigkeit umfasst:
- Erstellen der erforderlichen Azure-Infrastruktur (Ressourcengruppe, AKS-Cluster, ACR).
- Konfigurieren Sie die ACR-Integration mit Ihrem AKS-Cluster.
- Zuweisen von Berechtigungen für Benutzer zum Erstellen von Projekten.
- Optional die Berechtigungsverwaltung an Projekt-Ersteller delegieren.
Infrastrukturressourcen erstellen
Zum Erstellen der Infrastrukturressourcen benötigen Sie Berechtigungen zum Erstellen von Ressourcen in Azure. Wenn Ihnen die Rolle " Besitzer RBAC" nicht zugewiesen ist, benötigen Sie die Rolle " Mitwirkender " zum Erstellen von Ressourcen und zur Rolle " Benutzerzugriffsadministrator ", um anderen Benutzern Berechtigungen zuzuweisen. Weisen Sie Benutzern Berechtigungen zu, damit sie Ressourcen in der Ressourcengruppe erstellen können, indem Sie die folgenden Schritte ausführen:
Legen Sie Umgebungsvariablen für Die Ressourcengruppe und den Clusternamen fest. Ersetzen Sie die Platzhalter unbedingt durch die tatsächlichen Ressourcengruppen- und Clusternamen.
export RESOURCE_GROUP=<infra-resource-group> export CLUSTER_NAME=<cluster-name> export SUBSCRIPTION_ID=$(az account show --query id --output tsv) export ACR_NAME=<acr-name>Weisen Sie mithilfe des
az role assignment createBefehls die erforderliche Rolle zum Erstellen von Ressourcen in der Ressourcengruppe zu. Stellen Sie sicher, dass Sie<user-id>durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.az role assignment create --role "Contributor" \ --assignee <user-id> \ --scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP
Integrieren von ACR in Ihren AKS-Cluster
Fügen Sie Ihre Azure-Containerregistrierung mithilfe des az aks update Befehls an Ihren AKS-Cluster an.
az aks update \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER_NAME \
--attach-acr $ACR_NAME
Auswählen eines Projekterstellungsmodells
Als Clusteroperator haben Sie zwei Möglichkeiten, wie Entwickler mit Projekten in AKS-Desktop arbeiten:
- Self-Service-Modell: Entwickler erstellen und verwalten ihre eigenen Projekte. Dieser Ansatz bietet Entwicklern volle Autonomie, erfordert jedoch die Gewährung der Rolle eines Azure Kubernetes-Dienst-Namespace-Mitwirkenden. Wenn Entwickler eigene Projekte erstellen, erhalten sie automatisch die Besitzerrolle im verwalteten Namespace und können sofort mit der Bereitstellung von Anwendungen beginnen.
- Verwaltetes Modell: Sie erstellen Projekte für Entwickler und gewähren ihnen Zugriff. Derzeit können Sie dies während der Projekterstellung konfigurieren. Dieser Ansatz bietet mehr Kontrolle über die Projekterstellung, aber wenn Sie nach der Erstellung des Projekts weitere Teammitglieder zuweisen müssen, müssen Sie ihnen die erforderlichen Berechtigungen mithilfe des Azure-Portals oder der Azure CLI erteilen, wie in den folgenden Abschnitten beschrieben.
Self-Service-Modell: Entwickler können eigene Projekte erstellen
Damit Entwickler eigene Projekte erstellen können, weisen Sie ihnen die Rolle " Azure Kubernetes Service Namespace Contributor" im AKS-Cluster zu. AKS-Desktopprojekte erstellen im Hintergrund verwaltete AKS-Namespaces , und diese Rolle gewährt die erforderlichen Berechtigungen.
Weisen Sie Entwicklern die Rolle des Azure Kubernetes-Dienstnamespace-Beitragenden mithilfe des az role assignment create Befehls zu. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.
az role assignment create \
--role "Azure Kubernetes Service Namespace Contributor" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Verwaltetes Modell: Erstellen von Projekten für Entwickler und Zuweisen des Zugriffs
Wenn Sie Projekte im Auftrag von Entwicklern erstellen möchten, müssen Sie drei wichtige Rollen zuweisen, damit sie auf den Cluster zugreifen und innerhalb ihres zugewiesenen Namespaces arbeiten können:
-
Azure Kubernetes-Dienstclusterbenutzerrolle: Ermöglicht Entwicklern das Herunterladen der Clusteranmeldeinformationen mithilfe des
az aks get-credentialsBefehls. - Azure Kubernetes Service Namespace Benutzer: Ermöglicht den Zugriff auf den verwalteten Namespace.
- Eine der Kubernetes-RBAC-Rollen (Reader, Writer oder Admin): Steuert, welche Aktionen sie im Namespace ausführen können.
Alle drei Rollen sind erforderlich, damit Entwickler erfolgreich auf ihre Projekte in AKS-Desktop zugreifen und damit arbeiten können. Ohne die Azure Kubernetes-Dienstcluster-Benutzerrolle können Entwickler die kubeconfig-Datei nicht herunterladen, die zum Herstellen einer Verbindung mit dem Cluster erforderlich ist.
Clusterzugriff zuweisen
Weisen Sie die Azure Kubernetes-Dienstclusterbenutzerrolle zu, um den Kubeconfig-Download mithilfe des az role assignment create Befehls zu aktivieren. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.
az role assignment create \
--role "Azure Kubernetes Service Cluster User Role" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Namespacezugriff zuweisen
Weisen Sie die Rolle Azure Kubernetes Service Namespace User für das spezifische Projekt/Namespace mithilfe des Befehls az role assignment create zu. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.
export NAMESPACE_NAME=<namespace-or-project-name>
az role assignment create \
--role "Azure Kubernetes Service Namespace User" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME
Kubernetes-RBAC-Rolle zuweisen
Weisen Sie die entsprechende Kubernetes-RBAC-Rolle basierend darauf zu, was der Entwickler tun muss:
- Azure Kubernetes Service RBAC Reader für schreibgeschützten Zugriff.
- Azure Kubernetes Service RBAC Writer für die Bereitstellung von Anwendungen.
- Azure Kubernetes Service RBAC Admin für volle administrative Kontrolle.
Rufen Sie die AKS-Cluster-ID mithilfe des
az aks showBefehls ab.AKS_ID=$(az aks show \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --query id \ --output tsv)Weisen Sie die entsprechende Kubernetes-RBAC-Rolle mithilfe des
az role assignment createBefehls zu. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen. Im folgenden Beispiel wird die Rolle Azure Kubernetes Service RBAC Writer zugewiesen.az role assignment create \ --role "Azure Kubernetes Service RBAC Writer" \ --assignee <developer-user-id> \ --scope $AKS_ID/namespaces/$NAMESPACE_NAME
Zulassen, dass Project-Ersteller Zugriffsberechtigungen zuweisen (optional)
Wenn Projektersteller in der Lage sein sollen, anderen Benutzern Zugriffsberechtigungen zuzuweisen, erteilen Sie ihnen die Rolle " Benutzerzugriffsadministrator" . Mit dieser Berechtigung kann der Benutzer Berechtigungen für alle Ressourcen in der Infrastrukturressourcengruppe festlegen.
Weisen Sie die Rolle " Benutzerzugriffsadministrator " mithilfe des az role assignment create Befehls zu. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.
az role assignment create \
--role "User Access Administrator" \
--assignee <user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP
Verantwortlichkeiten für Entwickler
Als Entwickler arbeiten Sie in einer vorhandenen AKS-Desktopumgebung, um Anwendungen bereitzustellen, Projekte zu verwalten und Ihre Workloads zu überwachen. Der Clusteroperator gewährt Ihnen die erforderlichen Berechtigungen zum Ausführen dieser Aufgaben. Ihre Zuständigkeit umfasst:
- Bereitstellen von Anwendungen in Projekten.
- Anzeigen und Verwalten bereitgestellter Anwendungen.
- Überwachen von Anwendungsmetriken und Protokollen.
- Ändern des Project-Zugriffs (falls erforderlich).
Erforderliche Benutzerrollen für Entwickler
Um mit AKS Desktop als Entwickler zu arbeiten, muss Ihr Clusteroperator Ihnen drei wichtige Rollen zuweisen:
Azure Kubernetes-Dienstclusterbenutzerrolle: Ermöglicht Ihnen das Herunterladen von Clusteranmeldeinformationen mithilfe des
az aks get-credentialsBefehls, bei dem es sich um eine Anforderung handelt, von Ihrem lokalen Computer oder über AKS-Desktop eine Verbindung mit dem Cluster herzustellen.Azure Kubernetes Service Namespace User: Gewährt Zugriff auf Ihren zugewiesenen verwalteten Namespace/Project.
Eine der Kubernetes-RBAC-Rollen (Reader, Writer oder Admin): Steuert, welche Aktionen Sie im Namespace ausführen können.
- Azure Kubernetes Service RBAC Reader für schreibgeschützten Zugriff.
- Azure Kubernetes Service RBAC Writer für die Bereitstellung von Anwendungen.
- Azure Kubernetes Service RBAC Admin für volle administrative Kontrolle.
Wie Berechtigungen zugewiesen werden
Berechtigungen werden basierend auf der Erstellung von Projekten auf dem AKS-Desktop zugewiesen:
Projektersteller: Erhält automatisch die Rolle "Besitzer" im verwalteten Namespace und alle erforderlichen Berechtigungen zum Bereitstellen von Anwendungen.
Andere Benutzer: Muss dem Clusteroperator oder dem Projektersteller Zugriff gewährt werden. Sie erhalten:
- Azure Kubernetes-Dienstclusterbenutzerrolle auf dem Cluster.
- Azure Kubernetes Service Namespace-Benutzerrolle im Namespace.
- Eine der Kubernetes RBAC-Rollen (Leser, Autor oder Administrator).
Zum Bereitstellen von Anwendungen benötigen Sie die Rolle "Writer" oder "Administrator" . Weitere Informationen finden Sie unter Integrierte Rollen im verwalteten Namespace.
Anzeigen von Anwendungsmetriken
Hinweis
Es kann bis zu 10 Minuten dauern, bis die Metriken aufgefüllt werden, nachdem eine Anwendung bereitgestellt wurde.
Auf der Startseite von Project können Sie Metriken für Ihre Anwendung anzeigen, z. B. CPU, Arbeitsspeicher und Netzwerkauslastung. Diese Metriken stammen aus dem verwalteten Prometheus-Endpunkt, der von einem Azure Monitor-Arbeitsbereich unterstützt wird.
Zum Anzeigen von Metriken benötigen Sie die Rolle " Überwachungsdatenleser " im Azure Monitor-Arbeitsbereich. Diese Rolle gewährt Zugriff auf alle Metriken für den Cluster, nicht nur ihre spezifischen Projekte.
Ihr Clusteroperator kann diese Berechtigung mithilfe der folgenden Schritte zuweisen:
Identifizieren Sie den Azure Monitor-Arbeitsbereich, der von Ihrem Cluster mithilfe des
az alerts-management prometheus-rule-group listBefehls verwendet wird.export WORKSPACE_ACC_FOR_PROM_RULES=$(az alerts-management prometheus-rule-group list \ --resource-group "$RESOURCE_GROUP" \ --query "[?clusterName=='$CLUSTER_NAME'] | [0].scopes[0]" \ --output tsv)Weisen Sie die Rolle " Überwachungsdatenleser " mithilfe des
az role assignment createBefehls zu. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.az role assignment create \ --role "Monitoring Data Reader" \ --assignee <user-id> \ --scope $WORKSPACE_ACC_FOR_PROM_RULES
Ändern von Project-Zugriffsberechtigungen
Derzeit bietet AKS Desktop keine Ui-Option zum Ändern von Project-Berechtigungen nach der Erstellung. Wenn Sie Ihre Berechtigungen aktualisieren oder anderen Benutzern Zugriff gewähren müssen, arbeiten Sie mit Ihrem Clusteroperator zusammen, um Berechtigungen mithilfe des Azure-Portals oder der Azure CLI zu aktualisieren. In den folgenden Schritten wird beschrieben, wie Sie die erforderlichen Rollen mit Azure CLI zuweisen:
Clusterzugriff zuweisen
Weisen Sie die Azure Kubernetes-Dienstclusterbenutzerrolle zu, um den Kubeconfig-Download mithilfe des az role assignment create Befehls zu aktivieren. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.
az role assignment create \
--role "Azure Kubernetes Service Cluster User Role" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME
Namespacezugriff zuweisen
Weisen Sie die Rolle Azure Kubernetes Service Namespace User für das spezifische Projekt/Namespace mithilfe des Befehls az role assignment create zu. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen.
export NAMESPACE_NAME=<namespace-or-project-name>
az role assignment create \
--role "Azure Kubernetes Service Namespace User" \
--assignee <developer-user-id> \
--scope /subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.ContainerService/managedClusters/$CLUSTER_NAME/namespaces/$NAMESPACE_NAME
Kubernetes-RBAC-Rolle zuweisen
Weisen Sie die entsprechende Kubernetes-RBAC-Rolle basierend darauf zu, was der Entwickler tun muss:
- Azure Kubernetes Service RBAC Reader für schreibgeschützten Zugriff.
- Azure Kubernetes Service RBAC Writer für die Bereitstellung von Anwendungen.
- Azure Kubernetes Service RBAC Admin für volle administrative Kontrolle.
Rufen Sie die AKS-Cluster-ID mithilfe des
az aks showBefehls ab.AKS_ID=$(az aks show \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --query id \ --output tsv)Weisen Sie die entsprechende Kubernetes-RBAC-Rolle mithilfe des
az role assignment createBefehls zu. Stellen Sie sicher, dass Sie den Platzhalter durch die entsprechende Benutzer- oder Dienstprinzipal-ID ersetzen. Im folgenden Beispiel wird die Rolle Azure Kubernetes Service RBAC Writer zugewiesen.az role assignment create \ --role "Azure Kubernetes Service RBAC Writer" \ --assignee <developer-user-id> \ --scope $AKS_ID/namespaces/$NAMESPACE_NAME
Erteilen von Berechtigungen zum Anzeigen von Metriken (optional)
Um Berechtigungen zum Anzeigen von Metriken zu erteilen, führen Sie die Schritte im Abschnitt "Anwendungsmetriken anzeigen" aus .