Zelfstudie: Verbinding maken met Azure Cache voor Redis of Azure Managed Redis vanuit uw toepassing die wordt gehost in Azure Kubernetes Service

In deze zelfstudie gebruikt u dit voorbeeld om verbinding te maken met een Exemplaar van Azure Cache voor Redis of Azure Managed Redis.

Vereiste voorwaarden

Belangrijk

In deze zelfstudie wordt ervan uitgegaan dat u bekend bent met basisconcepten van Kubernetes, zoals containers, pods en service.

Een Azure Cache Redis-instantie instellen

  1. Maak een nieuw Azure Cache voor Redis exemplaar met behulp van Azure Portal of het CLI-hulpprogramma van uw voorkeur. Gebruik de snelstartgids om aan de slag te gaan. Eventueel kunt u ook een Azure Managed Redis-exemplaar maken.

    Gebruik voor deze zelfstudie een Standard C1-cache. Schermopname van het maken van een Standard C1-cache in Azure Portal

  2. Voer de stappen uit om de cache te maken.

  3. Zodra uw Redis-cache-exemplaar is gemaakt, gaat u naar het tabblad Verificatie . Selecteer de door de gebruiker toegewezen beheerde identiteit die u wilt gebruiken om verbinding te maken met uw Redis-cache-exemplaar en selecteer Vervolgens Opslaan.

  4. U kunt ook navigeren naar De configuratie van Data Access in het menu Resource om een nieuwe Redis-gebruiker te maken met uw door de gebruiker toegewezen beheerde identiteit om verbinding te maken met uw cache.

  5. Noteer de gebruikersnaam voor uw Redis-gebruiker vanuit de portal. U gebruikt deze gebruikersnaam met de AKS-workload.

Voorbeeld lokaal uitvoeren

Als u dit voorbeeld lokaal wilt uitvoeren, configureert u uw gebruikersprincipaal als een Redis-gebruiker op uw Redis-exemplaar. In het voorbeeld van de code wordt uw gebruikersprincipaal gebruikt via DefaultAzureCredential om verbinding te maken met een Redis-exemplaar.

Uw AKS-cluster configureren

Volg deze stappen om een workloadidentiteit voor uw AKS-cluster te configureren.

Voer vervolgens de volgende stappen uit:

  • OIDC-verlener en workloadidentiteit inschakelen
  • Sla de stap over om een door de gebruiker toegewezen beheerde identiteit te maken als u al uw beheerde identiteit hebt gemaakt. Als u een nieuwe beheerde identiteit maakt, moet u ervoor zorgen dat u een nieuwe Redis-gebruiker voor uw beheerde identiteit maakt en de juiste machtigingen voor gegevenstoegang toewijst.
  • Een Kubernetes Service-account maken met de client-id van uw door de gebruiker toegewezen beheerde identiteit
  • Maak een federatieve identiteitsreferentie voor uw AKS-cluster.

Uw workload configureren die verbinding maakt met Azure Cache voor Redis

Stel vervolgens de AKS-workload in om verbinding te maken met Azure Cache voor Redis nadat u het AKS-cluster hebt geconfigureerd.

  1. Download de code voor de voorbeeld-app.

  2. Maak en push docker-images naar uw Azure Container Registry met behulp van de opdracht az acr build.

     az acr build --image sample/connect-from-aks-sample:1.0 --registry yourcontainerregistry --file Dockerfile .
    
  3. Koppel uw containerregister aan uw AKS-cluster met behulp van de volgende opdracht:

    az aks update --name clustername --resource-group mygroup --attach-acr youracrname
    

Uw werkbelasting uitrollen

In deze sectie installeert u eerst de Kubernetes CLI en maakt u vervolgens verbinding met een AKS-cluster.

De Kubernetes-CLI installeren

Gebruik de Kubernetes CLI, kubectl, om vanaf uw lokale computer verbinding te maken met het Kubernetes-cluster. Als u lokaal werkt, kunt u de volgende opdracht gebruiken om kubectl te installeren.

az aks install-cli

Als u Azure Cloud Shell gebruikt, is kubectl al geïnstalleerd en kunt u deze stap overslaan.

Verbinding maken met uw AKS-cluster

  1. Gebruik de portal om de resourcegroep en clusternaam voor uw AKS-cluster te kopiëren. Als u kubectl wilt configureren om verbinding te maken met uw AKS-cluster, gebruikt u de volgende opdracht met uw resourcegroep en clusternaam:

    az aks get-credentials --resource-group myResourceGroup --name myClusterName
    
  2. Controleer of u verbinding kunt maken met uw cluster door de volgende opdracht uit te voeren:

    kubectl get nodes
    

    U zou vergelijkbare uitvoer moeten zien met de lijst van uw clusterknooppunten.

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-agentpool-21274953-vmss000001   Ready    agent   1d    v1.29.7
    aks-agentpool-21274953-vmss000003   Ready    agent   1d    v1.29.7
    aks-agentpool-21274953-vmss000006   Ready    agent   1d    v1.29.7
    

Uw workload uitvoeren

  1. In de volgende code wordt het bestand met podspecificaties beschreven dat u gebruikt om onze workload uit te voeren. Houd er rekening mee dat de pod het label azure.workloadidentity/use heeft: 'true' en is geannoteerd met serviceAccountName , zoals vereist door de AKS-workloadidentiteit. Wanneer u toegangssleutelverificatie gebruikt, vervangt u de waarde van AUTHENTICATION_TYPE, REDIS_HOSTNAME, REDIS_ACCESSKEY en REDIS_PORT omgevingsvariabelen. Stel voor azure Managed Redis-exemplaar de waarde van REDIS_PORT in op 10000.

     apiVersion: v1
     kind: Pod
     metadata:
       name: entrademo-pod
       labels:
         azure.workload.identity/use: "true"  # Required. Only pods with this label can use workload identity.
     spec:
       serviceAccountName: workload-identity-sa
       containers:
       - name: entrademo-container
         image: youracr.azurecr.io/connect-from-aks-sample:1.0
         imagePullPolicy: Always
         command: ["dotnet", "ConnectFromAKS.dll"] 
         resources:
           limits:
             memory: "256Mi"
             cpu: "500m"
           requests:
             memory: "128Mi"
             cpu: "250m"
         env:
              - name: AUTHENTICATION_TYPE
                value: "MANAGED_IDENTITY" # change to ACCESS_KEY to authenticate using access key
              - name: REDIS_HOSTNAME
                value: "your redis hostname"
              - name: REDIS_ACCESSKEY
                value: "your access key" 
              - name: REDIS_PORT
                value: "6380" # change to 10000 for Azure Managed Redis
       restartPolicy: Never
    
    
  2. Sla dit bestand op als podspec.yaml en pas het vervolgens toe op uw AKS-cluster door de opdracht folloWing uit te voeren:

    kubectl apply -f podspec.yaml
    

    U ontvangt een bericht dat aangeeft dat je pod is aangemaakt.

    pod/entrademo-pod created
    
  3. Om de toepassing te testen, voert u de volgende opdracht uit om te controleren of de pod actief is.

    kubectl get pods
    

    U ziet dat uw pod succesvol wordt uitgevoerd als:

    NAME                       READY   STATUS      RESTARTS       AGE
    entrademo-pod              0/1     Completed   0              42s
    
  4. Omdat deze zelfstudie een console-app is, moet je de logboeken van de pod controleren om te verifiëren of deze is uitgevoerd zoals verwacht met behulp van de volgende opdracht.

    kubectl logs entrademo-app
    

    U ziet de volgende logs die aangeven dat uw pod succesvol verbinding heeft gemaakt met de Redis-instantie met behulp van een door de gebruiker toegewezen beheerde identiteit.

    Connecting with managed identity..
    Retrieved value from Redis: Hello, Redis!
    Success! Previous value: Hello, Redis!
    

Uw cluster opschonen

Voer de volgende opdrachten uit om uw cluster op te schonen:

kubectl delete pod entrademo-pod

De hulpbronnen opschonen

Als u de resources wilt blijven gebruiken die u in dit artikel hebt gemaakt, moet u de resourcegroep behouden.

Als u klaar bent met de resources, kunt u de Azure-resourcegroep verwijderen die u hebt gemaakt om kosten te voorkomen.

Belangrijk

Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. Wanneer u een resourcegroep verwijdert, worden alle resources in de groep definitief verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde bron of bronngroep verwijdert. Als u de resources in een bestaande resourcegroep hebt gemaakt die resources bevat die u wilt behouden, kunt u elke resource afzonderlijk verwijderen in plaats van de resourcegroep te verwijderen.

Een resourcegroep verwijderen

  1. Meld u aan bij Azure Portal en selecteer vervolgens Resourcegroepen.

  2. Selecteer de resourcegroep die u wilt verwijderen.

    Als er veel resourcegroepen zijn, gebruikt u het vak Filter voor een veld... en typt u de naam van de resourcegroep die u voor dit artikel hebt gemaakt. Selecteer de bronnen groep in de lijst met resultaten.

    Schermopname van een lijst met resourcegroepen die u wilt verwijderen in het werkvenster.

  3. Selecteer Resourcegroep verwijderen.

  4. U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Typ ter bevestiging de naam van de resourcegroep. Selecteer vervolgens Verwijderen.

    Schermopname van een formulier waarvoor de resourcenaam is vereist om het verwijderen te bevestigen.

Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.