SkyDNS in Daemon Sets and local DNS resolution

We are thinking about running SkyDNS on every Kubernetes host with Daemon Sets or static pods (via the Kubernetes manifest). We want to make every container use the local SkyDNS, deliberately bypassing Kubernetes cluster IP / kube-proxy routing. One way to achieve this would be to map DNS port 53 from the SkyDNS pod to each host and force each container to resolve on the host. Probably by somehow passing the docker bridge IP to the kubelet with –cluster-dns in a systemd unit.

Are there better alternatives to achieve the same?

  • Jenkins + Docker: How to control docker user when using Image.inside command
  • Error response from daemon: Unexpected status code 404
  • Having two images of docker for production and development
  • my docker build just keeps closing
  • How can I run docker-compose up as shell script by Jenkins
  • Docker Image can't execute command
  • Thanks,

  • containerized nginx log rotation with logrotate
  • 'su' command in Docker returns 'must be run from terminal'
  • Php development inside docker on ubuntu 16.04 for cpanel shared hosting with some addon domain on it
  • Smooth solution for using docker with chef
  • What is the difference between “docker logs” and “docker attach”?
  • How to increase maximum Docker Network on one server?
  • One Solution collect form web for “SkyDNS in Daemon Sets and local DNS resolution”

    It sounds like you’re on the right track. I’d pass the localhost address to the kubelet’s --cluster-dns flag and promote the skydns container’s UDP and TCP ports to be hostPorts.

    That’ll require the least configuration and the least additional privilege for the DNS pod.

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