Google compute engine 为什么可以';我不能通过其IP访问Kubernetes服务吗?
我在GKE上提供Kubernetes服务,如下所示:Google compute engine 为什么可以';我不能通过其IP访问Kubernetes服务吗?,google-compute-engine,kubernetes,google-kubernetes-engine,Google Compute Engine,Kubernetes,Google Kubernetes Engine,我在GKE上提供Kubernetes服务,如下所示: $ kubectl describe service staging Name: staging Namespace: default Labels: <none> Selector: app=jupiter Type: NodePort IP: 10.11.246.27 Port: <unnamed&g
$ 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.
$kubectl描述服务转移
名称:登台
名称空间:默认值
标签:
选择器:app=jupiter
类型:节点端口
IP:10.11.246.27
端口:80/TCP
节点端口:31683/TCP
终点:10.8.0.33:1337
会话关联:无
没有事件。
我可以直接通过VM的一个端点(10.8.0.21:1337
)或通过节点端口(10.240.251.174:31683
)从VM访问服务。但是,如果我尝试访问10.11.246.27:80
,我将一无所获。我还尝试了端口1337和31683
为什么我不能通过IP访问服务?我需要防火墙规则吗?服务IP是由kube代理管理的虚拟IP。因此,为了使IP有意义,客户机还必须是kube代理“覆盖”网络的一部分(让kube代理运行,指向同一个apiserver) GCE/GKE上的Pod IP由GCE管理,GCE更像是网络中所有虚拟机的“底层” 有几种方法可以从集群外部访问非公共服务。它们更为详细,但简而言之: