【发布时间】:2021-03-21 06:59:15
【问题描述】:
我正在尝试在公共 AWS NLB 上设置一个仅对特定 IP 范围可见的 pod。为此,我认为我可以使用 EKS 的安全组策略。
如果我来自 IP 123.45.67.81,我希望在 Traefik 日志中作为我的 clientHost 看到这一点,然后在我的最终应用程序中看到同样的结果。相反,我看到 Traefik 的 IP 是我们的内部网络 10.X.Y.Z。我设法通过添加以下内容来设置 NLB 以将客户端 IP 传递给 traefik:
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*",
和
spec: {
externalTrafficPolicy: Local
}
但我仍然看不到最后一个 pod 上的 IP。我在 traefik 的配置中添加了以下内容:
- "--entryPoints.web.forwardedHeaders.trustedIPs=10.X.0.0/16"
- "--entryPoints.web.forwardedHeaders.insecure"
- "--entryPoints.web.proxyProtocol.trustedIPs=10.X.0.0/16"
- "--entryPoints.web.proxyProtocol.insecure"
- "--entryPoints.websecure.forwardedHeaders.trustedIPs=10.X.0.0/16"
- "--entryPoints.websecure.forwardedHeaders.insecure"
- "--entryPoints.websecure.proxyProtocol.trustedIPs=10.X.0.0/16"
- "--entryPoints.websecure.proxyProtocol.insecure"
但它似乎没有任何区别。我知道要使其正常工作,我需要使代理协议正常工作,但我不确定它为什么不工作!
【问题讨论】:
-
您能否使用您的应用程序收到的 HTTP 请求标头更新问题?特别是那些以“X-”开头的。
标签: amazon-web-services kubernetes traefik amazon-eks