我让Kubernetes在Azure上运行,它使用负载均衡器。Azure为这个负载均衡器分配了一个公共IP地址,并且为了通过Azure设置应用网关,我希望使用Azure获得k8s负载均衡器的IP地址。
我可以使用.获得负载均衡器资源。
az resource list --resource-group $k8sResourceGroup --query "[?type=='Microsoft.Network/loadBalancers']"我从那个响应中得到id并把它传递给..。
az network lb show --id $loadBalancer.id --output json | convertfrom-json).frontendIpConfigurationsfrontendIpConfigurations数组包含两个对象:入站IP地址(资源)和出站IP地址(资源)。我过滤到入站IP资源如下..。
az network lb show --id $loadBalancer.id --output json | convertfrom-json).frontendIpConfigurations | where-object { $null -ne $_.loadBalancingRules }).loadBalancingRules[0].id然后,我有一些看起来非常类似于IP地址资源的ID的东西--它与我在Azure门户中看到的内容相匹配。但如果我请求资源本身,使用.
az network public-ip show --ids $loadBalancingRuleId --query "{fqdn: dnsSettings.fqdn, address: ipAddress}"...I得到..。
'Microsoft.Network/publicIPAddresses/kubernetes‘:没有找到资源组“ResourceNotFoundError”下的资源ResourceNotFoundError。欲知更多详情,请访问https://aka.ms/ARMResourceNotFoundFix
是否有一种直接的方法来获取AKS负载均衡器的公共入站IP地址?
发布于 2021-02-15 16:49:32
试试这个(假设LB只有一个入站IP地址)。否则,$pipId是一个数组)
$pipId = $(az network lb show --id $loadBalancer.id --query "frontendIpConfigurations | [?loadBalancingRules != null].publicIpAddress.id" -o tsv)
$ip = (az network public-ip show --ids $pipId --query "ipAddress" -o tsv)发布于 2021-02-16 02:56:20
是否有一种直接的方法来获取AKS负载均衡器的公共入站IP地址?
与AKS的负载均衡器相关联的所有公共IP都是入站IP,出站IP除外。所有入站in都是AKS服务的公共in。这意味着如果您知道有多少服务具有负载均衡器类型,那么您将知道有多少公共入站IP与AKS的负载均衡器相关联。
根据这一认识,您只需获取服务的公共IP地址,就可以通过Azure CLI获得该公共IP的资源ID:
az network public-ip list --query "[?ipAddress=='publicIPAddress'].id" -o tsvhttps://stackoverflow.com/questions/66210506
复制相似问题