mirror of https://github.com/k3s-io/k3s
Adds support for v4/v6 loopback dns bind address.
parent
b1e2d7a9dc
commit
d4f2fbc39a
|
@ -51,13 +51,27 @@ func EnsureDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interf
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dnsip, err := getDNSIP(client)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
var dnsBindAddr string
|
||||||
|
if dnsip.To16() != nil {
|
||||||
|
dnsBindAddr = "::1"
|
||||||
|
} else {
|
||||||
|
dnsBindAddr = "127.0.0.1"
|
||||||
|
}
|
||||||
|
|
||||||
// Get the YAML manifest conditionally based on the k8s version
|
// Get the YAML manifest conditionally based on the k8s version
|
||||||
kubeDNSDeploymentBytes := GetKubeDNSManifest(k8sVersion)
|
kubeDNSDeploymentBytes := GetKubeDNSManifest(k8sVersion)
|
||||||
dnsDeploymentBytes, err := kubeadmutil.ParseTemplate(kubeDNSDeploymentBytes, struct{ ImageRepository, Arch, Version, DNSDomain, DNSProbeType, MasterTaintKey string }{
|
dnsDeploymentBytes, err := kubeadmutil.ParseTemplate(kubeDNSDeploymentBytes,
|
||||||
|
struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{
|
||||||
ImageRepository: cfg.ImageRepository,
|
ImageRepository: cfg.ImageRepository,
|
||||||
Arch: runtime.GOARCH,
|
Arch: runtime.GOARCH,
|
||||||
// Get the kube-dns version conditionally based on the k8s version
|
// Get the kube-dns version conditionally based on the k8s version
|
||||||
Version: GetKubeDNSVersion(k8sVersion),
|
Version: GetKubeDNSVersion(k8sVersion),
|
||||||
|
DNSBindAddr: dnsBindAddr,
|
||||||
DNSDomain: cfg.Networking.DNSDomain,
|
DNSDomain: cfg.Networking.DNSDomain,
|
||||||
DNSProbeType: GetKubeDNSProbeType(k8sVersion),
|
DNSProbeType: GetKubeDNSProbeType(k8sVersion),
|
||||||
MasterTaintKey: kubeadmconstants.LabelNodeRoleMaster,
|
MasterTaintKey: kubeadmconstants.LabelNodeRoleMaster,
|
||||||
|
@ -66,11 +80,6 @@ func EnsureDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interf
|
||||||
return fmt.Errorf("error when parsing kube-dns deployment template: %v", err)
|
return fmt.Errorf("error when parsing kube-dns deployment template: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
dnsip, err := getDNSIP(client)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
dnsServiceBytes, err := kubeadmutil.ParseTemplate(KubeDNSService, struct{ DNSIP string }{
|
dnsServiceBytes, err := kubeadmutil.ParseTemplate(KubeDNSService, struct{ DNSIP string }{
|
||||||
DNSIP: dnsip.String(),
|
DNSIP: dnsip.String(),
|
||||||
})
|
})
|
||||||
|
|
|
@ -91,10 +91,11 @@ func TestCompileManifests(t *testing.T) {
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
manifest: v180AndAboveKubeDNSDeployment,
|
manifest: v180AndAboveKubeDNSDeployment,
|
||||||
data: struct{ ImageRepository, Arch, Version, DNSDomain, DNSProbeType, MasterTaintKey string }{
|
data: struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{
|
||||||
ImageRepository: "foo",
|
ImageRepository: "foo",
|
||||||
Arch: "foo",
|
Arch: "foo",
|
||||||
Version: "foo",
|
Version: "foo",
|
||||||
|
DNSBindAddr: "foo",
|
||||||
DNSDomain: "foo",
|
DNSDomain: "foo",
|
||||||
DNSProbeType: "foo",
|
DNSProbeType: "foo",
|
||||||
MasterTaintKey: "foo",
|
MasterTaintKey: "foo",
|
||||||
|
|
|
@ -123,9 +123,9 @@ spec:
|
||||||
- --cache-size=1000
|
- --cache-size=1000
|
||||||
- --no-negcache
|
- --no-negcache
|
||||||
- --log-facility=-
|
- --log-facility=-
|
||||||
- --server=/{{ .DNSDomain }}/127.0.0.1#10053
|
- --server=/{{ .DNSDomain }}/{{ .DNSBindAddr }}#10053
|
||||||
- --server=/in-addr.arpa/127.0.0.1#10053
|
- --server=/in-addr.arpa/{{ .DNSBindAddr }}#10053
|
||||||
- --server=/ip6.arpa/127.0.0.1#10053
|
- --server=/ip6.arpa/{{ .DNSBindAddr }}#10053
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 53
|
- containerPort: 53
|
||||||
name: dns
|
name: dns
|
||||||
|
@ -156,8 +156,8 @@ spec:
|
||||||
args:
|
args:
|
||||||
- --v=2
|
- --v=2
|
||||||
- --logtostderr
|
- --logtostderr
|
||||||
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
- --probe=kubedns,{{ .DNSBindAddr }}:10053,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
||||||
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
- --probe=dnsmasq,{{ .DNSBindAddr }}:53,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 10054
|
- containerPort: 10054
|
||||||
name: metrics
|
name: metrics
|
||||||
|
|
Loading…
Reference in New Issue