Kubernetes 服务网络

Kubernetes services networking

我一直在尝试让 spark 在我本地机器上的 kubernetes 上运行。 但是,我在尝试了解服务网络的工作原理时遇到了问题。

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

然后我将启动位于 kubernetes github 存储库示例中的 spark。

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

什么有效:

什么不起作用:

详情:

我如何启动容器:

sudo docker 运行 \ --net=主机\ -d kubernetes/etcd:2.0.5.1 \ /usr/local/bin/etcd\ --addr=$(主机名-i):4001 \ --绑定地址=0.0.0.0:4001 \ --data-dir=/var/etcd/data

sudo docker 运行 \ --volume=/:/rootfs:ro \ --volume=/sys:/sys:ro \ --volume=/dev:/dev\ --volume=/var/lib/docker/:/var/lib/docker:ro \ --volume=/var/lib/kubelet/:/var/lib/kubelet:rw \ --volume=/var/run:/var/run:rw \ --net=主机\ --pid=主机\ --特权=真\ -d\ gcr.io/google_containers/hyperkube:v1.2.0 \ /hyperkube kubelet --containerized --hostname-override="127.0.0.1" --address="0.0.0.0" --api-servers=http://localhost:8080 --config=/etc/kubernetes/manifests --cluster-dns=10.7.64.184 --cluster-domain=kubernetes.local

sudo docker 运行 -d --net=host --privileged gcr.io/google-containers/hyperkube:v1.2.0 /hyperkube proxy --master=http://127.0.0.1:8080 - -v=2 --cluster-dns=10.7.64.184 --cluster-domain=kubernetes.local --cloud-provider=""

sudo docker 运行 -d --net=host --restart=always \ gcr.io/google_containers/kube2sky:1.11 \ -v=10 -logtostderr=true -domain=kubernetes.local \ -etcd-server="http://127.0.0.1:4001"

sudo docker 运行 -d --net=host --restart=always \ -e ETCD_MACHINES="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_containers/skydns:2015-03-11-001

谢谢!

我发现问题出在哪里,代理不是 运行,因为 --cluster-dns 和 --cluster-domain 不是代理的参数。现在 iptables 已创建,spark worker 可以连接到 spark-master 的服务 ip。