我一直在这方面工作,我没有取得任何进展。
问题在于,当我从部署中创建服务时,在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
有谁知道问题是什么以及如何解决?
答案 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