gpt4 book ai didi

network-programming - 如何从到达具有外部 IP 的 ClusterIP 服务的流量中保留源 IP?

转载 作者:行者123 更新时间:2023-12-04 21:07:20 26 4
gpt4 key购买 nike

我目前有一个看起来像这样的服务:

apiVersion: v1
kind: Service
metadata:
name: httpd
spec:
ports:
- port: 80
targetPort: 80
name: http
protocol: TCP
- port: 443
targetPort: 443
name: https
protocol: TCP
selector:
app: httpd
externalIPs:
- 10.128.0.2 # VM's internal IP

我可以从绑定(bind)到 VM 的外部 IP 接收流量,但所有请求都由源 IP 10.104.0.1 的 HTTP 接收,这绝对是一个内部 IP - 即使我从集群外部连接到 VM 的外部 IP。

如何在无需设置负载均衡器或入口的情况下获取请求的真实源 IP?

最佳答案

这并不容易实现——由于 kube-proxy 的工作方式,您的流量可以在到达支持您的服务的 pod 之前在节点之间转发。

您可以使用一些 beta 注释来解决这个问题,特别是 service.beta.kubernetes.io/external-traffic: OnlyLocal .

文档中的更多信息,在这里:https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-typeloadbalancer

但这不符合您不需要 LoadBalancer 的额外要求。您能否详细说明您不想使用 LoadBalancer 的原因?

关于network-programming - 如何从到达具有外部 IP 的 ClusterIP 服务的流量中保留源 IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42475987/

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