你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为云子卷配置工作负载标识

本文介绍如何配置工作负载身份以用于子卷配置。 这适用于云引入子卷或云镜像子卷。

为工作负载身份配置 Kubernetes 集群

若要将工作负荷标识与 Azure Arc 启用的 Azure 容器存储配合使用,必须先为 Azure Arc 连接的 Kubernetes 群集启用这些功能。 通过运行以下命令,启用 OpenID Connect(OIDC)颁发者和工作负载标识:

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

接下来,需要配置 Kubernetes 集群以便利用工作负荷标识:

  1. 获取颁发者 URL:

    az connectedk8s show --resource-group <RESOURCE_GROUP> --name <CLUSTER_NAME> --query oidcIssuerProfile.issuerUrl --output tsv
    
  2. /etc/rancher/k3s/config.yaml 中使用此发行者:

    kube-apiserver-arg:
    - service-account-issuer=<SERVICE_ACCOUNT_ISSUER>
    - service-account-max-token-expiration=24h
    
  3. 更新 config.yaml 后,需要重启 K3s。

    systemctl restart k3s
    

创建用户分配的托管标识 (UAMI)

需要创建 UAMI 以与 Kubernetes 群集联合,并授予对存储帐户或 OneLake Lakehouse 的基于角色的访问权限,以便与 Azure Arc 启用的 Azure 容器存储配合使用。

可以使用 Azure CLI 通过以下命令创建 UAMI:

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

此命令返回稍后用于联合凭据和配置 Azure 容器存储的客户端 ID。

联合 UAMI

  1. 将 UAMI 添加到 Azure 容器存储的 EdgeStorageConfiguration 自定义资源定义(CRD):

    kubectl edit edgestorageconfiguration edge-storage-configuration
    
  2. serviceMesh 之后的 spec 部分中添加以下 YAML:

    workloadIdentity:
      clientID: <CLIENT_ID_FROM_UAMI>
      tenantID: <TENANT_ID_FROM_UAMI>
    
  3. 接下来,通过编辑并运行以下 Azure CLI 命令,将 UAMI 与命名空间中的 azure-arc-containerstorage 三个必需服务帐户联合:

    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. 还需要将角色绑定添加到要用于创建的 UAMI 的存储帐户。 将角色 存储 Blob 数据所有者 添加至您创建的 UAMI:

    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>"
    

使用工作负载标识创建永久性卷声明 (PVC)

为 Ingest 或镜像子卷创建 CRD 时,请将spec.authentication.authType参数设置为WORKLOAD_IDENTITY

后续步骤

继续 执行创建云存储持久卷声明(PVC)创建云镜像持久卷声明(PVC) 中的步骤以完成配置。