问题描述
GCP以前有一个文档,解释了如何将Google Compute instance用作自定义NAT设备,现在已根据the documentation弃用并删除了它。
基本上,它具有使用sysctl
和iptables
命令的命令列表,以便将接收到的某些流量转发到特定的目标IP。
命令如下所示:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination xx.xxx.xxx.xx
iptables -t nat -A POSTROUTING -j MASQUERADE
我有一个正在运行的计算实例,该实例被用作NAT设备,以将某些流量从某些IP转发到特定的目的地。这是在Google Cloud Routes的帮助下完成的。示例:
gcloud compute routes create $EXAMPLE-ROUTE-NAME \
--network $NETWORK-NAME \
--destination-range 1.1.1.1 \
--next-hop-instance $CUSTOM-NAT-INSTANCE-NAME \
--next-hop-instance-zone $CUSTOM-NAT-INSTANCE-ZONE \
--tags $TAG-NAME \
--priority 800
这样,当“ $ {NETWORK-NAME}”中所有带有标签“ $ TAG-NAME”的VM实例尝试向“ 1.1.1.1”发送请求时,此自定义路由会将流量转发到“ $” CUSTOM-NAT-INSTANCE-NAME”,该实例将作为NAT并将流量转发到“ xx.xxx.xxx.xx”。
我了解“ Google Cloud NAT”的概念以及设置它的难度,但是由于某些限制,我们必须使用自定义NAT。
现在我的问题是,我们可以在GKE容器上设置自定义NAT吗?容器内部没有sysctl
命令(如预期),并且securityContext.sysctls.name: net.ipv4.ip_forward
在GKE中是不允许的。
是否可以将Kubernetes容器用作NAT设备?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)