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.
In diesem Lernprogramm erfahren Sie, wie Sie mithilfe von Service Connector ein Azure Storage Konto mit einem Pod in einem Azure Kubernetes Service (AKS) Cluster mithilfe der Workloadidentität verbinden. Sie führen die folgenden Aufgaben durch:
- Erstellen Sie einen AKS-Cluster und ein Azure Storage Konto.
- Erstellen Sie eine Verbindung zwischen dem AKS-Cluster und dem Azure Storage Konto mithilfe von Service Connector.
- Klonen Sie eine Beispielanwendung, die eine Verbindung mit dem Azure Storage Konto aus dem AKS-Cluster herstellt.
- Stellen Sie die Anwendung auf einem Pod im AKS-Cluster bereit, und testen Sie die Verbindung.
- Bereinigen der Ressourcen
Voraussetzungen
- Grundlegendes Verständnis von Containern, Workloadidentität und AKS. Weitere Informationen finden Sie unter Tutorial: Vorbereiten einer Anwendung für Azure Kubernetes Service (AKS).
- Ein Azure-Abonnement, in dem Sie über Berechtigungen zum Schreiben von Azure-Ressourcen verfügen, in einer Azure-Region, die Service Connector unterstützt und über ausreichende AKS-Unterstützung und ein Computekontingent verfügt, um das Lernprogramm auszuführen. Sie können kostenlos ein Konto erstellen.
- Die
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryundMicrosoft.ManagedIdentityRessourcenanbieter, die im Azure-Abonnement registriert sind. Sie könnenaz provider register -n Microsoft.[service]ausführen, um die Anbieter zu registrieren. - Git verwenden, um auf das Beispiel-Repository zuzugreifen und es zu klonen.
-
Docker und Kubectl wurden installiert, um Containerimages und Kubernetes-Ressourcen zu verwalten. Installieren Sie
kubectllokal, indem Sieaz aks install-cliausführen. - Azure CLI installiert.
Erstellen von Azure-Ressourcen
Melden Sie sich bei Azure an, indem Sie az login ausführen und den Anweisungen folgen.
Erstellen Sie eine Azure-Ressourcengruppe für dieses Lernprogramm, und ersetzen Sie den Platzhalter
<region>durch einen gültigen Wert. Dielocationmuss eine Azure-Region sein, in der Ihr Abonnement über ein ausreichendes Rechenkontingent für die Azure-Ressourcen verfügt und keine Einschränkungen für die Dienste bestehen.az group create \ --name MyResourceGroup \ --location <region>Erstellen Sie einen AKS-Cluster, der die Dienstverbindung, die Poddefinition und die Beispielanwendung enthält, indem Sie den folgenden Befehl ausführen. Weitere Informationen finden Sie unter Quickstart: Bereitstellen eines Azure Kubernetes Service (AKS) Clusters mithilfe von Azure CLI.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Stellen Sie eine Verbindung mit dem Cluster her, indem Sie den folgenden Befehl ausführen.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterErstellen Sie ein Azure Storage Konto, um der Zieldienst zu sein, mit dem der AKS-Cluster eine Verbindung herstellt und mit der Beispielanwendung interagiert. Weitere Informationen finden Sie unter Create an Azure storage account. Führen Sie den folgenden Befehl aus, und ersetzen Sie
<storageaccountname>durch einen Namen mit 3 bis 24 Kleinbuchstaben oder numerischen Zeichen, der für Azure eindeutig ist.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSErstellen Sie eine Azure-Containerregistrierung, um das Anwendungscontainerimage zu hosten, das von der AKS-Poddefinition verwendet wird. Weitere Informationen finden Sie unter Quickstart: Erstellen einer Azure Containerregistrierung mithilfe des Azure Portals. Führen Sie den folgenden Befehl aus, und ersetzen Sie
<registryname>durch einen Namen, der aus 5 bis 50 Buchstaben in Kleinbuchstaben oder numerischen Zeichen besteht und in Azure eindeutig ist.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardAktivieren Sie anonyme Pullvorgänge, damit die Registrierungsimages vom AKS-Cluster genutzt werden können. Ersetzen Sie den
<registryname>Platzhalter durch Ihren Registrierungsnamen.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledFühren Sie den folgenden Befehl aus, um eine vom Benutzer zugewiesene verwaltete Identität zu erstellen, die bei der Erstellung der Dienstverbindung verwendet werden kann, um die Workload-Identität für AKS-Workloads zu aktivieren. Weitere Informationen finden Sie unter Manage von vom Benutzer zugewiesenen verwalteten Identitäten mithilfe des Azure Portals.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Herstellen einer Dienstverbindung mit dem Dienstconnector
Erstellen Sie eine Dienstverbindung zwischen dem AKS-Cluster und dem Azure Storage Konto mithilfe von Azure CLI oder dem Azure-Portal.
Führen Sie den folgenden Azure CLI Befehl aus, um eine Dienstverbindung mit dem Azure Speicherkonto zu erstellen. Ersetzen Sie `<storageaccountname>` durch den Namen Ihres Speicherkontos und `<user-identity-resource-id>` durch Ihre vom Benutzer zugewiesene verwaltete Identitätsressourcen-ID.
Sie können ihre vom Benutzer zugewiesene verwaltete Identitätsressourcen-ID aus der Ausgabe des vorherigen Befehls az identity create abrufen oder das Format /subscriptions/<subscription-id>/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyIdentity verwenden.
az aks connection create storage-blob \
--resource-group MyResourceGroup \
--name MyAKSCluster \
--target-resource-group MyResourceGroup \
--account <storageaccountname> \
--workload-identity <user-identity-resource-id>
Sobald die Verbindung erstellt wurde, zeigt die Seite des Azure-Portals für den Service Connector Informationen zur neuen Verbindung an. Sie können diese Informationen verwenden, wenn Sie die Datei "pod.yaml " weiter unten in diesem Lernprogramm bearbeiten.
Erstellen der Beispielanwendung
Klonen Sie das Beispielrepository, und wechseln Sie dann in das Verzeichnis, das die Beispiel-App enthält. Führen Sie die verbleibenden Befehle aus diesem Ordner aus.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityErstellen und senden Sie die Images mittels des Befehls
az acr buildan die Containerregistrierung. Ersetzen Sie den<registryname>Platzhalter durch Ihren Registrierungsnamen.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Zeigen Sie das Image in Ihrer Containerregistrierung mithilfe des
az acr repository listBefehls an. Ersetzen Sie den<registryname>Platzhalter durch Ihren Registrierungsnamen.az acr repository list --name <registryname> --output table
Ausführen der Anwendung und Testen der Verbindung
Ersetzen Sie die folgenden Platzhalter in der Datei "pod.yaml " in Ihrem lokalen App-Ordner:
-
<YourContainerImage>: Ersetzen Sie den Image-Namen in Ihrer Container-Registrierung, z. B.<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: Ersetzen Sie dies durch den Dienstkonto-Dienstconnector, der nach der Verbindungserstellung erstellt wurde. Sie können den Dienstkontonamen auf Der Seite "AKS Cluster Service Connector" im Azure-Portal überprüfen. -
<SecretCreatedByServiceConnector>: Ersetzen Sie dies durch den Geheimnis-Dienstconnector, der nach der Verbindungserstellung erstellt wurde. Sie können den Dienstkontonamen auf Der Seite "AKS Cluster Service Connector" im Azure-Portal überprüfen.
-
Stellen Sie den Pod mittels
kubectl applyauf Ihrem Cluster bereit. Der Befehl erstellt einen Pod namenssc-demo-storage-identityim Standardnamespace Ihres AKS-Clusters.kubectl apply -f pod.yamlÜberprüfen Sie, ob die Bereitstellung erfolgreich ist, indem Sie den Pod mittels
kubectlanzeigen.kubectl get pod/sc-demo-storage-identityÜberprüfen Sie, ob die Verbindung hergestellt ist, indem Sie die Protokolle mit
kubectlanzeigen.kubectl logs pod/sc-demo-storage-identity
Bereinigen von Ressourcen
Wenn Sie die für dieses Lernprogramm erstellten Azure Ressourcen nicht mehr benötigen, können Sie sie löschen, indem Sie die Ressourcengruppe MyResourceGroup löschen.
az group delete \
--resource-group MyResourceGroup