$ az aks show -g $RG -n akstest --query networkProfile.loadBalancerSku -o tsv
Standard
并且outboundType被设置为loadBalancer,即,
$ az aks show -g $RG -n akstest --query networkProfile.outboundType -o tsv
loadBalancer
那么你应该能够获取AKS集群的出站IP地址,比如(注意大写的IP):
$ az aks show -g $RG -n akstest --query networkProfile.loadBalancerProfile.effectiveOutboundIPs[].id
[
"/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MC_xxxxxx_xxxxxx_xxxxx/providers/Microsoft.Network/publicIPAddresses/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
]
# Using $PUBLIC_IP_RESOURCE_ID obtained from the last step
$ az network public-ip show --ids $PUBLIC_IP_RESOURCE_ID --query ipAddress -o tsv
xxx.xxx.xxx.xxx
$ az aks show -g $RG -n akstest --query networkProfile.loadBalancerSku -o tsv
Basic
并且outboundType被设置为loadBalancer,即,
$ az aks show -g $RG -n akstest --query networkProfile.outboundType -o tsv
loadBalancer
当多个(公共)IP前端是出站流的候选者时,Load Balancer Basic选择单个前端用于出站流。此选择不可配置,您应该将选择算法视为 * 随机。此公共IP地址仅在该资源的生命周期内有效。如果删除Kubernetes LoadBalancer服务,关联的负载均衡器和IP地址也会被删除。如果你想为重新部署的Kubernetes服务分配一个特定的IP地址或保留一个IP地址,你可以create and use a static public IP address,正如@nico-meisenzahl提到的。 静态IP地址只有在AKS集群上有一个服务时才有效(使用基本负载均衡器)。在Azure负载均衡器上配置多个地址时,这些公共IP地址中的任何一个都是出站流的候选地址,并且随机选择一个。因此,每次添加一个服务时,您都必须将相应的IP地址添加到白名单中,这不是非常可扩展的。[参考文献] 在后一种情况下,我们建议在创建AKS集群时将outBoundType设置为userDefinedRouting。如果设置了userDefinedRouting,AKS不会自动配置出口路径。出口设置必须由您完成。 AKS群集必须部署到具有先前配置的子网的现有虚拟网络中,因为在不使用标准负载均衡器(SLB)体系结构时,必须建立显式出口。因此,这种架构需要明确地将出口流量发送到防火墙、网关、代理等设备,或者允许网络地址转换(NAT)由分配给标准负载均衡器或设备的公共IP完成。
userDefinedRouting创建负载均衡
出站类型为UDR的AKS集群仅在部署第一个“loadBalancer”类型的Kubernetes服务时才会接收标准负载均衡器(SLB)。负载均衡器配置有用于入站请求的公共IP地址和用于 * 入站 * 请求的后端池。Azure规则由Azure云提供商配置,但由于出站类型为UDR,因此不会配置任何出站公共IP地址或出站规则。您的UDR仍然是出口流量的唯一来源。 Azure负载均衡器don't incur a charge until a rule is placed。 【**!!重要提示:**使用出站类型是高级组网场景,需要正确配置网络。】 以下是部署具有出站类型UDR和Azure防火墙的群集的说明
2条答案
按热度按时间ndh0cuux1#
如果您使用的是带有标准负载均衡器的AKS集群,
并且
outboundType
被设置为loadBalancer
,即,那么你应该能够获取AKS集群的出站IP地址,比如(注意大写的
IP
):更多信息请查看Use a public Standard Load Balancer in Azure Kubernetes Service (AKS)
如果您使用的是带有基本负载均衡器的AKS集群,
并且
outboundType
被设置为loadBalancer
,即,当多个(公共)IP前端是出站流的候选者时,Load Balancer Basic选择单个前端用于出站流。此选择不可配置,您应该将选择算法视为 * 随机。此公共IP地址仅在该资源的生命周期内有效。如果删除Kubernetes
LoadBalancer
服务,关联的负载均衡器和IP地址也会被删除。如果你想为重新部署的Kubernetes服务分配一个特定的IP地址或保留一个IP地址,你可以create and use a static public IP address,正如@nico-meisenzahl提到的。静态IP地址只有在AKS集群上有一个服务时才有效(使用基本负载均衡器)。在Azure负载均衡器上配置多个地址时,这些公共IP地址中的任何一个都是出站流的候选地址,并且随机选择一个。因此,每次添加一个服务时,您都必须将相应的IP地址添加到白名单中,这不是非常可扩展的。[参考文献]
在后一种情况下,我们建议在创建AKS集群时将
outBoundType
设置为userDefinedRouting
。如果设置了userDefinedRouting
,AKS不会自动配置出口路径。出口设置必须由您完成。AKS群集必须部署到具有先前配置的子网的现有虚拟网络中,因为在不使用标准负载均衡器(SLB)体系结构时,必须建立显式出口。因此,这种架构需要明确地将出口流量发送到防火墙、网关、代理等设备,或者允许网络地址转换(NAT)由分配给标准负载均衡器或设备的公共IP完成。
userDefinedRouting创建负载均衡
出站类型为UDR的AKS集群仅在部署第一个“loadBalancer”类型的Kubernetes服务时才会接收标准负载均衡器(SLB)。负载均衡器配置有用于入站请求的公共IP地址和用于 * 入站 * 请求的后端池。Azure规则由Azure云提供商配置,但由于出站类型为UDR,因此不会配置任何出站公共IP地址或出站规则。您的UDR仍然是出口流量的唯一来源。
Azure负载均衡器don't incur a charge until a rule is placed。
【**!!重要提示:**使用出站类型是高级组网场景,需要正确配置网络。】
以下是部署具有出站类型UDR和Azure防火墙的群集的说明
ds97pgxw2#
您可以定义AKS通过负载均衡器路由出站流量(这也是默认行为)。这也可以帮助您在多个节点上“使用”相同的传出IP。
更多详情请访问here。