如何为现有AKS集群代理池(VMSS)添加用户托管标识?
为AKS集群底层VMSS添加用户托管标识的正确方法
错误原因说明
AKS集群创建完成后,无法修改集群资源定义中的identity.Type字段,这是平台的设计限制,所以直接修改该字段并执行增量更新会触发你遇到的错误提示。你需要针对节点池对应的VMSS资源单独配置用户托管标识,而非修改AKS集群本身的身份配置。
操作步骤
定位AKS节点池对应的VMSS资源
执行以下Azure CLI命令获取节点池关联的VMSS ID,从中提取VMSS名称:az aks show --resource-group <你的资源组名称> --name <你的AKS集群名称> --query 'agentPoolProfiles[].vmssId' -o tsv输出示例:
/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachineScaleSets/aks-nodepool1-xxxx,其中aks-nodepool1-xxxx即为VMSS名称。为VMSS添加用户托管标识
使用以下命令将目标用户托管标识绑定到VMSS:az vmss identity assign --resource-group <你的资源组名称> --name <步骤1获取的VMSS名称> --identities <你的用户托管标识资源ID>验证配置结果
执行命令检查VMSS的身份配置,确认用户托管标识已成功添加:az vmss identity show --resource-group <你的资源组名称> --name <步骤1获取的VMSS名称>输出的
userAssignedIdentities字段应包含你指定的标识信息。
补充说明
如果需要让AKS节点上的Pod使用该标识访问Azure资源,可额外配置Azure AD Pod Identity,但这一步仅针对Pod层面的身份需求,若仅需VMSS本身拥有该标识权限,完成上述步骤即可。
内容的提问来源于stack exchange,提问作者Dan Hunex
相关产品推荐
相关产品推荐

