诊断 SubnetIsDelegated 错误代码问题

本文介绍如何识别和解决尝试创建节点池时发生的 SubnetIsDelegated 错误。

先决条件

  • Azure CLI (版本 2.0.59 或更高版本)

症状

尝试在 AKS 群集中创建节点池时,会收到以下错误消息:

Code:SubnetIsDelegated

消息:AgentPoolProfile子网 ID 为 <subnet-id> 的子网不能使用,因为它是一个已委托的子网。 请查看 的更多详细信息。

原因

如果尝试使用子网创建节点池,并且该子网为特定的 Azure 服务启用了委派,则无法将新节点池与 AKS 服务集成。

决议

若要解决此问题,请执行以下步骤:

  1. 验证子网是否已正确分配:

    az network vnet subnet show \
      --resource-group $RESOURCE_GROUP \
      --vnet-name $VNET_NAME \
      --name $SUBNET_NAME \
      --query delegations
    
  2. 确保输出将 Microsoft.ContainerService/managedClusters 显示为委托服务或未显示委派服务。 如果输出显示任何其他 Azure 服务委派,请运行以下命令将其删除:

    az network vnet subnet update \
      --resource-group $RESOURCE_GROUP \
      --vnet-name $VNET_NAME \
      --name $SUBNET_NAME \
      --remove delegations 0
    
  3. 运行以下命令以添加托管群集委派:

    az network vnet subnet update \
      --resource-group $RESOURCE_GROUP \
      --vnet-name $VNET_NAME \
      --name $SUBNET_NAME \
      --delegations Microsoft.ContainerService/managedClusters
    
  4. 删除子网委派后,再次尝试使用 az aks nodepool add 命令创建节点池。

参考文献

联系我们以获得帮助

如果有疑问,可以询问 Azure 社区支持。 您还可以向Azure反馈社区提交产品反馈。