Windows节点上的Kubernete NAT pod IP
我有一个混合的GKE集群,运行一些Linux和Windows节点。为了为我的一些网络配置伪装,我遵循了这个how-to(),它在Linux节点上就像一个魔咒。但它在windows主机上不起作用,它给了我以下错误:Windows节点上的Kubernete NAT pod IP,windows,kubernetes,nodes,Windows,Kubernetes,Nodes,我有一个混合的GKE集群,运行一些Linux和Windows节点。为了为我的一些网络配置伪装,我遵循了这个how-to(),它在Linux节点上就像一个魔咒。但它在windows主机上不起作用,它给了我以下错误: Failed to create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "ip-masq-agent-pc9vn": Error
Failed to create pod sandbox: rpc error: code = Unknown desc = failed to start sandbox container for pod "ip-masq-agent-pc9vn": Error response from daemon: network host not found
有人知道如何在Windows节点上配置伪装吗
添加详细信息:
我知道Linux容器不会在Windows节点上运行,所以ip masq代理不会在该节点上运行,我知道我可以使用污染或标签来避免在该节点上调度POD
我将Windows节点与kubernetes一起使用,因为我有一些.Net Framework应用程序在其上运行,并且运行良好。我的问题是,我需要伪装从pod到集群外主机的连接,因为源连接是pod IP,而不是节点IP
在Linux机器上,我可以使用ip masq代理来实现这一点,该代理管理Iptables规则来伪装流量。但在Windows上,ip masq代理无法工作,原因正如@Rico在回答中所说
我想知道是否有人知道在Windows节点上实现相同功能的其他方法
我可以使用一个“NAT机器”来保持中间的所有连接,并将所有的流量路由到该机器,但是这是一个非常丑陋的方法。 解决方案:
我最终允许pod网络通过VPN。谢谢你的回复。简单的回答是你不能。iptables是一个Linux的东西。Windows提供了一些选项,您可以使用它们来设置NAT(
netsh
),如下所述:,但没有特定的K8s支持,因此您可以自己设置
要确保您的ip masq代理
不会在Windows节点上进行调度,您可以按照所述的节点选择器
,污染/容忍
方法进行操作
一个更广泛的问题是你想在Windows机器上运行什么?不能与Linux容器互换。如果你想让你的Linux播客和Windows播客互相交谈,你试过了吗?你好,Rico,谢谢你的回答。我想我无法用正确的方式解释我的问题,所以我在答案上添加了更多细节,现在我想你会理解我的问题:)。是的,你可以试试
netsh