gpt4 book ai didi

windows - Windows 节点上的 Kubernetes NAT pod IP

转载 作者:行者123 更新时间:2023-12-02 11:32:09 25 4
gpt4 key购买 nike

我有一个运行一些 Linux 和 Windows 节点的混合 GKE 集群。我遵循了这个操作方法 (https://cloud.google.com/kubernetes-engine/docs/how-to/ip-masquerade-agent) 以便为我的一些网络配置伪装,它在 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-agent 不会在该节点上运行,而且我知道我可以使用污点或标签来避免在该节点上安排 pod。

我将 Windows 节点与 kubernetes 结合使用,因为我在其上运行了一些 .Net Framework 应用程序,并且运行良好。我的问题是我需要伪装从 pod 到集群外部主机的连接,因为源连接是 Pod IP,而不是节点 IP。

在 Linux 机器上,我可以使用 ip-masq-agent 来做到这一点,它管理 Iptables 规则来伪装流量。但是在 Windows 上,ip-masq-agent 不起作用,原因如@Rico 在他的回答中所说。

我想知道是否有人知道在 Windows 节点上实现相同功能的另一种方法。

我可以使用“NAT 机器”在中间保持所有连接并将所有流量路由到该机器,但这样做的方式非常丑陋。

解决方案:我最终允许 pod 网络通过 VPN。谢谢大家的回复。

最佳答案

简单的答案是你不能。 iptables 是 Linux 的东西。 Windows 有一些替代方法,您可以使用它们来设置 NAT (netsh),如下所述:https://superuser.com/questions/1088309/windows-10-nat-port-forwarding-ip-masquerade ,但没有特定的 K8s 支持,所以你将靠自己。

要确保您的 ip-masq-agent 不会在您的 Windows 节点上安排,您可以遵循 NodeSelectorTaint/Toleration 描述的方法 here .

更广泛的问题是您要在 Windows 机器上运行什么? Windows containers不能与 Linux 容器互换。如果您希望您的 Linux pod 和 Windows pod 相互通信,您是否尝试过 Flannel

关于windows - Windows 节点上的 Kubernetes NAT pod IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62525948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com