我一直在尝试从 Kubernetes 集群中的 pod 访问 Compute Engine 上的 Google Compute 实例。
使用curl http://{INTERNAL_IP}:{PORT}/
我得到:curl: (7) Failed to connect to 10.0.0.7 port 8080: Connection timed out
为什么我无法从 Kubernetes pod 访问我的 Google 计算机?
它们都共享同一区域,这可能是权限问题吗?
答案1
我通过在 GCP 中添加防火墙规则解决了该问题。我所做的是为 kubernetes 集群 IP 的所有计算实例虚拟机创建一条 Ingress 防火墙规则。此选项可在 VPC 网络 > 防火墙规则下找到。
答案2
您可能没有配置 IP 伪装。这是一种 NAT 形式,在将流量发送到集群节点的 IP 和集群 IP 范围之外的目的地时伪装节点/pod IP 地址。有关更多信息,请查看以下内容文档