Freigeben über


Tutorial: Herstellen einer Verbindung mit einem Azure-Speicherkonto in Azure Kubernetes Service (AKS) mithilfe des Dienstconnectors und unter Verwendung einer Workloadidentität

Hier erfahren Sie, wie Sie unter Verwendung einer Workloadidentität und mithilfe des Dienstconnectors einen Pod in einem AKS-Cluster erstellen, der mit einem Azure-Speicherkonto kommuniziert. In diesem Tutorial führen Sie die folgenden Aufgaben durch:

  • Erstellen eines AKS-Clusters und eines Azure-Speicherkontos
  • Erstellen einer Verbindung zwischen dem AKS-Cluster und dem Azure-Speicherkonto unter Verwendung des Dienstconnectors
  • Klonen einer Beispielanwendung, die von einem AKS-Cluster aus mit dem Azure-Speicherkonto kommuniziert
  • Bereitstellen der Anwendung in einem Pod im AKS-Cluster und Testen der Verbindung
  • Bereinigen der Ressourcen

Wichtig

Service Connect in AKS befindet sich derzeit in der Vorschau. Die zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen enthalten rechtliche Bedingungen. Sie gelten für diejenigen Azure-Features, die sich in der Beta- oder Vorschauversion befinden oder aber anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Voraussetzungen

Erstellen von Azure-Ressourcen

  1. Erstellen Sie eine Ressourcengruppe für dieses Tutorial.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Erstellen Sie mithilfe des folgenden Befehls einen AKS-Cluster, oder sehen Sie sich das entsprechende Tutorial an. Wir erstellen die Dienstverbindung und die Poddefinition und stellen die Beispielanwendung in diesem Cluster bereit.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  3. Stellen Sie mithilfe des folgenden Befehls eine Verbindung mit dem Cluster her:

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Erstellen Sie mithilfe des folgenden Befehls ein Azure-Speicherkonto, oder sehen Sie sich das entsprechende Tutorial an. Dies ist der Zieldienst, der mit dem AKS-Cluster verbunden ist und mit der Beispielanwendung interagiert.

    az storage account create \
        --resource-group MyResourceGroup \
        --name MyStorageAccount \
        --location eastus \
        --sku Standard_LRS
    
  5. Erstellen Sie mithilfe des folgenden Befehls eine Azure-Containerregistrierung, oder sehen Sie sich das entsprechende Tutorial an. Die Registrierung hostet das Containerimage der Beispielanwendung, das von der AKS-Poddefinition genutzt wird.

    az acr create \
        --resource-group MyResourceGroup \
        --name MyRegistry \
        --sku Standard
    

    Aktivieren Sie außerdem anonymes Pullen, damit der AKS-Cluster die Images in der Registrierung nutzen kann.

    az acr update \
        --resource-group MyResourceGroup \
        --name MyRegistry \
        --anonymous-pull-enabled
    
  6. Erstellen Sie mithilfe des folgenden Befehls eine benutzerseitig zugewiesene verwaltete Identität, oder sehen Sie sich das entsprechende Tutorial an. Die benutzerseitig zugewiesene verwaltete Identität wird bei der Erstellung der Dienstverbindung verwendet, um die Workloadidentität für AKS-Workloads zu aktivieren.

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

Erstellen einer Dienstverbindung mit dem Dienstconnector (Vorschau)

Erstellen Sie über das Azure-Portal oder mithilfe der Azure CLI eine Dienstverbindung zwischen einem AKS-Cluster und einem Azure-Speicherkonto.

  1. Öffnen Sie Ihren Kubernetes-Dienst im Azure-Portal, und wählen Sie im linken Menü die Option Dienstconnector aus.

  2. Wählen Sie Erstellen aus, und geben Sie die Einstellungen wie unten gezeigt ein. Behalten Sie bei den anderen Einstellungen die Standardwerte bei.

    Registerkarte Grundlagen:

    Einstellung Option Beschreibung
    Kubernetes-Namespace default Der Namespace, in dem Sie die Verbindung im Cluster benötigen
    Diensttyp Speicher – Blob Art des Zieldiensts.
    Verbindungsname storage_conn Verwenden Sie den vom Dienstconnector bereitgestellten Verbindungsnamen, oder wählen Sie Ihren eigenen Verbindungsnamen aus.
    Abonnement <MySubscription> Das Abonnement für Ihren Azure Blob Storage-Zieldienst.
    Speicherkonto <MyStorageAccount> Das Zielspeicherkonto, mit dem Sie eine Verbindung herstellen möchten.
    Clienttyp Python Die Codesprache oder das Framework, die bzw. das Sie zum Herstellen einer Verbindung mit dem Zieldienst verwenden.

    Registerkarte „Authentifizierung“:

    Authentifizierungseinstellung Option Beschreibung
    Authentifizierungstyp Workloadidentität Der Authentifizierungstyp des Dienstconnectors.
    Benutzerseitig zugewiesene verwaltete Identität <MyIdentity> Zum Aktivieren der Workloadidentität ist eine benutzerseitig zugewiesene verwaltete Identität erforderlich.
  3. Nach Erstellung der Verbindung werden auf der Seite „Dienstconnector“ Informationen zu der neuen Verbindung angezeigt. Screenshot: Azure-Portal mit vom Dienstconnector erstellten Kubernetes-Ressourcen

Klonen der Beispielanwendung

  1. Klonen Sie das Beispielrepository:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Navigieren Sie zum Beispielordner des Repositorys für Azure Storage:

    cd serviceconnector-aks-samples/azure-storage-workload-identity
    

Erstellen und Pushen des Containerimage

  1. Verwenden Sie den Azure CLI-Befehl az acr build, um die Images zu erstellen und in Ihre Containerregistrierung zu pushen:

    az acr build --registry <MyRegistry> --image sc-demo-storage-identity:latest ./
    
  2. Zeigen Sie mithilfe des Befehls az acr repository list die Images in Ihrer Containerregistrierung an:

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

Ausführen der Anwendung und Testen der Verbindung

  1. Ersetzen Sie die Platzhalter in der Datei pod.yaml im Ordner azure-storage-identity.

    • Ersetzen Sie <YourContainerImage> durch den Imagenamen, der im letzten Schritt erstellt wurde (z. B. <MyRegistry>.azurecr.io/sc-demo-storage-identity:latest).
    • Ersetzen Sie <ServiceAccountCreatedByServiceConnector> durch das Dienstkonto, das nach der Verbindungserstellung vom Dienstconnector erstellt wurde. Der Name des Dienstkontos kann im Azure-Portal des Dienstconnectors überprüft werden.
    • Ersetzen Sie <SecretCreatedByServiceConnector> durch das Geheimnis, das nach der Verbindungserstellung vom Dienstconnector erstellt wurde. Der Name des Geheimnisses kann im Azure-Portal des Dienstconnectors überprüft werden.
  2. Stellen Sie mithilfe des Befehls kubectl apply den Pod in Ihrem Cluster bereit. Installieren Sie kubectl bei Bedarf mithilfe des Befehls az aks install-cli manuell. Der Befehl erstellt einen Pod namens sc-demo-storage-identity im Standardnamespace Ihres AKS-Clusters.

    kubectl apply -f pod.yaml
    
  3. Überprüfen Sie, ob die Bereitstellung erfolgreich war, indem Sie den Pods mithilfe von kubectl anzeigen:

    kubectl get pod/sc-demo-storage-identity.
    
  4. Überprüfen Sie, ob die Verbindung hergestellt wurde. Sehen Sie sich dazu mithilfe von kubectl die Protokolle an:

    kubectl logs pod/sc-demo-storage-identity
    

Bereinigen von Ressourcen

Wenn Sie die in diesem Tutorial erstellten Ressourcen nicht mehr benötigen, löschen Sie die Ressourcengruppe, um alle erstellten Ressourcen zu löschen.

az group delete \
    --resource-group MyResourceGroup

Nächste Schritte

Lesen Sie die folgenden Artikel, um mehr über Dienstconnectorkonzepte zu erfahren und sich darüber zu informieren, wie AKS Sie beim Herstellen einer Verbindung mit Diensten unterstützt.