如何在Kubernetes中修改Pod的源IP?

问题描述 投票:1回答:1

为了将传出数据到特定目标的源IP更改为100.101.102.103,我通过执行iptables CLI工具在Kubernetes Pod容器内修改了iptables

iptables -t nat -A POSTROUTING --destination 100.200.150.50/32 -j SNAT --to-source 100.101.102.103

但是它阻止我传出的数据到那个目的地,并且例如当我通过Curl发送一个简单的请求并通过Tcpdump工具监视它时,似乎数据被捕获在容器内。

主要问题可能是:如何为Kubernetes中的集群外部目标的Pod修改源IP?

P.S。我在特权模式下以NET_ADMINNET_RAW访问权限部署了pod。

kubernetes cloud iptables kubernetes-pod network-security
1个回答
0
投票

我在Kubernetes Pod的容器内修改了iptables

我建议不要这样做,因为它可能会损坏kubernetes的CNI和/或kube-proxy。相反,请考虑使用kubernetes出口在到群集之外目标的传出数据包中具有众所周知的源IP地址。

从k8s群集到群集外部目标的出口数据包以节点的IP作为源IP。

https://kubernetes.io/docs/tutorials/services/source-ip/说来自k8s的出口数据包使用节点的IP获得源NAT:

[Source NAT:通常用节点的IP替换数据包上的源IP

以下可用于从k8s集群发送出口数据包:

© www.soinside.com 2019 - 2024. All rights reserved.