【发布时间】:2017-05-04 04:52:51
【问题描述】:
我最近建立了一个带有 Docker 和 Flannel 的多机 Kubernetes 集群。我在子网172.16.0.0/24 上设置了Flannel,这样主机A 上分配IP 为172.16.78.2 的容器可以ping 主机B 上分配IP 为172.16.74.2 的容器。
我已经设置了 Kubernetes 及其所有各种组件(kubelet、kube-proxykube-apiserver、kube-scheduler、kube-controller-manager),我可以成功地在集群周围启动部署和 Pod。
问题
我在集群上部署了一个 Redis 服务和我的 webapp pod。在我的 webapp pod 上,设置了环境变量 REDIS_SERVICE_HOST 和 REDIS_SERVICE_PORT,但 REDIS_SERVICE_HOST 是 172.16.0.0/16 子网上的随机 IP。需要明确的是,如果我运行 ifconfig 并在 Redis 容器中获取 eth0 的 IP 地址,我可以从我的 webapp pod ping 通它。但不是分配给REDIS_SERVICE_HOST的IP地址。
我很确定这是一个配置问题,但这里是我为每个服务设置的一些标志:
kube-proxy 参数
--cluster-cidr 172.16.0.0/16
kube-apiserver 参数
--service-cluster-ip-range=172.16.0.0/16
kube-controller-manager 参数
--cluster-cidr=172.16.0.0/16--service-cluster-ip-range=172.16.0.0/16
我不太确定上述标志如何与 Flannel 结合使用,但我尝试了很多东西,但都无法正常工作。关于这些事情如何工作的一些解释将是一个很大的帮助。谢谢。
【问题讨论】:
标签: kubernetes flannel