【发布时间】:2020-07-01 21:22:41
【问题描述】:
我有一个使用一些 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 上,由于@Rico 在他的回答中所说的原因,ip-masq-agent 不起作用。
我想知道是否有人知道在 Windows 节点上实现相同目标的另一种方法。
我可以使用“NAT 机器”在中间保存所有连接并将所有流量路由到该机器,但这样做真的很丑。
解决方案: 我最终允许 pod 网络通过 VPN。谢谢大家的回复。
【问题讨论】:
标签: windows kubernetes nodes