如何在Kubernetes中修改实例的源IP? [英] How to modify source IP for a Pod in Kubernetes?

查看:22
本文介绍了如何在Kubernetes中修改实例的源IP?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

要将发往特定目的地的数据的源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。我以特权模式部署Pod,具有net_adminnet_raw访问权限。

推荐答案

我修改了Kubernetes Pod容器内的iptables

我建议不要这样做,因为这可能会损坏Kubernetes的CNI和/或Kube-Proxy。相反,请考虑使用Kubernetes Exress在到群集外部目标的传出数据包中具有已知源IP地址。

从K8S群集到群集外目的地的出口数据包的源IP为节点的IP。

https://kubernetes.io/docs/tutorials/services/source-ip/表示来自K8的出站数据包使用节点的IP地址进行源NAT:

Source NAT:替换数据包的源IP,通常替换为节点的IP

以下内容可用于从K8S集群发送出站数据包:

这篇关于如何在Kubernetes中修改实例的源IP?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆