Kubernetes服务网络

时间:2015-12-12 11:12:19

标签: networking kubernetes

我一直在尝试在我的本地机器上使用kubernetes。 但是我试图了解服务网络如何运作时遇到了问题。

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

  • Etcd 2.0.5.1
  • Kubelet 1.1.2
  • Proxy 1.1.2
  • SkyDns 2015-03-11-001
  • Sky2kube 1.11

然后我发起了火花,它位于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 我的码头网络:172.17.0.1/16

什么有效:

  • Spark master启动,我可以连接到webUI。
  • Spark工作者尝试对spark-master执行dns查询 成功的。 (它返回主服务器的正确服务ip)

什么行不通:

  • Spark worker无法连接到服务ip。没有路线 这个主机也不在本地机器(笔记本电脑)上。也 我看到iptables没有发生任何事情。它试图连接到某个地方 在10.0.0.0/8网络中我也没有任何路由。能够 有人对此有所了解吗?

详细说明:

我如何启动容器:

sudo docker run \         --net =主机\             -d kubernetes / etcd:2.0.5.1 \             / usr / local / bin / etcd \                     --addr = $(hostname -i):4001 \                         --bind-addr = 0.0.0.0:4001 \                             --data-dir = / var / etcd / data

sudo docker run \     --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 =主机\     --privileged = true \     -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 run -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 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_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

谢谢!

1 个答案:

答案 0 :(得分:0)

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