[英]How to modify source IP for a Pod in Kubernetes?
改变源IP到100.101.102.103用于输出数据到特定目的地,我修改一个Kubernetes波德的容器内的iptables通过执行iptables的CLI工具:
iptables -t nat -A POSTROUTING --destination 100.200.150.50/32 -j SNAT --to-source 100.101.102.103
但是它阻止了我到该目的地的传出数据,并且似乎数据被捕获在容器内,例如,当我通过 Curl 发送一个简单的请求并通过 Tcpdump 工具观察它时。
主要问题可以是:如何为集群外的目的地修改 Kubernetes 中 Pod 的源 IP?
附注。 我在具有NET_ADMIN和NET_RAW访问权限的特权模式下部署了我的 pod。
我在 Kubernetes Pod 的容器内修改了 iptables
我建议不要这样做,因为它可能会损坏 kubernetes 的 CNI 和/或 kube-proxy。 相反,请考虑使用 kubernetes 出口在到集群外目的地的传出数据包中具有众所周知的源 IP 地址。
从 k8s 集群到集群外目的地的出口数据包将节点的 IP 作为源 IP。
https://kubernetes.io/docs/tutorials/services/source-ip/说来自 k8s 的出口数据包使用节点的 IP 进行源 NAT:
源 NAT :替换数据包上的源 IP,通常使用节点的 IP
以下可用于从 k8s 集群发送出口数据包:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.