kubernetes:主人以外无法访问服务

时间:2016-05-23 15:32:53

标签: networking service kubernetes

我正在关注http://kubernetes.io/docs/getting-started-guides/ubuntu/的指南,以创建一个kubernetes集群。群集启动后,我可以使用kubectl创建pod和服务。基本上,请执行以下操作

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

我看到一个pod和服务正在运行

# 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

当我尝试从运行pod的机器访问服务时,我返回nginx helloworld页面。但是,如果我在kubernetes集群中尝试另一台机器,我会暂停。

我认为所有服务都可以在群集中的任何位置访问。为什么不能那样工作?

由于

3 个答案:

答案 0 :(得分:0)

是的,服务应该可以在群集中的任何位置访问。是你的另一台机器&#34;列在kubectl get nodes的输出中?节点是Ready吗?也许机器没有正确配置。

答案 1 :(得分:0)

如果您希望将服务器放在群集中的任何位置,则必须使用网络插件,例如Flannel,OpenVSwitch。 http://kubernetes.io/docs/admin/networking/#flannel https://github.com/coreos/flannel#flannel

答案 2 :(得分:0)

通过将其与其工作的其他安装进行比较来发现我的错误。这个安装缺少一个iptables规则,强制所有进入容器的东西都进入法兰绒界面。因此,流量在eth0上到达目标主机,使其丢弃数据包。我不知道为什么代理没有添加该规则。一旦我手动添加它,它就有效。