You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SDK获取Azure Kubernetes集群的虚拟网络(VNet)

获取Azure Kubernetes集群VNet的SDK实现方案

问题背景

需要通过SDK获取Azure Kubernetes集群的虚拟网络(VNet),命令行中可通过以下命令快速查询:

az aks show --resource-group <resource_group_name> --name <cluster_name> --query "networkProfile"

但尝试通过SDK的networkProfile对象直接调用vnet()方法时,发现该方法不存在,代码无法编译:

val azureKubernetesClusters = azure.kubernetesClusters()
for (k <- azureKubernetesClusters.list().asScala) {
   k.innerModel().networkProfile().vnet() // 编译报错:找不到vnet()方法
}

可行解决方法

可以通过遍历集群的Agent Pool配置,读取每个Pool的vnetSubnetId属性来获取VNet相关信息。该属性是完整的子网资源ID,其中包含了所属VNet的名称、资源组等关键信息。示例代码如下:

for (pool <- k.innerModel().agentPoolProfiles().asScala) {
  val subnetResourceId = pool.vnetSubnetId()
  // 示例拆分逻辑:从subnetResourceId中提取VNet名称
  val vnetName = subnetResourceId.split("/")(8)
}

额外说明

  • 子网资源ID的格式固定为:/subscriptions/{订阅ID}/resourceGroups/{资源组名}/providers/Microsoft.Network/virtualNetworks/{VNet名称}/subnets/{子网名称},可以通过字符串索引或正则表达式拆分出VNet信息
  • 无论集群使用Azure CNI还是Kubenet网络模式,该方法都能有效获取到节点所在的VNet配置

内容的提问来源于stack exchange,提问作者Joe Devilla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:48:15