2017-09-06 5 views
1

私はこれで作業していましたが、進歩はありません。公開サービスClusterIpsはMinikube内でアクセスできません

問題は、デプロイメントからサービスを作成したときに、そのサービス用に作成されたClusterIpがMiniKube内でアクセス可能でないと予想されるためです。

私が公開したものとは異なるポッドにsshしてアクセスできないことを確認し、サービスのIPにpingを実行します。

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

これは$ {fooというのIP}へのルート、10.0.0.5でサービスを作成します。私は何も問題はポッドIPにpingをしない持っ2500

kubectl exec -it bar-5435435-sadasf -- bash [email protected]:/# ping 10.0.0.5

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

($ fooのIP)、それは私がしたいことではありません。

私は問題がおそらく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ログをチェックアウトし、「プロキシ」を含む何のためgrepped、そして問題を指している可能性があるようだが、私はそれを解決する方法がわからないてきました。

私の最新のプロキシのログ:

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

K8Sサービスがping要求には返信しない、唯一のことは、あなたがチェックのためにしようとしたということでした接続? –

+0

ありがとう、Marc。だから、pingサービスができるのは私が100%だったものではありませんが、単純化のためにpingの例を使用しました。実際の問題は、私のdbのホストIPを設定することです。私はサービスIPを使いたいですが、私はホストを見つけることができません。ポッドIPを使用すると、すべて正常に動作します。私はポートマッピングが問題だとは思わない。私はそれがドキュメントの重要な部分であると思われ、私のシステム上で実行されていないので、それがすべて 'kube-proxy'だと思っていました。私はちょうどここで本当に明白な何かを逃したのですか –

答えて

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 

今のサービスは、クラスタ内からreacheableです:

$ 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 
関連する問題