我有 2 个 AKS 集群,每个集群上托管不同的端点。通过 Helm Chart 将它们连接到同一网关并设置禁止目标后,AKS 中的每次更新仍然会覆盖网关。我的服务在运行状况探测路径中具有诸如
/example/group/index.html
之类的端点,并且相同的路径格式为 /example/*
。如何在禁止的目标文件中指定这样格式的链接,以便服务不会再次被覆盖?
使用禁止的目标和 Helm 管理 Azure Kubernetes 服务中的路由冲突
管理 AKS(Azure Kubernetes 服务)集群并使用 Helm 图表配置共享入口或网关可能很复杂,特别是在路由管理和防止服务冲突时。利用禁止的目标是避免覆盖的关键。
在运行状况探测路径中定义诸如
/example/group/index.html
之类的链接,并在禁止的目标文件中管理诸如 /example/*
之类的通配符路径,对于防止服务覆盖至关重要。您的配置准确反映这些规范至关重要。 Helm 和 AKS 通过在入口或网关资源定义中启用注释和配置来支持此过程,这有助于精确管理这些路由规则和限制。
禁止目标配置: Azure 应用程序网关中的禁止目标使您能够从应用程序网关入口控制器 (AGIC) 的管理中排除特定路径。在多个 Kubernetes 集群或服务共享同一个应用程序网关但需要单独的路由管理的场景中,此功能至关重要。
通配符和基于路径的路由:当您的运行状况探测和服务路径采用带有通配符的格式(例如,
/example/*
)时,精确配置禁止目标设置以排除这些路径至关重要,从而防止 AGIC 管理它们.
禁止目标配置示例:
prohibitedTarget
资源可以在 Helm 值文件中定义或作为单独的 Kubernetes 清单定义。此定义必须清楚地枚举 AGIC 应忽略的路径或主机名。
kubectl apply -f prohibited-target.yaml
对于诸如
/example/group/index.html
之类的路径,您可以指定精确路径或使用通配符表达式来包含更广泛的路径。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- http:
paths:
- path: /example/group/index.html
pathType: ImplementationSpecific
- path: /example/*
pathType: ImplementationSpecific
应用禁止目标:
kubectl apply -f prohibited-targets.yaml
命令确保更改生效。参考: