如何在Bicep模板创建AKS集群时配置静态公网IP与DNS标签
在Bicep模板中配置AKS托管集群的静态公网IP与DNS标签
要直接在Bicep模板中让AKS自动在托管资源组(MC_开头)创建静态公网IP并设置DNS标签,只需在AKS资源的serviceProfile.loadBalancerProfile节点中添加对应配置即可,无需额外手动创建IP资源。
核心配置代码示例
param aksClusterName string = 'test-aks-cluster' param location string = 'westeurope' param dnsLabelPrefix string = 'test-aks-lb-uniq' // 需保证在目标区域内唯一 resource aksCluster 'Microsoft.ContainerService/managedClusters@2024-03-01' = { name: aksClusterName location: location properties: { // 基础配置:根据实际需求补充agentPool、identity等节点 agentPoolProfiles: [ { name: 'nodepool1' count: 3 vmSize: 'Standard_D2s_v3' mode: 'System' } ] identity: { type: 'SystemAssigned' } // 关键:负载均衡器静态IP与DNS标签配置 serviceProfile: { loadBalancerProfile: { loadBalancerSku: 'Standard' // 必须为Standard SKU,Basic不支持静态IP与DNS标签 outboundIPAllocationMethod: 'Static' // 指定静态IP分配方式 dnsLabelPrefix: dnsLabelPrefix // 设置DNS标签前缀,最终FQDN格式为 <前缀>.<区域>.cloudapp.azure.com managedOutboundIPs: { count: 1 // 按需调整静态IP数量,默认1个 } } } } }
关键配置说明
loadBalancerSku: 'Standard':这是前提条件,Basic负载均衡器不支持静态出站IP和自定义DNS标签,必须使用Standard SKU。outboundIPAllocationMethod: 'Static':告诉AKS控制平面在托管资源组中创建静态公网IP,而非动态IP。dnsLabelPrefix:设置DNS标签的前缀,需保证在目标Azure区域内唯一,避免部署冲突。可通过变量拼接(比如${aksClusterName}-${uniqueString(resourceGroup().id)})生成唯一前缀。managedOutboundIPs.count:控制创建的静态公网IP数量,根据集群出站流量需求调整即可。
验证部署结果
部署完成后,可通过Azure CLI检查配置是否生效:
az aks show --name ${aksClusterName} --resource-group <你的AKS资源组名称> --query "serviceProfile.loadBalancerProfile"
也可直接进入AKS对应的MC_开头托管资源组,查看公网IP资源的类型(静态)和DNS标签是否符合预期。
注意事项
- 修改现有AKS集群的IP分配方式时,会触发负载均衡器的更新,可能导致短暂的服务中断,建议在业务低峰期操作。
- 静态公网IP会随AKS集群的删除而自动释放,无需手动清理托管资源组内的IP资源。
内容的提问来源于stack exchange,提问作者albbla91
相关产品推荐
相关产品推荐

