Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
在 Azure Kubernetes 服务(AKS)中使用共享运行状况探测的服务
本文介绍如何在 Azure Kubernetes 服务(AKS)中为服务启用externalTrafficPolicy: Cluster(预览)。 共享探测模式可提高负载均衡器效率,降低配置复杂性,并提供更准确的节点运行状况监视。
关于共享运行状况探测模式
在使用externalTrafficPolicy: Cluster的群集中,Azure 标准负载均衡器(SLB)当前会为每个服务创建单独的探测,同时针对每个服务的。
此种设计标识 SLB 从任何回答探测的应用程序 Pod 推断节点健康状况。 随着群集的增长,此方法会导致几个问题,包括:
-
配置偏移和盲点:如果 iptables 规则仍然存在,SLB 无法检测到失败或配置
kube‑proxy错误。 -
复制健康状况逻辑:必须两次定义就绪情况。 一次在每个 Pod 的
readinessProbe中,另一次通过 SLB 注释。 - 操作开销:每个节点上的每个服务每 五秒检查一次,消耗连接、SNAT 端口和 SLB 规则空间。
-
功能摩擦:客户无法设置
allocateLoadBalancerNodePorts=false,Istio 或 ingress-nginx 等工作负载需要额外的注释才能使探测正常工作。 - 排查混淆:运行不正常的应用、网络策略规则或缩放到零事件可能会使整个节点出现故障。
共享探测模式通过迁移到一个用于所有服务的单个 HTTP 探测来解决这些问题。 在共享探测模式下:
- SLB 探测
http://<node‑ip>:10356/healthz,标准kube‑proxy健康状况终结点。 - 轻量挎斗在
kube‑proxy旁边运行,以在启用专用链接服务时中继探测并处理 PROXY 协议。
共享探测模式的优点
下表概述了使用共享探测模式 的主要优势 :
| 益处 | 重要性 |
|---|---|
| 准确的节点健康状况 | SLB 现在直接测量 kube‑proxy,而不是任意的后端 pod。 |
| 更简单的配置 | 无每个服务探测注释;准备状态完全取决于 Pod 规格。 |
| 降低流量开销 | 每个节点一个探测,而不是服务×(节点-1)探测。 |
注释
使用共享探测模式时,请记住以下信息:
- 使用
externalTrafficPolicy: Local的服务 保持不变。 - 此功能 不会 解决容器原生负载均衡问题。
在您开始之前
安装或更新 aks-preview Azure CLI 扩展
重要
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
使用
aks-preview命令安装az extension add扩展。az extension add --name aks-preview使用
aks-preview命令更新到最新版本的az extension update扩展。az extension update --name aks-preview
注册 EnableSLBSharedHealthProbePreview 功能标志
使用
EnableSLBSharedHealthProbePreview命令注册az feature register功能标志。az feature register --namespace "Microsoft.ContainerService" --name "EnableSLBSharedHealthProbePreview"几分钟后,状态将显示为“已注册”。
使用
az feature show命令验证注册状态:az feature show --namespace "Microsoft.ContainerService" --name "EnableSLBSharedHealthProbePreview"当状态反映为已注册时,使用 命令刷新
az provider register资源提供程序的注册。az provider register --namespace Microsoft.ContainerService