Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows节点上的Kubernete NAT pod IP_Windows_Kubernetes_Nodes - Fatal编程技术网

Windows节点上的Kubernete NAT pod IP

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

我有一个混合的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 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