Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie leert u hoe u Service Connector gebruikt om een Azure Storage-account te verbinden met een pod in een Azure Kubernetes Service (AKS)-cluster met behulp van workloadidentiteit. U voert de volgende taken uit:
- Maak een AKS-cluster en een Azure Storage-account.
- Maak een verbinding tussen het AKS-cluster en het Azure Storage-account met behulp van serviceconnector.
- Kloon een voorbeeldtoepassing die verbinding maakt met het Azure Storage-account vanuit het AKS-cluster.
- Implementeer de toepassing op een pod in het AKS-cluster en test de verbinding.
- Maak bronnen schoon.
Vereisten
- Basiskennis van containers, workloadidentiteit en AKS. Zie Tutorial: Een toepassing voorbereiden voor Azure Kubernetes Service (AKS) voor meer informatie.
- Een Azure-abonnement waar je schrijfmachtigingen voor Azure-resources hebt, in een Azure-regio die de Service Connector ondersteunt en voldoende AKS-ondersteuning en rekenquotum heeft om de zelfstudie uit te voeren. Gratis een account maken
- De
Microsoft.ServiceLinker,Microsoft.ContainerService,Microsoft.ContainerRegistryenMicrosoft.ManagedIdentityresourceproviders die zijn geregistreerd in het Azure-abonnement. U kuntaz provider register -n Microsoft.[service]uitvoeren om de providers te registreren. - Git om de voorbeeldopslagplaats te openen en te klonen.
-
Docker en kubectl geïnstalleerd voor het beheren van containerinstallatiekopieën en Kubernetes-resources. Lokaal installeren
kubectldoor uit te voerenaz aks install-cli. - Azure CLI geïnstalleerd.
Azure-resources maken
Meld u aan bij Azure door az-aanmelding uit te voeren en de aanwijzingen te volgen.
Maak een Azure resourcegroep die u voor deze zelfstudie wilt gebruiken, waarbij u de tijdelijke aanduiding
<region>vervangt door een geldige waarde. Delocationmoet een Azure regio zijn waarin uw abonnement voldoende rekenquotum heeft voor de Azure resources en geen beperkingen voor een van de services.az group create \ --name MyResourceGroup \ --location <region>Maak een AKS-cluster dat de serviceverbinding, poddefinitie en voorbeeldtoepassing bevat door de volgende opdracht uit te voeren. Zie Quickstart: Een Azure Kubernetes Service (AKS)-cluster implementeren met behulp van Azure CLI voor meer informatie.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1Maak verbinding met het cluster door de volgende opdracht uit te voeren.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterMaak een Azure Storage-account om de doelservice te zijn waarmee het AKS-cluster verbinding maakt en waarmee de voorbeeldtoepassing communiceert. Zie Een Azure-opslagaccount maken voor meer informatie. Voer de volgende opdracht uit en vervang
<storageaccountname>door een naam van 3-24 kleine letters of numerieke tekens en is uniek in Azure.az storage account create \ --resource-group MyResourceGroup \ --name <storageaccountname> \ --sku Standard_LRSMaak een Azure-containerregister om de containerimage van de applicatie te hosten die door de AKS-poddefinitie wordt gebruikt. Zie Quickstart: Een Azure containerregister maken met behulp van de Azure-portal voor meer informatie. Voer de volgende opdracht uit, waarbij u
<registryname>vervangt door een naam van 5-50 kleine letters of numerieke tekens en uniek is in Azure.az acr create \ --resource-group MyResourceGroup \ --name <registryname> \ --sku StandardSchakel anonieme pull in zodat het AKS-cluster de afbeeldingen uit de registry kan gebruiken. Vervang de
<registryname>tijdelijke aanduiding met je registernaam.az acr update \ --resource-group MyResourceGroup \ --name <registryname> \ --anonymous-pull-enabledVoer de volgende opdracht uit om een door de gebruiker toegewezen beheerde identiteit te maken die door het maken van de serviceverbinding kan worden gebruikt om de workloadidentiteit voor AKS-workloads in te schakelen. Zie Door de gebruiker toegewezen beheerde identiteiten beheren met behulp van de Azure-portal voor meer informatie.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Een serviceverbinding maken met serviceconnector
Maak een serviceverbinding tussen het AKS-cluster en het Azure Storage-account met behulp van Azure CLI of de Azure-portal.
Voer de volgende Azure CLI opdracht uit om een serviceverbinding met het Azure opslagaccount te maken. Vervang <storageaccountname> door de naam van uw opslagaccount en <user-identity-resource-id> door de resource-id van de door de gebruiker toegewezen beheerde identiteit.
U kunt de resource-id van een door de gebruiker toegewezen beheerde identiteit verkrijgen uit de uitvoer van de voorgaande opdracht az identity create of de indeling /subscriptions/<subscription-id>/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyIdentity gebruiken.
az aks connection create storage-blob \
--resource-group MyResourceGroup \
--name MyAKSCluster \
--target-resource-group MyResourceGroup \
--account <storageaccountname> \
--workload-identity <user-identity-resource-id>
Zodra de verbinding is gemaakt, bevat de pagina Azure portalserviceconnector informatie over de nieuwe verbinding. U kunt deze informatie gebruiken wanneer u het pod.yaml-bestand verderop in deze zelfstudie bewerkt.
De voorbeeldtoepassing maken
Kloon de voorbeeldopslagplaats en ga vervolgens naar de map die de voorbeeld-app bevat. Voer de resterende opdrachten uit vanuit deze map.
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git cd serviceconnector-aks-samples/azure-storage-workload-identityBouw en push de afbeeldingen naar uw containerregister met behulp van het
az acr buildcommando. Vervang de<registryname>tijdelijke aanduiding met uw registernaam.az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./Bekijk de afbeelding in uw containerregister met de
az acr repository listopdracht. Vervang de<registryname>tijdelijke aanduiding met je registernaam.az acr repository list --name <registryname> --output table
Toepassing uitvoeren en verbinding testen
Vervang de volgende tijdelijke aanduidingen in het bestand pod.yaml in uw lokale appmap.
-
<YourContainerImage>: Vervang deze door de naam van de afbeelding in uw container registry, bijvoorbeeld<registryname>.azurecr.io/sc-demo-storage-identity:latest. -
<ServiceAccountCreatedByServiceConnector>: Vervang door het service account Service Connector dat is gemaakt na het maken van de verbinding. U kunt de naam van het serviceaccount controleren op de pagina serviceconnector van uw AKS-cluster in de Azure-portal. -
<SecretCreatedByServiceConnector>: Vervang door de geheime Service Connector die is gemaakt na het maken van de verbinding. U kunt de naam van het serviceaccount controleren op de pagina serviceconnector van uw AKS-cluster in de Azure-portal.
-
Implementeer de pod in uw cluster met behulp van
kubectl apply. Met de opdracht maakt u een pod met de naamsc-demo-storage-identityin de standaardnaamruimte van uw AKS-cluster.kubectl apply -f pod.yamlControleer of de implementatie is geslaagd door de pod te bekijken met behulp van
kubectl.kubectl get pod/sc-demo-storage-identityControleer of de verbinding tot stand is gebracht door de logboeken te bekijken met behulp van
kubectl.kubectl logs pod/sc-demo-storage-identity
Resources opschonen
Als u de Azure resources die u voor deze zelfstudie hebt gemaakt niet meer nodig hebt, kunt u deze verwijderen door de resourcegroep MyResourceGroup te verwijderen.
az group delete \
--resource-group MyResourceGroup