繁体   English   中英

使用 Azure CLI 获取 Kubernetes 负载均衡器的公共 IP

[英]Use Azure CLI to obtain Kubernetes Load Balancer's public IP

我在 Azure 上运行 Kubernetes,它使用负载平衡器。 Azure has assigned a public IP address to this load balancer, and for the purposes of setting up an Application Gateway via the Azure CLI I wish to obtain the IP address of the k8s load balancer using the Azure CLI.

我可以使用...获取负载均衡器资源

az resource list --resource-group $k8sResourceGroup --query "[?type=='Microsoft.Network/loadBalancers']"

我从该响应中获取id并将其传递给...

az network lb show --id $loadBalancer.id --output json | convertfrom-json).frontendIpConfigurations

frontendIpConfigurations数组包含两个对象:入站 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}"

……我明白了……

ResourceNotFoundError:找不到资源组“[我的资源组名称]”下的资源“Microsoft.Network/publicIPAddresses/kubernetes”。 有关详细信息,请 go 到https://aka.ms/ARMResourceNotFoundFix

是否有获取 AKS 负载均衡器的公共入站 IP 地址的简单方法?

试试这个(假设你的 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)

是否有获取 AKS 负载均衡器的公共入站 IP 地址的简单方法?

与 AKS 的负载均衡器关联的所有公共 IP 都是入站 IP,但出站 IP 除外。 所有入站 IP 都是 AKS 中服务的公共 IP。 这意味着如果您知道有多少服务具有负载均衡器类型,那么您将知道有多少公共入站 IP 与 AKS 的负载均衡器关联。

根据这个认知,只需要获取服务的公共IP地址,那么就可以通过Azure CLI获取这个公共IP的资源ID

az network public-ip list --query "[?ipAddress=='publicIPAddress'].id" -o tsv

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM