gpt4 book ai didi

amazon-web-services - 带有 pod 安全组的 EKS 上的 Traefik

转载 作者:行者123 更新时间:2023-12-03 14:52:26 24 4
gpt4 key购买 nike

我正在尝试在公共(public) 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"
但这似乎没有任何区别。我知道要使其正常工作,我需要使代理协议(protocol)正常工作,但我不确定为什么不工作!

最佳答案

您可能希望使用 traefik 和 eks 版本更新您的问题,因为这有很多与版本有关的方式。
既然你说nlb , 我会假设你已经设置了 .spec.metadata.annotations.service\.beta\.kubernetes\.io/aws-load-balancer-type=nlb ,这意味着您正在使用 in-tree provider .
您是否验证负载均衡器确实收到了 service.beta.kubernetes.io/aws-load-balancer-proxy-protocol 的配置? ?转至ec2 > load balancers控制台区域并验证该字段是否按预期设置。我敢打赌不是。
在我的 eks 1.19.x 集群中,这种行为不像宣传的那样起作用。这似乎是 active issue ,其中active re-organization of the load balancer provider这使得追踪起来非常困难。据我所知,修复是 slated to land in k8s 1.20 ,不知道是否/何时可以使用反向移植。
在那之前,我至少可以确认使用新创建的 aws-load-balancer-controller project 注释似乎可以正常工作。 , 但他们只支持 nlb-ip ,它有自己的问题(在我的例子中是 like 5+ minute registration/deregistration times!引用:It can take a few minutes for the registration process to complete and health checks to start.)

关于amazon-web-services - 带有 pod 安全组的 EKS 上的 Traefik,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65224617/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com