Handledning: Anslut till Azure Storage i AKS med Service Connector med hjälp av arbetsbelastningsidentitet

I den här självstudien får du lära dig hur du använder Service Connector för att ansluta ett Azure Storage-konto till en podd i ett Azure Kubernetes Service (AKS) kluster med hjälp av arbetsbelastningsidentitet. Du utför följande uppgifter:

  • Skapa ett AKS-kluster och ett Azure Storage konto.
  • Skapa en anslutning mellan AKS-klustret och Azure Storage-kontot med hjälp av Service Connector.
  • Klona ett exempelprogram som ansluter till Azure Storage-kontot från AKS-klustret.
  • Distribuera programmet till en podd i AKS-klustret och testa anslutningen.
  • Rensa resurser.

Förutsättningar

Skapa Azure-resurser

  1. Logga in på Azure genom att köra az login och följ anvisningarna.

  2. Skapa en Azure resursgrupp som ska användas för den här handledningen och ersätt platshållaren <region> med ett giltigt värde. location måste vara en Azure region där din prenumeration har tillräcklig beräkningskvot för Azure resurser och inga begränsningar för någon av tjänsterna.

    az group create \
        --name MyResourceGroup \
        --location <region>
    
  3. Skapa ett AKS-kluster som innehåller tjänstanslutningen, podddefinitionen och exempelprogrammet genom att köra följande kommando. Mer information finns i Quickstart: Distribuera ett Azure Kubernetes Service (AKS) kluster med Azure CLI.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  4. Anslut till klustret genom att köra följande kommando.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  5. Skapa ett Azure Storage konto som ska vara den måltjänst som AKS-klustret ansluter till och exempelprogrammet interagerar med. Mer information finns i Skapa ett Azure-lagringskonto. Kör följande kommando och ersätt <storageaccountname> med ett namn som är 3–24 gemener eller numeriska tecken och som är unikt för Azure.

    az storage account create \
        --resource-group MyResourceGroup \
        --name <storageaccountname> \
        --sku Standard_LRS
    
  6. Skapa ett Azure containerregister som värd för programcontaineravbildningen som används av AKS-podddefinitionen. Mer information finns i Quickstart: Skapa ett Azure containerregister med hjälp av Azure-portalen. Kör följande kommando och ersätt <registryname> med ett namn som är 5–50 gemener eller numeriska tecken och som är unikt för Azure.

    az acr create \
        --resource-group MyResourceGroup \
        --name <registryname> \
        --sku Standard
    
  7. Aktivera anonym pull så att AKS-klustret kan använda registeravbildningarna. <registryname> Ersätt platshållaren med ditt registernamn.

    az acr update \
        --resource-group MyResourceGroup \
        --name <registryname> \
        --anonymous-pull-enabled
    
  8. Kör följande kommando för att skapa en användartilldelad hanterad identitet som tjänstanslutningen kan använda för att aktivera arbetsbelastningsidentitet för AKS-arbetsbelastningar. Mer information finns i Hantera användartilldelade hanterade identiteter med hjälp av Azure-portalen.

    az identity create \
        --resource-group MyResourceGroup \
        --name MyIdentity
    

Skapa en tjänstanslutning med hjälp av Service Connector

Skapa en tjänstanslutning mellan AKS-klustret och Azure Storage-kontot med hjälp av Azure CLI eller Azure-portalen.

Kör följande Azure CLI-kommando för att skapa en tjänstanslutning till Azure lagringskontot. Ersätt <storageaccountname> med lagringskontots namn och <user-identity-resource-id> med ditt användartilldelade resurs-ID för hanterad identitet.

Du kan hämta ditt användartilldelade resurs-ID för hanterad identitet från utdata från föregående az identity create kommando eller använda formatet /subscriptions/<subscription-id>/resourceGroups/MyResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyIdentity.

az aks connection create storage-blob \
  --resource-group MyResourceGroup \
  --name MyAKSCluster \
  --target-resource-group MyResourceGroup \
  --account <storageaccountname> \
  --workload-identity <user-identity-resource-id>

När anslutningen har skapats visar sidan Azure Portal Service Connector information om den nya anslutningen. Du kan använda den här informationen när du redigerar filen pod.yaml senare i den här självstudien.

Skärmbild av Azure-portalen och visa kubernetes-resurser som skapats av Service Connector.

Skapa exempelprogrammet

  1. Klona exempellagringsplatsen och ändra sedan till den katalog som innehåller exempelappen. Kör de återstående kommandona från den här mappen.

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    cd serviceconnector-aks-samples/azure-storage-workload-identity
    
  2. Skapa och skicka avbildningarna till containerregistret med hjälp av az acr build kommandot . <registryname> Ersätt platshållaren med ditt registernamn.

    az acr build --registry <registryname> --image sc-demo-storage-identity:latest ./
    
  3. Visa avbildningen i containerregistret med hjälp av az acr repository list kommandot . <registryname> Ersätt platshållaren med ditt registernamn.

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

Kör program- och testanslutning

  1. Ersätt följande platshållare i pod.yaml-filen i din lokala appmapp:

    • <YourContainerImage>: Ersätt med imagenamnet i containerregistret, till exempel <registryname>.azurecr.io/sc-demo-storage-identity:latest.
    • <ServiceAccountCreatedByServiceConnector>: Ersätt med tjänstkontot Service Connector som skapades när anslutningen skapades. Du kan kontrollera namnet på tjänstkontot på sidan för AKS-kluster Service Connector i Azure-portalen.
    • <SecretCreatedByServiceConnector>: Ersätt med den hemliga tjänstanslutningen som skapades efter att anslutningen skapades. Du kan kontrollera namnet på tjänstkontot på Service Connector-sidan för ditt AKS-kluster i Azure-portalen.
  2. Distribuera podden till klustret med .kubectl apply Kommandot skapar en podd med namnet sc-demo-storage-identity i standardnamnområdet för aks-klustret.

    kubectl apply -f pod.yaml
    
  3. Kontrollera att distributionen lyckas genom att visa podden med hjälp av kubectl.

    kubectl get pod/sc-demo-storage-identity
    
  4. Kontrollera att anslutningen upprättas genom att visa loggarna med hjälp av kubectl.

    kubectl logs pod/sc-demo-storage-identity
    

Rensa resurser

Om du inte längre behöver de Azure resurser som du skapade för den här självstudien kan du ta bort dem genom att ta bort resursgruppen MyResourceGroup.

az group delete \
  --resource-group MyResourceGroup