gpt4 book ai didi

google-compute-engine - 为什么我无法通过其 IP 访问我的 Kubernetes 服务?

转载 作者:行者123 更新时间:2023-12-04 11:03:55 25 4
gpt4 key购买 nike

我在 GKE 上有一个 Kubernetes 服务,如下所示:

$ kubectl describe service staging
Name: staging
Namespace: default
Labels: <none>
Selector: app=jupiter
Type: NodePort
IP: 10.11.246.27
Port: <unnamed> 80/TCP
NodePort: <unnamed> 31683/TCP
Endpoints: 10.8.0.33:1337
Session Affinity: None
No events.

我可以通过其端点之一( 10.8.0.21:1337 )或通过节点端口(在我的情况下为 10.240.251.174:31683)直接从 VM 访问服务。但是,如果我尝试访问 10.11.246.27:80 ,我什么都得不到。我也试过端口 1337 和 31683。

为什么我无法通过其 IP 访问该服务?我需要防火墙规则吗?

最佳答案

服务 IP 是由 kube-proxy 管理的虚拟 IP。因此,为了使该 IP 有意义,客户端还必须是 kube-proxy “覆盖”网络的一部分(运行 kube-proxy,指向同一个 apiserver)。

GCE/GKE 上的 Pod IP 由 GCE Routes 管理,它更像是网络中所有虚拟机的“底层”。

有几种方法可以从集群外部访问非公共(public)服务。 Here它们更详细,但简而言之:

  • 为集群的服务创建堡垒 GCE 路由。
  • 在您想要访问集群服务的任何地方安装集群的 kube-proxy。
  • 关于google-compute-engine - 为什么我无法通过其 IP 访问我的 Kubernetes 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618437/

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