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
|
||||
}
|
||||
|
||||
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
|
||||
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,
|
||||
Arch: runtime.GOARCH,
|
||||
// Get the kube-dns version conditionally based on the k8s version
|
||||
Version: GetKubeDNSVersion(k8sVersion),
|
||||
DNSBindAddr: dnsBindAddr,
|
||||
DNSDomain: cfg.Networking.DNSDomain,
|
||||
DNSProbeType: GetKubeDNSProbeType(k8sVersion),
|
||||
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)
|
||||
}
|
||||
|
||||
dnsip, err := getDNSIP(client)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
dnsServiceBytes, err := kubeadmutil.ParseTemplate(KubeDNSService, struct{ DNSIP string }{
|
||||
DNSIP: dnsip.String(),
|
||||
})
|
||||
|
|
|
@ -91,10 +91,11 @@ func TestCompileManifests(t *testing.T) {
|
|||
}{
|
||||
{
|
||||
manifest: v180AndAboveKubeDNSDeployment,
|
||||
data: struct{ ImageRepository, Arch, Version, DNSDomain, DNSProbeType, MasterTaintKey string }{
|
||||
data: struct{ ImageRepository, Arch, Version, DNSBindAddr, DNSDomain, DNSProbeType, MasterTaintKey string }{
|
||||
ImageRepository: "foo",
|
||||
Arch: "foo",
|
||||
Version: "foo",
|
||||
DNSBindAddr: "foo",
|
||||
DNSDomain: "foo",
|
||||
DNSProbeType: "foo",
|
||||
MasterTaintKey: "foo",
|
||||
|
|
|
@ -123,9 +123,9 @@ spec:
|
|||
- --cache-size=1000
|
||||
- --no-negcache
|
||||
- --log-facility=-
|
||||
- --server=/{{ .DNSDomain }}/127.0.0.1#10053
|
||||
- --server=/in-addr.arpa/127.0.0.1#10053
|
||||
- --server=/ip6.arpa/127.0.0.1#10053
|
||||
- --server=/{{ .DNSDomain }}/{{ .DNSBindAddr }}#10053
|
||||
- --server=/in-addr.arpa/{{ .DNSBindAddr }}#10053
|
||||
- --server=/ip6.arpa/{{ .DNSBindAddr }}#10053
|
||||
ports:
|
||||
- containerPort: 53
|
||||
name: dns
|
||||
|
@ -156,8 +156,8 @@ spec:
|
|||
args:
|
||||
- --v=2
|
||||
- --logtostderr
|
||||
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
||||
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
||||
- --probe=kubedns,{{ .DNSBindAddr }}:10053,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
||||
- --probe=dnsmasq,{{ .DNSBindAddr }}:53,kubernetes.default.svc.{{ .DNSDomain }},5,{{ .DNSProbeType }}
|
||||
ports:
|
||||
- containerPort: 10054
|
||||
name: metrics
|
||||
|
|
Loading…
Reference in New Issue