diff --git a/cmd/kubeadm/app/phases/addons/dns/dns.go b/cmd/kubeadm/app/phases/addons/dns/dns.go index b1866e584f..072359a8e5 100644 --- a/cmd/kubeadm/app/phases/addons/dns/dns.go +++ b/cmd/kubeadm/app/phases/addons/dns/dns.go @@ -63,22 +63,25 @@ func kubeDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interfac return err } - var dnsBindAddr string + var dnsBindAddr, dnsProbeAddr string if dnsip.To4() == nil { dnsBindAddr = "::1" + dnsProbeAddr = "[" + dnsBindAddr + "]" } else { dnsBindAddr = "127.0.0.1" + dnsProbeAddr = dnsBindAddr } // Get the YAML manifest conditionally based on the k8s version kubeDNSDeploymentBytes := GetKubeDNSManifest(k8sVersion) dnsDeploymentBytes, err := kubeadmutil.ParseTemplate(kubeDNSDeploymentBytes, - struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{ + struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSProbeAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{ ImageRepository: cfg.ImageRepository, Arch: runtime.GOARCH, // Get the kube-dns version conditionally based on the k8s version Version: GetDNSVersion(k8sVersion, kubeadmconstants.KubeDNS), DNSBindAddr: dnsBindAddr, + DNSProbeAddr: dnsProbeAddr, DNSDomain: cfg.Networking.DNSDomain, DNSProbeType: GetKubeDNSProbeType(k8sVersion), MasterTaintKey: kubeadmconstants.LabelNodeRoleMaster, diff --git a/cmd/kubeadm/app/phases/addons/dns/dns_test.go b/cmd/kubeadm/app/phases/addons/dns/dns_test.go index 40c0043436..55967aae3d 100644 --- a/cmd/kubeadm/app/phases/addons/dns/dns_test.go +++ b/cmd/kubeadm/app/phases/addons/dns/dns_test.go @@ -92,11 +92,12 @@ func TestCompileManifests(t *testing.T) { }{ { manifest: v180AndAboveKubeDNSDeployment, - data: struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{ + data: struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSProbeAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{ ImageRepository: "foo", Arch: "foo", Version: "foo", DNSBindAddr: "foo", + DNSProbeAddr: "foo", DNSDomain: "foo", DNSProbeType: "foo", MasterTaintKey: "foo", diff --git a/cmd/kubeadm/app/phases/addons/dns/manifests.go b/cmd/kubeadm/app/phases/addons/dns/manifests.go index 4875ddb900..cbf434706d 100644 --- a/cmd/kubeadm/app/phases/addons/dns/manifests.go +++ b/cmd/kubeadm/app/phases/addons/dns/manifests.go @@ -156,8 +156,8 @@ spec: args: - --v=2 - --logtostderr - - --probe=kubedns,{{ .DNSBindAddr }}:10053,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }} - - --probe=dnsmasq,{{ .DNSBindAddr }}:53,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }} + - --probe=kubedns,{{ .DNSProbeAddr }}:10053,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }} + - --probe=dnsmasq,{{ .DNSProbeAddr }}:53,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }} ports: - containerPort: 10054 name: metrics