From b629ab87141745df18854014f8e89bd6f01f5a25 Mon Sep 17 00:00:00 2001 From: Alan Grosskurth Date: Thu, 22 Sep 2016 00:36:52 -0700 Subject: [PATCH 1/2] kube-dns: Add --dns-bind-address flag Currently, kube-dns always binds to 0.0.0.0 when starting the SkyDNS server. Sometimes its useful to have it bind to a different address for testing. So add a new --dns-bind-address flag that can be used to configure this (default is 0.0.0.0). --- cmd/kube-dns/app/options/options.go | 3 +++ cmd/kube-dns/app/server.go | 14 ++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/cmd/kube-dns/app/options/options.go b/cmd/kube-dns/app/options/options.go index 3978b707a93..b00997ae6df 100644 --- a/cmd/kube-dns/app/options/options.go +++ b/cmd/kube-dns/app/options/options.go @@ -34,6 +34,7 @@ type KubeDNSConfig struct { KubeConfigFile string KubeMasterURL string HealthzPort int + DNSBindAddress string DNSPort int // Federations maps federation names to their registered domain names. Federations map[string]string @@ -45,6 +46,7 @@ func NewKubeDNSConfig() *KubeDNSConfig { KubeConfigFile: "", KubeMasterURL: "", HealthzPort: 8081, + DNSBindAddress: "0.0.0.0", DNSPort: 53, Federations: make(map[string]string), } @@ -143,6 +145,7 @@ func (s *KubeDNSConfig) AddFlags(fs *pflag.FlagSet) { fs.StringVar(&s.KubeConfigFile, "kubecfg-file", s.KubeConfigFile, "Location of kubecfg file for access to kubernetes master service; --kube-master-url overrides the URL part of this; if neither this nor --kube-master-url are provided, defaults to service account tokens") fs.Var(kubeMasterURLVar{&s.KubeMasterURL}, "kube-master-url", "URL to reach kubernetes master. Env variables in this flag will be expanded.") fs.IntVar(&s.HealthzPort, "healthz-port", s.HealthzPort, "port on which to serve a kube-dns HTTP readiness probe.") + fs.StringVar(&s.DNSBindAddress, "dns-bind-address", s.DNSBindAddress, "address on which to serve DNS requests.") fs.IntVar(&s.DNSPort, "dns-port", s.DNSPort, "port on which to serve DNS requests.") fs.Var(federationsVar{s.Federations}, "federations", "a comma separated list of the federation names and their corresponding domain names to which this cluster belongs. Example: \"myfederation1=example.com,myfederation2=example2.com,myfederation3=example.com\"") } diff --git a/cmd/kube-dns/app/server.go b/cmd/kube-dns/app/server.go index 4862eb268bd..a7f470bb2ae 100644 --- a/cmd/kube-dns/app/server.go +++ b/cmd/kube-dns/app/server.go @@ -39,10 +39,11 @@ import ( type KubeDNSServer struct { // DNS domain name. - domain string - healthzPort int - dnsPort int - kd *kdns.KubeDNS + domain string + healthzPort int + dnsBindAddress string + dnsPort int + kd *kdns.KubeDNS } func NewKubeDNSServerDefault(config *options.KubeDNSConfig) *KubeDNSServer { @@ -55,6 +56,7 @@ func NewKubeDNSServerDefault(config *options.KubeDNSConfig) *KubeDNSServer { glog.Fatalf("Failed to create a kubernetes client: %v", err) } ks.healthzPort = config.HealthzPort + ks.dnsBindAddress = config.DNSBindAddress ks.dnsPort = config.DNSPort ks.kd, err = kdns.NewKubeDNS(kubeClient, config.ClusterDomain, config.Federations) if err != nil { @@ -135,8 +137,8 @@ func setupSignalHandlers() { } func (d *KubeDNSServer) startSkyDNSServer() { - glog.Infof("Starting SkyDNS server. Listening on port:%d", d.dnsPort) - skydnsConfig := &server.Config{Domain: d.domain, DnsAddr: fmt.Sprintf("0.0.0.0:%d", d.dnsPort)} + glog.Infof("Starting SkyDNS server. Listening on %s:%d", d.dnsBindAddress, d.dnsPort) + skydnsConfig := &server.Config{Domain: d.domain, DnsAddr: fmt.Sprintf("%s:%d", d.dnsBindAddress, d.dnsPort)} server.SetDefaults(skydnsConfig) s := server.New(d.kd, skydnsConfig) if err := metrics.Metrics(); err != nil { From 112a3f3fafe43b5936551f503b49422835c03f23 Mon Sep 17 00:00:00 2001 From: Alan Grosskurth Date: Fri, 23 Sep 2016 22:11:32 -0700 Subject: [PATCH 2/2] known-flags.txt: Add --dns-bind-address This is a newly-added kube-dns flag. --- hack/verify-flags/known-flags.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/hack/verify-flags/known-flags.txt b/hack/verify-flags/known-flags.txt index a703e4d5316..54f25ca3425 100644 --- a/hack/verify-flags/known-flags.txt +++ b/hack/verify-flags/known-flags.txt @@ -118,6 +118,7 @@ deserialization-cache-size dest-file disable-filter disable-kubenet +dns-bind-address dns-port dns-provider dns-provider-config