在Minikube中无法访问公开的服务ClusterIps

时间:2017-09-06 20:08:12

标签: kubernetes minikube kube-proxy

我一直在这方面工作,我没有取得任何进展。

问题在于,当我从部署中创建服务时,在MiniKube中无法访问为该服务创建的ClusterIp,正如我预期的那样。

我可以通过sshing到一个不同于我公开的pod并且ping该服务的IP来验证它是不可访问的。

SELECT user_id, event_date FROM [TableA] WHERE 1=1 AND user_id IS NOT NULL AND event_date >= DATE_ADD(CURRENT_TIMESTAMP(), -30, 'DAY') GROUP BY 1, 2 ORDER BY 2 DESC

这将在10.0.0.5创建服务,该服务路由到$ {foo的IP}:2500

kubectl expose deployment/foo --target-port=2500

kubectl exec -it bar-5435435-sadasf -- bash root@bar-5435435-sadasf:/# ping 10.0.0.5

我没有问题ping pod IP($ foo的IP),但这不是我想做的。

我已经做足够的阅读以了解该问题可能与PING 10.0.0.5 (10.0.0.5): 56 data bytes ^C--- 10.0.0.5 ping statistics --- 8 packets transmitted, 0 packets received, 100% packet loss有关,而proxy.go似乎是Minikube中的kube-proxy等价物。

https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies https://github.com/kubernetes/minikube/blob/master/pkg/localkube/proxy.go

我已经查看了Minikube日志,并对包含“代理”的任何内容进行了搜索,似乎这可能指向该问题,但我不知道如何解决它。

我最新的代理日志:

Sep 06 18:13:06 minikube localkube[3373]: Starting proxy... Sep 06 18:13:06 minikube localkube[3373]: Waiting for proxy to be healthy... Sep 06 18:13:07 minikube localkube[3373]: proxy is ready! Sep 06 18:46:47 minikube localkube[3373]: E0906 18:46:47.742324 3373 proxy.go:207] Error proxying data from backend to client: write tcp 192.168.99.101:8443->192.168.99.1:58760: write: broken pipe Sep 06 19:11:41 minikube localkube[3373]: E0906 19:11:41.077014 3373 proxy.go:193] Error proxying data from client to backend: write tcp 127.0.0.1:44180->127.0.1.1:10250: write: broken pipe Sep 06 19:11:41 minikube localkube[3373]: E0906 19:11:41.077220 3373 proxy.go:207] Error proxying data from backend to client: write tcp 192.168.99.101:8443->192.168.99.1:45586: write: broken pipe Sep 06 19:22:07 minikube localkube[3373]: E0906 19:22:07.214287 3373 proxy.go:207] Error proxying data from backend to client: write tcp 192.168.99.101:8443->192.168.99.1:51558: write: broken pipe Sep 06 19:22:07 minikube localkube[3373]: E0906 19:22:07.214459 3373 proxy.go:193] Error proxying data from client to backend: write tcp 127.0.0.1:45184->127.0.1.1:10250: write: broken pipe

有谁知道问题是什么以及如何解决?

1 个答案:

答案 0 :(得分:0)

服务使用ClusterIP获取其虚拟IP地址。该IP地址用于与服务通信,并且只能在群集中访问。

确保您不仅通过其IP连接服务,还使用服务公开的端口连接服务。

在你的情况下:

$ kubectl expose deployment/foo --port=3030 --target-port=2500

$ kubectl get svc 
NAME  CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGE
foo   10.0.0.73    <nodes>       3030/TCP        1m

现在可以从群集中访问服务:

$ minikube ssh
$ curl 10.0.0.73:3030
Hello World!
$ exit

$ kubectl exec -i -t bar-j26rd /bin/sh
$ curl 10.0.0.73:3030
Hello World!
$ exit