pod 无法访问本地机器 Kubernetes 服务
Posted
技术标签:
【中文标题】pod 无法访问本地机器 Kubernetes 服务【英文标题】:Local-machine Kubernetes service unreachable by pods 【发布时间】:2015-10-27 17:32:24 【问题描述】:按照本指南启动本地机器 kubernetes 集群: http://kubernetes.io/v1.0/docs/getting-started-guides/docker.html
我用 .yaml 文件创建了各种 pod,一切正常,我可以使用容器 IP(在 172.17.xx 范围内,使用 docker0)访问 nginx 和 mysql,但是当我创建服务时,服务 IP 在 10.0 .0.x 范围,无法从其他容器访问。
kube-proxy 不是应该自动创建 iptables 规则,提供对服务 IP 后面的容器的访问吗?没有发生 iptables 更改,其他容器无法访问服务。谢谢!
【问题讨论】:
【参考方案1】:我刚刚浏览了这个(稍微过时的)文档。我发现如果在 2 个“docker run”行中将hyperkube:v0.21.2
替换为hyperkube:v1.0.7
,并在kubectl 下载URL 中将0.18.2
替换为1.0.7
,它会起作用。
我已提出更新此文档的请求。给您添麻烦了。
【讨论】:
不走运——同样的症状。我有 pod 与 GKE 上的服务交谈,但不是在仅限本地的开发系统上。容器到端点有效,但容器到服务 IP 无效。能够从所有容器 ping 到 www。运行 docker for kubernetes 时是否有一组必要的命令选项?使用 /usr/bin/docker -d -p /run/docker.pid --icc=true --ip-forward=true --iptables=true gist.github.com/thockin/3a8043ce6129a44af530 我刚刚在一个全新的虚拟机上再次运行它。你能追踪我的脚步,看看有没有什么不同吗?【参考方案2】:Tim,我确实使用你的步骤再次运行它,没有区别,没有工作,但是今天我在这里切换到 1.1 版文档:
http://kubernetes.io/v1.1/docs/getting-started-guides/docker.html
并且还切换了容器版本,目前正在使用:
gcr.io/google_containers/etcd:2.2.1
gcr.io/google_containers/hyperkube:v1.1.1
你瞧……它有效!!!容器现在可以与服务对话了! 感谢回复
【讨论】:
以上是关于pod 无法访问本地机器 Kubernetes 服务的主要内容,如果未能解决你的问题,请参考以下文章
大使pod在kubernetes中失败,因为kubernetes api服务器集群IP无法访问 - [Errno 113]主机无法访问',)