我有一个服务于多个 /locations 的服务。我想使任何 IP 都可以访问单个位置 /how/very/special,同时保持每个其他 /location 只能对受信任的 IP 列表访问(如果可以的话,这很简单
通过 traefik 或入口控制器实现这一目标的最佳实践方法是什么?Sidecar nginx 是添加此逻辑的唯一方法吗?
我有一个服务于多个 /locations 的服务。我想使任何 IP 都可以访问单个位置 /how/very/special,同时保持每个其他 /location 只能对受信任的 IP 列表访问(如果可以的话,这很简单
通过 traefik 或入口控制器实现这一目标的最佳实践方法是什么?Sidecar nginx 是添加此逻辑的唯一方法吗?
您可以通过在 Kubernetes 中使用 Nginx 入口控制器作为文档https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/annotations.md#user-content来实现这一点-白名单源范围
您可以通过 nginx.ingress.kubernetes.io/whitelist-source-range 注解指定允许的客户端 IP 源范围。该值是一个逗号分隔的 CIDR 列表,例如 10.0.0.0/24,172.10.0.1。
要为所有 Ingress 规则全局配置此设置,可以在 NGINX ConfigMap 中设置 whitelist-source-range 值。
!!!note 向 Ingress 规则添加注释会覆盖任何全局限制。
因此,默认情况下,您应该将受信任的 IP CIDRS 放在 Nginx ConfigMap 中,并仅/how/very/special
通过将 CIDR 设置为 0.0.0.0/0 来覆盖该规则