Networking Kubernetes服务网络

Networking Kubernetes服务网络,networking,kubernetes,Networking,Kubernetes,我一直想让spark在我本地的机器上处理kubernetes。 然而,我在试图理解服务网络是如何工作的时候遇到了一个问题 我在笔记本电脑的容器中运行kubernetes: Etcd 2.0.5.1 Kubelet 1.1.2 代理1.1.2 SkyDns 2015-03-11-001 Sky2kube 1.11 然后我启动spark,它位于kubernetes github repo的示例中 kubectl create-f kubernetes/examples/spark/spark-m

我一直想让spark在我本地的机器上处理kubernetes。 然而,我在试图理解服务网络是如何工作的时候遇到了一个问题

我在笔记本电脑的容器中运行kubernetes:

  • Etcd 2.0.5.1
  • Kubelet 1.1.2
  • 代理1.1.2
  • SkyDns 2015-03-11-001
  • Sky2kube 1.11
然后我启动spark,它位于kubernetes github repo的示例中

kubectl create-f kubernetes/examples/spark/spark-master-controller.yaml kubectl create-f kubernetes/examples/spark/spark-master-service.yaml kubectl create-f kubernetes/examples/spark/spark webui.yaml
kubectl create-f kubernetes/examples/spark/spark-worker-controller.yaml kubectl create-f kubernetes/examples/spark/zeppelin-controller.yaml kubectl create-f kubernetes/examples/spark/zeppelin-service.yaml

我的本地网络:10.7.64.0/24 我的docker网络:172.17.0.1/16

工作原理:

  • Spark master启动,我可以连接到webUI
  • Spark worker尝试为Spark master执行dns查询,但失败 成功的(返回主机的正确服务ip)
什么不起作用:

  • Spark worker无法连接到服务ip。没有去的路 此主机不在该容器中,也不在本地计算机(笔记本电脑)上。阿尔索 我看到iptables中没有发生任何事情。它试图连接到某个地方 在10.0.0.0/8网络中,我也没有任何路由。可以 有人透露了这件事吗
详情:

如何启动容器:

sudo docker跑步\ --网络=主机\ -d kubernetes/etcd:2.0.5.1\ /usr/local/bin/etcd\ --地址=$(主机名-i):4001\ --绑定地址=0.0.0.0:4001\ --数据目录=/var/etcd/data

sudo docker跑步\ --卷=/:/rootfs:ro\ --卷=/sys:/sys:ro\ --卷=/dev:/dev\ --卷=/var/lib/docker/:/var/lib/docker:ro\ --卷=/var/lib/kubelet/:/var/lib/kubelet:rw\ --卷=/var/run:/var/run:rw\ --网络=主机\ --pid=主机\ --特权=真\ -d\ gcr.io/google_容器/hyperkube:v1.2.0\ /hyperkube-kubelet--容器化--主机名覆盖=“127.0.0.1”--地址=“0.0.0.0”--api服务器=--config=/etc/kubernetes/manifests--群集dns=10.7.64.184--群集域=kubernetes.local

sudo docker run-d--net=host--privileged gcr.io/google containers/hyperkube:v1.2.0/hyperkube proxy--master=--v=2--cluster dns=10.7.64.184--cluster domain=kubernetes.local--cloud provider=“”

sudo docker run-d--net=host--restart=always\ gcr.io/google_containers/kube2sky:1.11\ -v=10-logtostderr=true-domain=kubernetes.local\ -etcd服务器=”http://127.0.0.1:4001"

sudo docker run-d--net=host--restart=always\ -e ETCD_机器=”http://127.0.0.1:4001" \ -e SKYDNS_DOMAIN=“kubernetes.local”\ -e SKYDNS_ADDR=“10.7.64.184:53”\ -e SKYDNS_NAMESERVERS=“8.8.8.8:53,8.8.4.4:53”\ gcr.io/google_容器/skydns:2015-03-11-001


谢谢

我发现了问题所在,代理没有运行,因为--cluster dns和--cluster domain不是代理的参数。现在创建了iptables,spark workers能够连接到spark master的服务ip。

我发现了问题所在,代理没有运行,因为--cluster dns和--cluster domain不是代理的参数。现在创建了iptables,spark workers能够连接到spark master的服务ip