我想设置一个WireGuard(但WireGuard不相关)VPN来制作GKE pod
*. cluster1.local
解析为GKEgrouster-1
→*.club.local
*. grouster2.local
解析为GKEgrouster-2
→*.club.local
在这种情况下,我必须创建DNS来重写主机,但我还没有做到。
我目前卡住了,因为我无法访问这些集群的服务和pod的IP(我使用Ubuntu 16创建了一个实例并执行curl超文本传输协议://
似乎每个集群都是孤立的,我基本上不能通过内部IP在外部访问它,即使GCEVPN实例与集群在同一网络中。例如,我可以从集群内部执行curlhttp://10.0.26.219:4000/
(此地址解析为特定的k8s服务),但我不能从我创建的随机GCE实例(它与GKE集群在同一网络中)执行此操作。
我设置了防火墙规则允许所有进入
澄清一下,所有东西都位于同一个网络(eu-north-4)和VPC。
也许有人有设置这样一个VPN的经验吗?请告诉我,如果我能提供一些信息,因为有很多事情要考虑。很快,除了私有集群之外,它都是默认值。
群集IP永远无法从集群外部访问。这样做的原因是群集IP仅作为规则存在于各种GKE节点的iptables中。
您需要使用NodePort或LoadBalancer服务(LB将使用内部IP地址)将工作负载公开到群集之外。
您也可以直接访问pod IP,但不建议这样做,因为pod IP不是静态的,如果pod因任何原因重新安排,它会发生变化。
不幸的是,这不会像您提到的那样使用group. local利用内置的集群DNS。相反,您可以配置DNS以将特定工作负载解析为特定的内部LoadBalancer IP,这将是静态的。