2016-05-23 11 views
2

kubernetesクラスタを作成するには、http://kubernetes.io/docs/getting-started-guides/ubuntu/のガイドに従っています。クラスタが稼働したら、kubectlを使ってポッドとサービスを作成できます。基本的には、以下のkubernetes:ホストの外でサービスにアクセスできない

kubectl run nginx --image=nginx --port=80 
kubectl expose deployment/nginx 

を行う私はポッドが稼働しているマシンからのサービスにアクセスしようとすると、私はnginxののhelloworldのページを取り戻す

# kubectl get services 
NAME   CLUSTER-IP  EXTERNAL-IP PORT(S) AGE 
kubernetes 192.168.3.1  <none>  443/TCP 2d 
nginx  192.168.3.208 <none>  80/TCP 2d 

を実行しているポッドやサービスを参照してください。しかし、私がkubernetesクラスター内の別のマシンを試してみると、タイムアウトになります。

私はすべてのサービスがクラスタのどこにでもアクセスできると思っていました。どうしてそんなことができないの?

おかげ

答えて

0

はい、サービスは、クラスタ内のアクセスのどこかでなければなりません。あなたの "別のマシン"はkubectl get nodesの出力に表示されていますか?ノードはReadyですか?マシンが正しく構成されていない可能性があります。

0

http://kubernetes.io/docs/admin/networking/#flannelは、それが働いていた別のインストールとそれを比較することで、私の誤りを見つけました。このインストールにはiptablesルールがありませんでした。そのため、コンテナに行くすべてのものがflannelインターフェイスに送られました。したがってトラフィックはeth0上のターゲットホストに到達してパケットを破棄していました。プロキシがそのルールを追加しなかった理由はわかりません。私は手動でそれを追加した後、それは働いた。

関連する問題