你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
可以在创建群集时或通过更新群集来自定义标准公共负载均衡器的不同设置。 通过这些自定义选项,可以创建满足工作负载需求的负载均衡器。 使用标准负载均衡器,你可以执行以下操作:
重要
在给定时间只能使用一个出站 IP 选项(托管 IP、自带 IP 或 IP 前缀)。
在您开始之前
- 按照 在 Azure Kubernetes 服务中使用公共标准负载均衡器(AKS)中的 步骤在 AKS 中创建和部署负载均衡器服务。
更改入站池类型
可以按 IP 配置(基于 Azure 虚拟机规模集的成员身份)或仅按 IP 地址引用负载均衡器后端池中的 AKS 节点。 更新服务和预配负载均衡器时,基于 IP 地址的后端池成员身份可提供更高的效率,尤其是在高节点计数下。 与 NAT 网关 或 用户定义的路由出口 类型结合使用时,新节点和服务预配的性能更高。
提供了两种不同的池成员身份类型:
-
nodeIPConfiguration:基于旧版虚拟机规模集 IP 配置的池成员身份类型。 -
nodeIP:基于 IP 的成员身份类型。
更改入站池类型的条件
在更改入站池类型之前,请确保满足以下要求:
- AKS 群集的版本必须为 1.23 或更高版本。
- AKS 群集必须使用标准负载均衡器和虚拟机规模集。
使用带有
--load-balancer-backend-pool-type=nodeIP参数的az aks create命令,创建基于 IP 的入站池成员身份的 AKS 群集。az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --load-balancer-backend-pool-type=nodeIP \ --generate-ssh-keys
缩放受管理出站公共 IP 的数量
Azure 负载均衡器从 VNet 提供出站和入站连接。 使用出站规则可以方便地配置公共标准负载均衡器的出站网络地址转换。
出站规则遵循与负载均衡和入站 NAT 规则相同的语法: 前端 IP + 参数 + 后端池
出站规则为后端池识别的、要转换为前端的所有虚拟机 (VM) 配置出站 NAT。 参数针对出站 NAT 算法提供更大的控制度。
虽然可以将出站规则与单个公共 IP 地址配合使用,但出站规则非常适合缩放出站 NAT,因为它们减轻了配置负担。 可以使用多个 IP 地址规划大规模方案,并可以使用出站规则来缓解容易出现 SNAT 耗尽的模式。 前端提供的每个 IP 地址可提供 64,000 个临时端口,供负载均衡器用作 SNAT 端口。
使用具有(默认创建的)托管出站公共 IP 的标准 SKU 负载均衡器时,可以使用 参数缩放托管出站公共 IP 的数量--load-balancer-managed-outbound-ip-count。
重要
不建议使用 Azure 门户进行任何出站规则更改。 进行这些更改时,应浏览 AKS 群集,而不是直接访问负载均衡器资源。
每当协调群集时(例如停止、启动、升级或缩放群集时),会删除对负载均衡器资源直接作出的出站规则更改。
使用 Azure CLI,如示例所示。 使用 az aks CLI 命令进行的出站规则更改在群集停机期间是永久性的。
有关详细信息,请参阅 Azure 负载均衡器出站规则。
设置托管出站公共 IP 地址的数量
使用
az aks create命令和--load-balancer-managed-outbound-ip-count参数创建一个具有特定数量管理出站公共 IP 的新 AKS 群集。 以下示例将托管出站公共 IP 数设置为 2。az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --load-balancer-managed-outbound-ip-count 2 \ --generate-ssh-keys
提供自己的出站公共 IP 或前缀
使用标准 SKU 负载均衡器时,默认情况下,AKS 群集会自动在 AKS 管理的基础结构资源组中创建公共 IP 并将其分配给负载均衡器出站池。
AKS 创建的公共 IP 是 AKS 受管理资源,这意味着 AKS 管理该公共 IP 的生命周期,并且不需要用户直接对公共 IP 资源执行操作。 或者,你可以在群集创建时分配自己的自定义公共 IP 或公共 IP 前缀。 还可以在现有群集的负载均衡器属性上更新自定义 IP。
使用自己的出站公共 IP 或前缀的要求
在提供自己的出站公共 IP 或前缀之前,请确保满足以下要求:
- 必须创建并拥有自定义公共 IP 地址。 不能重复使用 AKS 创建的托管公共 IP 地址作为“自带自定义 IP”,因为它可能会导致管理冲突。
- 必须根据所需的公共 IP 权限列表,确保 AKS 群集标识有权访问出站 IP。
- 请确保满足配置出站 IP 或出站 IP 前缀所需的 先决条件和约束 。
提供自己的出站公共 IP
使用
az aks create命令及--load-balancer-outbound-ips参数创建新的 AKS 群集,并配置您自己的出站公共IP。 请确保将占位符值替换为您自己的值。az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --load-balancer-outbound-ips $PUBLIC_IP_ID1,$PUBLIC_IP_ID2 \ --generate-ssh-keys
提供自己的出站公共 IP 前缀
使用
az aks create命令及其--load-balancer-outbound-ip-prefixes参数,创建一个带有您自己的出站公共 IP 前缀的新 AKS 群集。 请务必将占位符值替换为你自己的值。az aks create \ --name $CLUSTER_NAME \ --resource-group $RESOURCE_GROUP \ --load-balancer-outbound-ip-prefixes $PUBLIC_IP_PREFIX_ID1,$PUBLIC_IP_PREFIX_ID2 \ --generate-ssh-keys
配置分配的出站端口
重要
如果群集上的应用程序可以与公共 IP 地址上的小型目标集(例如连接到数据库的前端应用程序的多个实例)建立大量连接,则可能会遇到易于发生 SNAT 端口耗尽的情况。 当一个应用程序用完用于建立与另一个应用程序或主机的连接的出站端口时,就会发生 SNAT 端口耗尽。 如果遇到 SNAT 端口耗尽的情况,强烈建议在负载均衡器上增加分配的出站端口和出站前端 IP。
有关 SNAT 的详细信息,请参阅 将 SNAT 用于出站连接。
默认情况下,AKS 在其负载均衡器上将 0 设置为,这会在创建群集时基于后端池大小启用自动出站端口分配。 例如,如果群集有 50 个或更少的节点,则向每个节点分配 1024 个端口。 使用此值,可以缩放到群集最大节点计数,而无需重新配置网络,但随着添加更多节点,可能导致 SNAT 端口耗尽现象更为常见。 随着群集中节点数的增加,每个节点可用的端口将减少。 在图表中跨边界增加节点计数(例如,从 50 个节点增加到 100 个节点或 100 到 101)可能会中断连接,因为分配给现有节点的 SNAT 端口会减少,以允许更多节点。 建议对 AllocatedOutboundPorts 使用显式值。
查看当前分配的出站端口
使用命令获取 AKS 群集负载均衡器的
az network lb outbound-rule list值。NODE_RG=$(az aks show --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --query nodeResourceGroup -o tsv) az network lb outbound-rule list --resource-group $NODE_RG --lb-name kubernetes -o table以下示例输出显示为群集启用基于后端池大小的自动出站端口分配:
AllocatedOutboundPorts EnableTcpReset IdleTimeoutInMinutes Name Protocol ProvisioningState ResourceGroup ------------------------ ---------------- ---------------------- --------------- ---------- ------------------- ------------- 0 True 30 aksOutboundRule All Succeeded MC_myResourceGroup_myAKSCluster_eastus
计算并验证所需的出站端口和 IP
为出站端口或出站 IP 地址设置特定值或增加现有值之前,必须计算出站端口和 IP 地址的适当数量。 使用以下公式将此计算舍入为最接近的整数:64,000 ports per IP / <outbound ports per node> * <number of outbound IPs> = <maximum number of nodes in the cluster>。
计算出站端口和 IP 的注意事项
计算出站端口和 IP 数并设置值时,请记住以下信息:
- 根据你设置的值,每个节点的出站端口数为固定值。
- 出站端口数的值必须是 8 的倍数。
- 添加更多 IP 不会将更多端口添加到任何节点,但会为群集中的更多节点提供容量。
- 必须将升级过程中可能添加的节点考虑在内,包括通过
maxCount和maxSurge值指定的节点计数。
计算出站端口和 IP 的示例
以下示例显示了你所设置的值会如何影响出站端口和 IP 地址的数量:
- 如果使用默认值,并且群集有 48 个节点,则每个节点有 1024 个端口可用。
- 如果使用默认值,并且群集的节点从 48 个增加到 52 个,则每个节点都会从 1024 个端口可用更新为 512 个端口可用。
- 如果出站端口数设置为 1,000 并且出站 IP 数设置为 2,则群集最多可以支持 128 个节点:
64,000 ports per IP / 1,000 ports per node * 2 IPs = 128 nodes。 - 如果出站端口数设置为 1,000 并且出站 IP 数设置为 7,则群集最多可以支持 448 个节点:
64,000 ports per IP / 1,000 ports per node * 7 IPs = 448 nodes。 - 如果出站端口数设置为 4,000 并且出站 IP 数设置为 2,则群集最多可以支持 32 个节点:
64,000 ports per IP / 4,000 ports per node * 2 IPs = 32 nodes。 - 如果出站端口数设置为 4,000 并且出站 IP 数设置为 7,则群集最多可以支持 112 个节点:
64,000 ports per IP / 4,000 ports per node * 7 IPs = 112 nodes。
重要
计算出站端口和 IP 数后,请验证升级期间是否具有额外的出站端口容量来处理节点激增。 对于升级和其他作所需的额外节点,分配足够的多余的端口至关重要。 AKS 默认为用于升级操作的 一个 缓冲区节点。 如果使用 maxSurge 值,请将每个节点的出站端口乘以 maxSurge 值来确定所需的端口数。 例如,如果计算出每个节点上有 7 个 IP 地址的节点需要 4000 个端口,且最多有 100 个节点,最大激增量为 2:
- 2 个激增节点 * 每个节点 4000 个端口 = 升级过程中节点激增需要 8000 个端口。
- 100 个节点 * 每个节点 4000 个端口 = 群集需要 400,000 个端口。
- 7 个 IP * 每个 IP 64000 个端口 = 448,000 个端口可用于群集。
此示例显示群集的容量超过 48,000 个端口,足以处理升级期间节点激增所需的 8000 个端口。
设置分配的出站端口和出站 IP
计算并验证这些值后,可以在创建或更新集群时使用 load-balancer-outbound-ports 以及 load-balancer-managed-outbound-ip-count、load-balancer-outbound-ips 或 load-balancer-outbound-ip-prefixes 来应用这些值。
使用
az aks create命令创建具有特定出站端口和 IP 的新 AKS 群集。 以下示例将--load-balancer-managed-outbound-ip-count参数设置为 7 ,并将--load-balancer-outbound-ports参数设置为 4000:az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --load-balancer-managed-outbound-ip-count 7 \ --load-balancer-outbound-ports 4000 \ --generate-ssh-keys
配置负载均衡器的空闲超时
如果 SNAT 端口资源已经耗尽,那么在现有流释放 SNAT 端口之前出站流会失败。 当流关闭时,负载均衡器将回收 SNAT 端口,AKS 配置的负载均衡器将使用 30 分钟空闲超时回收空闲流中的 SNAT 端口。 还可以使用传输(例如 TCP keepalives 或 application-layer keepalives)刷新空闲流,并在必要时重置此空闲超时。
如果你希望具有许多短生存期的连接,而不想有长生存期且可能有长时间空闲的连接(例如使用 kubectl proxy 或 kubectl port-forward),请考虑使用低超时值(如 4 分钟)。 使用 TCP keepalive 时,在连接的一端启用它们就足够了。 例如,若要重置流的空闲计时器,在服务器端启用这些连接就足够了。 没有必要在两端都启动 TCP keepalive。 应用程序层(包括数据库客户端-服务器配置)也存在类似的概念。 检查服务器端对于特定于应用程序的 keepalive 存在哪些选项。
重要
默认情况下,AKS 会启用空闲时 TCP 重置。 我们建议保留此配置,并利用它在方案中实现可预测性更高的应用程序行为。 有关详细信息,请参阅 Azure 负载均衡器 TCP 重置。
将 IdleTimeoutInMinutes 设置为与默认值 30 分钟不同的值时,请考虑工作负荷需要出站连接的时间。 另请考虑在 AKS 外部使用 的标准 SKU 负载均衡器的默认超时值为 4 分钟。 如果 IdleTimeoutInMinutes 值较准确地反映你的具体 AKS 工作负载,则有助于降低由于绑定不再使用的连接而导致的 SNAT 耗尽。
警告
更改 AllocatedOutboundPorts 和 IdleTimeoutInMinutes 的值可能会明显改变负载均衡器的出站规则的行为,因此请不要轻易更改。 请参阅 对 SNAT 进行故障排除 ,并在更新这些值之前查看 Azure 中的负载均衡器出站规则 和 出站连接 ,以充分了解更改的影响。
使用带有
--load-balancer-idle-timeout参数的az aks create命令,创建具有特定空闲超时的新 AKS 群集。 以下示例将空闲超时设置为 4 分钟:az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --load-balancer-idle-timeout 4 \ --generate-ssh-keys
将入站流量限制为特定 IP 范围
以下清单使用 loadBalancerSourceRanges 为外部流量入站指定新的 IP 范围。
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
ports:
- port: 80
selector:
app: azure-vote-front
loadBalancerSourceRanges:
- MY_EXTERNAL_IP_RANGE
此示例将规则更新为仅允许 MY_EXTERNAL_IP_RANGE 范围内的入站外部流量。 如果将 MY_EXTERNAL_IP_RANGE 替换为内部子网 IP 地址,则流量将限制为仅群集内部 IP。 如果流量限制为群集内部 IP,则 Kubernetes 群集外部的客户端无法访问负载均衡器。
注释
限制入站流量时,请记住以下信息:
- 如果需要同时允许 CIDR 块和 Azure 服务标记,请删除
loadBalancerSourceRanges该属性并添加service.beta.kubernetes.io/azure-allowed-ip-ranges和/或service.beta.kubernetes.io/azure-allowed-service-tags负载均衡器注释。 此配置仅在 NSG 层应用筛选,并跳过主机级 kube-proxy 规则。 如果将loadBalancerSourceRanges属性与azure-allowed-service-tags批注一起设置,则在尝试应用规范时,AKS 会报告错误。 - 入站、外部流量从负载均衡器流向 AKS 群集的虚拟网络。 该虚拟网络有一个网络安全组 (NSG),该安全组允许来自负载均衡器的所有入站流量。 此 NSG 使用 LoadBalancer 类型的服务标记来允许来自负载均衡器的流量。
- 如果 Kubernetes 版本为 1.25 或更高版本,且集群中的 Pod 需要访问服务的负载均衡 IP,应将 Pod CIDR 添加到
loadBalancerSourceRanges。
维护入站连接上的客户端 IP
默认情况下,LoadBalancer 和 AKS 中类型的服务不会在与 Pod 的连接上保留客户端的 IP 地址。 传递到 Pod 的数据包上的源 IP 会成为节点的专用 IP。 若要维护客户端的 IP 地址,必须在服务定义中设置为service.spec.externalTrafficPolicylocal。 以下清单显示了一个示例:
apiVersion: v1
kind: Service
metadata:
name: azure-vote-front
spec:
type: LoadBalancer
externalTrafficPolicy: Local
ports:
- port: 80
selector:
app: azure-vote-front
通过 Kubernetes 注释进行自定义
类型为 LoadBalancer 的 Kubernetes 服务支持以下批注,这些批注仅适用于 INBOUND 流。
| 注释 | 价值 | Description |
|---|---|---|
service.beta.kubernetes.io/azure-load-balancer-internal |
true 或 false |
指定负载均衡器是否应为“内部”。 如果未设置,则默认为公共。 |
service.beta.kubernetes.io/azure-load-balancer-internal-subnet |
子网的名称 | 指定内部负载均衡器应绑定到的子网。 如果未设置,则默认为云配置文件中配置的子网。 |
service.beta.kubernetes.io/azure-dns-label-name |
公共 IP 上的 DNS 标签的名称 | 指定公共服务的 DNS 标签的名称。 如果设置为空字符串,则不会使用公共 IP 中的 DNS 条目。 |
service.beta.kubernetes.io/azure-shared-securityrule |
true 或 false |
指定通过可能共享的 Azure 安全规则来公开服务,增加服务的曝光度,并在网络安全组中利用 Azure 增强安全规则。 |
service.beta.kubernetes.io/azure-load-balancer-resource-group |
资源组的名称 | 指定与群集基础结构(节点资源组)不在同一资源组中的负载均衡器公共 IP 的资源组。 |
service.beta.kubernetes.io/azure-allowed-service-tags |
允许的服务标记列表 | 指定用逗号分隔的允许 服务标记 的列表。 |
service.beta.kubernetes.io/azure-allowed-ip-ranges |
允许的 IP 范围列表 | 指定以逗号分隔的允许 IP 范围的列表。 |
service.beta.kubernetes.io/azure-load-balancer-tcp-idle-timeout |
TCP 空闲超时(以分钟为单位) | 指定 TCP 连接空闲超时在负载均衡器上发生的时间(以分钟为单位)。 默认值和最小值为 4。 最大值为 30。 该值必须为整数。 |
service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset |
true 或 false |
指定负载均衡器是否应在达到空闲超时时禁用 TCP 重置。 |
service.beta.kubernetes.io/azure-load-balancer-ipv4 |
IPv4 地址 | 指定要分配给负载均衡器的 IPv4 地址。 |
service.beta.kubernetes.io/azure-load-balancer-ipv6 |
IPv6 地址 | 指定要分配给负载均衡器的 IPv6 地址。 |
自定义允许的 IP 范围(预览版)
可以使用 azure-allowed-service-tags 和 azure-allowed-ip-ranges 注释在负载均衡器上合并 CIDR 块和 Azure 服务标记。 添加 service.beta.kubernetes.io/azure-allowed-ip-ranges 以逗号分隔的 IP 前缀列表,并添加 service.beta.kubernetes.io/azure-allowed-service-tags 一个或多个 Azure 服务标记。 AKS 云提供商将这两个值合并到单个 NSG 规则中,因此流量在 NSG 中集中筛选,为 IP 地址和服务标记提供一个以 NSG 为中心的控制平面。
对于需要在 NSG 和主机中强制实施基于 CIDR 的限制的情况,可以继续使用 loadBalancerSourceRanges 该属性。 不能将此属性与批注一起使用 azure-allowed-service-tags 。 如果同时指定了两者,则 AKS 在尝试应用负载均衡器服务规范时报告错误。
自定义负载均衡器运行状况探测
支持使用以下注解自定义负载均衡器运行状况探测行为:
| 注释 | 价值 | Description |
|---|---|---|
service.beta.kubernetes.io/azure-load-balancer-health-probe-interval |
运行状况探测间隔 | |
service.beta.kubernetes.io/azure-load-balancer-health-probe-num-of-probe |
运行状况探测的最小不正常响应数 | |
service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path |
运行状况探测的请求路径 | |
service.beta.kubernetes.io/port_{port}_no_lb_rule |
真/假 | {port} 是服务端口号。 设置为此 true端口时,不会生成此端口的负载均衡器或运行状况探测规则。 运行状况检查服务不应向公共 Internet 公开。 |
service.beta.kubernetes.io/port_{port}_no_probe_rule |
真/假 | {port} 是服务端口号。 当设置为 true 时,不会为此端口创建任何运行状况探测规则。 |
service.beta.kubernetes.io/port_{port}_health-probe_protocol |
运行状况探测协议 | {port} 是服务端口号。 服务端口 {port} 的运行状况探测的显式协议,如果设置将替代 port.appProtocol。 |
service.beta.kubernetes.io/port_{port}_health-probe_port |
服务清单中的端口号或端口名 | {port} 是服务端口号。 服务端口 {port} 的运行状况探测的显式端口,将替代默认值。 |
service.beta.kubernetes.io/port_{port}_health-probe_interval |
运行状况探测间隔 | {port} 是服务端口号。 |
service.beta.kubernetes.io/port_{port}_health-probe_num-of-probe |
运行状况探测的最小不正常响应数 | {port} 是服务端口号。 |
service.beta.kubernetes.io/port_{port}_health-probe_request-path |
运行状况探测的请求路径 | {port} 是服务端口号。 |
注释
AKS 现在支持 externalTrafficPolicy: Cluster 服务的共享运行状况探测。 若要了解详细信息,请参阅 Azure Kubernetes 服务(AKS)中的服务共享运行状况探测 externalTrafficPolicy: Cluster (预览版)。
默认健康探测行为
当前,健康探测的默认协议会因不同服务的传输协议、应用协议、注释和外部流量策略而有所不同。
- 对于本地服务,将使用 HTTP 和 /healthz。 健康探测将查询
NodeHealthPort而不是实际的后端服务。 - 对于群集 TCP 服务,将使用 TCP。
- 对于群集 UDP 服务,无运行状况探测。
注释
对于启用了 PLS 集成和 PLS 代理协议的本地服务,默认 HTTP 和 /healthz 运行状况探测不起作用。 因此,可以使用与群集服务相同的方式自定义运行状况探测以支持此场景。
健康探测请求路径注释
从 Kubernetes 版本 1.20 开始,引入了服务注释 service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path 来确定运行状况探测行为。
- 对于 <=1.23 的群集,
spec.ports.appProtocol仅在设置service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path时用作探测协议。 - 对于 >1.24 的群集,
spec.ports.appProtocol将用作探测协议,/将用作默认探测请求路径(service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path可用于更改为其他请求路径)。
请注意,使用 TCP 或 spec.ports.appProtocol 为空时,将忽略请求路径。 下表汇总了默认的运行状况探测行为:
| loadbalancer sku | externalTrafficPolicy |
spec.ports.Protocol | spec.ports.AppProtocol | service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path |
LB 探测协议 | LB 探测请求路径 |
|---|---|---|---|---|---|---|
| 标准 | 本地的 | any | any | any | http | /healthz |
| 标准 | 群集 | udp | any | any | null | null |
| 标准 | 群集 | TCP | (ignored) | TCP | null | |
| 标准 | 群集 | TCP | TCP | (ignored) | TCP | null |
| 标准 | 群集 | TCP | http/https | TCP(<=1.23) 或 http/https(>=1.24) | null(<=1.23) 或 /(>=1.24) |
|
| 标准 | 群集 | TCP | http/https | /custom-path |
http/https | /custom-path |
| 标准 | 群集 | TCP | 协议不受支持 | /custom-path |
TCP | null |
| 基本 | 本地的 | any | any | any | http | /healthz |
| 基本 | 群集 | TCP | (ignored) | TCP | null | |
| 基本 | 群集 | TCP | TCP | (ignored) | TCP | null |
| 基本 | 群集 | TCP | http | TCP(<=1.23) 或 http/https(>=1.24) | null(<=1.23) 或 /(>=1.24) |
|
| 基本 | 群集 | TCP | http | /custom-path |
http | /custom-path |
| 基本 | 群集 | TCP | 协议不受支持 | /custom-path |
TCP | null |
运行状况探测的间隔时间和探测注释数量
从 Kubernetes 版本 1.21 开始,引入了两个服务注释 service.beta.kubernetes.io/azure-load-balancer-health-probe-interval , load-balancer-health-probe-num-of-probe 用于自定义运行状况探测的配置。 如果未 service.beta.kubernetes.io/azure-load-balancer-health-probe-interval 设置,则应用默认值 5 。 如果未 load-balancer-health-probe-num-of-probe 设置,则应用默认值 2 。
端口的自定义负载均衡器运行状况探测
服务中的不同端口可能需要不同的运行状况探测配置。 这可能是由于服务设计(例如控制多个端口的单个运行状况终结点)或 Kubernetes 功能(如 MixedProtocolLBService)导致的。
下表汇总了特定于端口的注释,这些注释可用于覆盖服务中特定端口的全局健康探测注释:
| 特定于端口的批注 | 全局探测注释 | 行为 |
|---|---|---|
service.beta.kubernetes.io/port_{port}_no_lb_rule |
不适用(全局无等效项) | 如果设置为 true,则不会生成任何负载均衡器或探测规则。 |
service.beta.kubernetes.io/port_{port}_no_probe_rule |
不适用(全局无等效项) | 如果设置为 true,则不会生成探测规则。 |
service.beta.kubernetes.io/port_{port}_health-probe_protocol |
不适用(全局无等效项) | 设置此服务端口的运行状况探测协议(例如:Http、Https、Tcp)。 |
service.beta.kubernetes.io/port_{port}_health-probe_port |
不适用(全局无等效项) | 设置此服务端口的运行状况探测端口(例如:15021)。 |
service.beta.kubernetes.io/port_{port}_health-probe_request-path |
service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path |
对于 Http 或 Https,设置运行状况探测请求路径(默认为 /)。 |
service.beta.kubernetes.io/port_{port}_health-probe_num-of-probe |
service.beta.kubernetes.io/azure-load-balancer-health-probe-num-of-probe |
在将端口视为不正常之前的连续探测失败次数。 |
service.beta.kubernetes.io/port_{port}_health-probe_interval |
service.beta.kubernetes.io/azure-load-balancer-health-probe-interval |
探测尝试之间的时间长短。 |
后续步骤
若要了解有关 Kubernetes 服务的详细信息,请参阅 Kubernetes 服务文档。
若要详细了解如何将内部负载均衡器用于入站流量,请参阅 AKS 内部负载均衡器文档。