Handleiding: Verbinding maken met Azure Storage in AKS met behulp van Service Connector met workloadidentiteit

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

Azure-resources maken

  1. Meld u aan bij Azure door az-aanmelding uit te voeren en de aanwijzingen te volgen.

  2. Maak een Azure resourcegroep die u voor deze zelfstudie wilt gebruiken, waarbij u de tijdelijke aanduiding <region> vervangt door een geldige waarde. De location moet 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>
    
  3. 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 1
    
  4. Maak verbinding met het cluster door de volgende opdracht uit te voeren.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  5. Maak 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_LRS
    
  6. Maak 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 Standard
    
  7. Schakel 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-enabled
    
  8. Voer 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.

Schermopname van de Azure-portal, waarin kubernetes-resources worden weergegeven die zijn gemaakt door Service Connector.

De voorbeeldtoepassing maken

  1. 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-identity
    
  2. Bouw en push de afbeeldingen naar uw containerregister met behulp van het az acr build commando. Vervang de <registryname> tijdelijke aanduiding met uw registernaam.

    az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./
    
  3. Bekijk de afbeelding in uw containerregister met de az acr repository list opdracht. Vervang de <registryname> tijdelijke aanduiding met je registernaam.

    az acr repository list --name <registryname> --output table
    

Toepassing uitvoeren en verbinding testen

  1. 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.
  2. Implementeer de pod in uw cluster met behulp van kubectl apply. Met de opdracht maakt u een pod met de naam sc-demo-storage-identity in de standaardnaamruimte van uw AKS-cluster.

    kubectl apply -f pod.yaml
    
  3. Controleer of de implementatie is geslaagd door de pod te bekijken met behulp van kubectl.

    kubectl get pod/sc-demo-storage-identity
    
  4. Controleer 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