Networking and DNS in Kubernetes local cluster with Docker

I have downloaded Kubernetes binaries from release tag in Github.
I placed the binaries in my path (i.e. kubectl)

I followed this guide to start up a simple local cluster with Docker containers:
http://kubernetes.io/v1.0/docs/getting-started-guides/docker.html

  • docker run with -p and a single port (instead of mapping)
  • Docker port not visible
  • Docker on CentOS with bridge to LAN network
  • kubernetes volume hostPath
  • docker images access issue
  • Docker container vs Java Virtual Machine
  • Now I can contact Kubernetes API from 127.0.0.1:8080 and I got Nginx pod running and service exposed.
    I have a ‘docker0’ interface with range 172.17.42.1/16
    Doing ‘docker inspect’ to the containers returns me IP from that range.
    Doing ‘kubectl get services’ returns me IPs from range 10.0.0.0/24
    I can reach Nginx using the IP from 10.0.0.x and 172.16.x.x

    How is the networking set up?
    Why ‘nginx’ service is not showed up in /api/v1/services?

    Also I want to set up monitoring with Heapster+InfluxDB+Grafana.
    Heapster will try to connect to InfluxDB using a hostname that fails to resolve.
    So I searched how to bring up DNS server for Kubernetes.
    I modified a little the files yaml under kubernetes/cluster/addons/dns
    skydns-rc.yaml require the Kubernetes Master IP to make calls to the API to discover services.

    What is the Kubernetes Master IP?
    From the docker host Kubernetes Master IP is 127.0.0.1 but it is not reachable from inside the pods (afaik 127.0.0.1 inside the pods is the pod itself)
    It isnt 10.0.0.1 because its not working from the docker host neither from the kube2sky container.

    I cant find any help in the documentation or Github as it is very focused for cloud and GCE.

    Thanks for your help!

  • How to edit files in docker for scrapinghub portia
  • docker push to a private repository
  • Setting the docker server IP as an environment variable using the gradle-docker-plugin
  • Route over docker bridge network to docker overlay network
  • Docker Volumes: Docker Volume does not get mounted correctly on Amazon Linux
  • Docker: how to provide secret information to the container?
  • One Solution collect form web for “Networking and DNS in Kubernetes local cluster with Docker”

    The DNS pod can use the KUBERNETES_SERVICE_HOST environment variable or the IP of the machine you’re really on (rather than 127.0.0.1) if you don’t have service accounts configured (probably don’t)

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.