Konfigurieren der Workloadidentität für Cloud-Untervolumes

In diesem Artikel wird beschrieben, wie Sie die Workload-Identität konfigurieren, die für eine Subvolume-Konfiguration verwendet werden soll. Dies gilt entweder für Cloud Ingest-Untervolume oder Cloud Mirror-Untervolumes.

Konfiguration des Kubernetes-Clusters für die Workload-Identität

Um Workload Identity mit azure Container Storage zu verwenden, der von Azure Arc aktiviert ist, müssen Sie zuerst die Features für Ihren Azure Arc Connected Kubernetes-Cluster aktivieren. Aktivieren Sie den OpenID Connect (OIDC)-Aussteller und die Workload-Identität, indem Sie den folgenden Befehl ausführen:

az connectedk8s update --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --enable-oidc-issuer --enable-workload-identity

Als Nächstes müssen Sie Ihren Kubernetes-Cluster so konfigurieren, dass die Workloadidentität verwendet wird:

  1. Abrufen der Aussteller-URL:

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    
  2. Verwenden Sie diesen Aussteller in /etc/rancher/k3s/config.yaml:

    kube-apiserver-arg:
    - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
    - service-account-max-token-expiration=24h
    
  3. Nachdem Sie die Datei config.yaml aktualisiert haben, müssen Sie K3s neu starten.

    systemctl restart k3s
    

Erstellen einer vom Benutzer zugewiesenen verwalteten Identität (UAMI)

Sie müssen ein UAMI erstellen, um einen Verbund mit Ihrem Kubernetes-Cluster herzustellen und rollenbasierten Zugriff auf Ihr Speicherkonto oder OneLake Lakehouse zu gewähren, um mit Azure Container Storage zu verwenden, der von Azure Arc aktiviert ist.

Sie können ein UAMI mit Azure CLI mit dem folgenden Befehl erstellen:

az identity create --resource-group <RESOURCE_GROUP> --name <USER_ASSIGNED_IDENTITY_NAME> --location <LOCATION> --subscription <SUBSCRIPTION>

Dieser Befehl gibt eine Client-ID zurück, die Sie später verwenden, um die Anmeldeinformationen zu verbinden und Azure Container Storage zu konfigurieren.

Föderieren der UAMI

  1. Fügen Sie die UAMI zu Ihrer benutzerdefinierten EdgeStorageConfiguration-Ressourcendefinition (CRD) für Azure Container Storage hinzu:

    kubectl edit edgestorageconfiguration edge-storage-configuration
    
  2. Fügen Sie den folgenden YAML-Code im Abschnitt nach dem spec und serviceMesh hinzu:

    workloadIdentity:
      clientID: <CLIENT_ID_FROM_UAMI>
      tenantID: <TENANT_ID_FROM_UAMI>
    
  3. Als Nächstes verbinden Sie Ihr UAMI mit den drei erforderlichen Dienstkonten im azure-arc-containerstorage Namespace, indem Sie die folgenden Azure CLI-Befehle bearbeiten und ausführen:

    az identity federated-credential create --resource-group <RESOURCE_GROUP> --identity-name <USER_ASSIGNED_IDENTITY_NAME> --name acsa-csi-fed --issuer <OIDC_ISSUER> --subject system:serviceaccount:azure-arc-containerstorage:csi-wyvern-sa --audience api://AzureADTokenExchange
    
    az identity federated-credential create --resource-group <RESOURCE_GROUP> --identity-name <USER_ASSIGNED_IDENTITY_NAME> --name acsa-pv-fed --issuer <OIDC_ISSUER> --subject system:serviceaccount:azure-arc-containerstorage:wyvern-pv-sa --audience api://AzureADTokenExchange
    
    az identity federated-credential create --resource-group <RESOURCE_GROUP> --identity-name <USER_ASSIGNED_IDENTITY_NAME> --name acsa-operator-fed --issuer <OIDC_ISSUER> --subject system:serviceaccount:azure-arc-containerstorage:wyvern-operator-sa --audience api://AzureADTokenExchange
    
  4. Außerdem müssen Sie dem Speicherkonto, das Sie für das erstellte UAMI verwenden möchten, eine Rollenbindung hinzufügen. Fügen Sie die Rolle Storage Blob Data Owner zur von Ihnen erstellten UAMI hinzu.

    az role assignment create --assignee <USER_ASSIGNED_IDENTITY_ID> --role "Storage Blob Data Owner" --scope "/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGEACCOUNT>"
    

Erstellen eines Persistent Volume Claim (PVC) mit Workload Identity

Legen Sie beim Erstellen der CRD für Ingest- oder Spiegeluntervolumes den spec.authentication.authType Parameter auf WORKLOAD_IDENTITY fest.

Nächster Schritt

Fahren Sie mit den Schritten unter Erstellen Sie eine Cloud Ingest Persistent Volume Claim (PVC) oder Erstellen Sie eine Cloud Mirror Persistent Volume Claim (PVC) fort, um die Konfiguration abzuschließen.