Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
3e4b9fad
Commit
3e4b9fad
authored
Aug 26, 2017
by
André Martins
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
addons/dns: changing probes for SRV record type
Signed-off-by:
André Martins
<
aanm90@gmail.com
>
parent
70960a5e
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
104 additions
and
28 deletions
+104
-28
kube-dns.yaml.base
cluster/addons/dns/kube-dns.yaml.base
+5
-5
kube-dns.yaml.in
cluster/addons/dns/kube-dns.yaml.in
+5
-5
kube-dns.yaml.sed
cluster/addons/dns/kube-dns.yaml.sed
+5
-5
dns.go
cmd/kubeadm/app/phases/addons/dns/dns.go
+2
-1
dns_test.go
cmd/kubeadm/app/phases/addons/dns/dns_test.go
+3
-2
manifests.go
cmd/kubeadm/app/phases/addons/dns/manifests.go
+4
-4
versions.go
cmd/kubeadm/app/phases/addons/dns/versions.go
+24
-5
versions_test.go
cmd/kubeadm/app/phases/addons/dns/versions_test.go
+55
-0
compute_test.go
cmd/kubeadm/app/phases/upgrade/compute_test.go
+1
-1
No files found.
cluster/addons/dns/kube-dns.yaml.base
View file @
3e4b9fad
...
...
@@ -94,7 +94,7 @@ spec:
optional: true
containers:
- name: kubedns
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.
5
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.
6
resources:
# TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in
...
...
@@ -145,7 +145,7 @@ spec:
- name: kube-dns-config
mountPath: /kube-dns-config
- name: dnsmasq
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.
5
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.
6
livenessProbe:
httpGet:
path: /healthcheck/dnsmasq
...
...
@@ -184,7 +184,7 @@ spec:
- name: kube-dns-config
mountPath: /etc/k8s/dns/dnsmasq-nanny
- name: sidecar
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.
5
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.
6
livenessProbe:
httpGet:
path: /metrics
...
...
@@ -197,8 +197,8 @@ spec:
args:
- --v=2
- --logtostderr
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,
A
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,
A
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,
SRV
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.__PILLAR__DNS__DOMAIN__,5,
SRV
ports:
- containerPort: 10054
name: metrics
...
...
cluster/addons/dns/kube-dns.yaml.in
View file @
3e4b9fad
...
...
@@ -94,7 +94,7 @@ spec:
optional: true
containers:
- name: kubedns
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.
5
image: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.
6
resources:
# TODO: Set memory limits when we've profiled the container for large
# clusters, then set request = limit to keep this container in
...
...
@@ -145,7 +145,7 @@ spec:
- name: kube-dns-config
mountPath: /kube-dns-config
- name: dnsmasq
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.
5
image: gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.
6
livenessProbe:
httpGet:
path: /healthcheck/dnsmasq
...
...
@@ -184,7 +184,7 @@ spec:
- name: kube-dns-config
mountPath: /etc/k8s/dns/dnsmasq-nanny
- name: sidecar
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.
5
image: gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.
6
livenessProbe:
httpGet:
path: /metrics
...
...
@@ -197,8 +197,8 @@ spec:
args:
- --v=2
- --logtostderr
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,
A
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,
A
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,
SRV
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ pillar['dns_domain'] }},5,
SRV
ports:
- containerPort: 10054
name: metrics
...
...
cluster/addons/dns/kube-dns.yaml.sed
View file @
3e4b9fad
...
...
@@ -94,7 +94,7 @@ spec:
optional: true
containers:
-
na
me: kubedns
i
mage: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.
5
i
mage: gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.
6
re
s
o
urces:
# TODO: Set mem
o
ry limits when we've pr
o
f
i
led the container for large
# clusters, then set request = limit to keep this container in
...
...
@@ -145,7 +145,7 @@ spec:
- name
:
kube-dns-config
mountPath
:
/kube-
dns
-
config
-
name: dnsmasq
image: gcr.io/google_containers/k8s
-
dns
-
dnsmasq
-
nanny
-
a
md64:1.14.
5
image: gcr.io/google_containers/k8s
-
dns
-
dnsmasq
-
nanny
-
a
md64:1.14.
6
li
venessProbe:
h
tt
pG
et
:
path:
/
healthcheck
/
dns
m
asq
...
...
@@ -184,7 +184,7 @@ spec:
- name
:
kube-dns-config
mountPath
:
/
etc
/
k8
s
/
dns
/
dnsmasq-nanny
- name: sidecar
image: gcr.io
/
g
oo
gl
e_
c
ontainers/k8s-dns-sidecar-amd64:1.14.
5
image: gcr.io
/
g
oo
gl
e_
c
ontainers/k8s-dns-sidecar-amd64:1.14.
6
li
venessProbe:
h
tt
pG
et
:
path:
/metr
i
cs
...
...
@@ -197,8 +197,8 @@ spec:
a
rgs:
-
--v
=
2
-
--
l
o
g
to
s
t
derr
- --probe=kubedns,127
.
0
.
0
.
1:10053,kuberne
t
es.defaul
t
.
s
v
c
.$
DNS_DOMAIN,5,
A
- --probe=dnsmasq,127
.
0
.
0
.
1:53,kubernetes
.
default
.
s
v
c.$DNS_DOMAIN,5,
A
- --probe=kubedns,127
.
0
.
0
.
1:10053,kuberne
t
es.defaul
t
.
s
v
c
.$
DNS_DOMAIN,5,
SRV
- --probe=dnsmasq,127
.
0
.
0
.
1:53,kubernetes
.
default
.
s
v
c.$DNS_DOMAIN,5,
SRV
ports:
- containerPort: 10054
name: metrics
...
...
cmd/kubeadm/app/phases/addons/dns/dns.go
View file @
3e4b9fad
...
...
@@ -53,12 +53,13 @@ func EnsureDNSAddon(cfg *kubeadmapi.MasterConfiguration, client clientset.Interf
// Get the YAML manifest conditionally based on the k8s version
kubeDNSDeploymentBytes
:=
GetKubeDNSManifest
(
k8sVersion
)
dnsDeploymentBytes
,
err
:=
kubeadmutil
.
ParseTemplate
(
kubeDNSDeploymentBytes
,
struct
{
ImageRepository
,
Arch
,
Version
,
DNSDomain
,
MasterTaintKey
string
}{
dnsDeploymentBytes
,
err
:=
kubeadmutil
.
ParseTemplate
(
kubeDNSDeploymentBytes
,
struct
{
ImageRepository
,
Arch
,
Version
,
DNSDomain
,
DNSProbeType
,
MasterTaintKey
string
}{
ImageRepository
:
cfg
.
ImageRepository
,
Arch
:
runtime
.
GOARCH
,
// Get the kube-dns version conditionally based on the k8s version
Version
:
GetKubeDNSVersion
(
k8sVersion
),
DNSDomain
:
cfg
.
Networking
.
DNSDomain
,
DNSProbeType
:
GetKubeDNSProbeType
(
k8sVersion
),
MasterTaintKey
:
kubeadmconstants
.
LabelNodeRoleMaster
,
})
if
err
!=
nil
{
...
...
cmd/kubeadm/app/phases/addons/dns/dns_test.go
View file @
3e4b9fad
...
...
@@ -90,12 +90,13 @@ func TestCompileManifests(t *testing.T) {
expected
bool
}{
{
manifest
:
v1
7
0AndAboveKubeDNSDeployment
,
data
:
struct
{
ImageRepository
,
Arch
,
Version
,
DNSDomain
,
MasterTaintKey
string
}{
manifest
:
v1
8
0AndAboveKubeDNSDeployment
,
data
:
struct
{
ImageRepository
,
Arch
,
Version
,
DNSDomain
,
DNSProbeType
,
MasterTaintKey
string
}{
ImageRepository
:
"foo"
,
Arch
:
"foo"
,
Version
:
"foo"
,
DNSDomain
:
"foo"
,
DNSProbeType
:
"foo"
,
MasterTaintKey
:
"foo"
,
},
expected
:
true
,
...
...
cmd/kubeadm/app/phases/addons/dns/manifests.go
View file @
3e4b9fad
...
...
@@ -17,8 +17,8 @@ limitations under the License.
package
dns
const
(
// v1
7
0AndAboveKubeDNSDeployment is the kube-dns Deployment manifest for the kube-dns manifest for v1.7+
v1
7
0AndAboveKubeDNSDeployment
=
`
// v1
8
0AndAboveKubeDNSDeployment is the kube-dns Deployment manifest for the kube-dns manifest for v1.7+
v1
8
0AndAboveKubeDNSDeployment
=
`
apiVersion: apps/v1beta2
kind: Deployment
metadata:
...
...
@@ -156,8 +156,8 @@ spec:
args:
- --v=2
- --logtostderr
- --probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{ .DNSDomain }},5,
A
- --probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{ .DNSDomain }},5,
A
- --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 }}
ports:
- containerPort: 10054
name: metrics
...
...
cmd/kubeadm/app/phases/addons/dns/versions.go
View file @
3e4b9fad
...
...
@@ -21,20 +21,39 @@ import (
)
const
(
kubeDNSv170AndAboveVersion
=
"1.14.5"
kubeDNSv180AndAboveVersion
=
"1.14.5"
kubeDNSv190AndAboveVersion
=
"1.14.6"
kubeDNSProbeSRV
=
"SRV"
kubeDNSProbeA
=
"A"
)
// GetKubeDNSVersion returns the right kube-dns version for a specific k8s version
func
GetKubeDNSVersion
(
kubeVersion
*
version
.
Version
)
string
{
// v1.7.0+ uses 1.14.5, just return that here
// v1.8.0+ uses 1.14.5
// v1.9.0+ uses 1.14.6
// In the future when the kube-dns version is bumped at HEAD; add conditional logic to return the right versions
// Also, the version might be bumped for different k8s releases on the same branch
if
kubeVersion
.
Major
()
==
1
&&
kubeVersion
.
Minor
()
>=
9
{
return
kubeDNSv190AndAboveVersion
}
return
kubeDNSv180AndAboveVersion
}
// GetKubeDNSProbeType returns the right kube-dns probe for a specific k8s version
func
GetKubeDNSProbeType
(
kubeVersion
*
version
.
Version
)
string
{
// v1.8.0+ uses type A, just return that here
// In the future when the kube-dns version is bumped at HEAD; add conditional logic to return the right versions
// Also, the version might be bumped for different k8s releases on the same branch
return
kubeDNSv170AndAboveVersion
if
kubeVersion
.
Major
()
==
1
&&
kubeVersion
.
Minor
()
>=
9
{
return
kubeDNSProbeSRV
}
return
kubeDNSProbeA
}
// GetKubeDNSManifest returns the right kube-dns YAML manifest for a specific k8s version
func
GetKubeDNSManifest
(
kubeVersion
*
version
.
Version
)
string
{
// v1.
7
.0+ has only one known YAML manifest spec, just return that here
// v1.
8
.0+ has only one known YAML manifest spec, just return that here
// In the future when the kube-dns version is bumped at HEAD; add conditional logic to return the right manifest
return
v1
7
0AndAboveKubeDNSDeployment
return
v1
8
0AndAboveKubeDNSDeployment
}
cmd/kubeadm/app/phases/addons/dns/versions_test.go
View file @
3e4b9fad
...
...
@@ -50,6 +50,10 @@ func TestGetKubeDNSVersion(t *testing.T) {
k8sVersion
:
"v1.8.0"
,
expected
:
"1.14.5"
,
},
{
k8sVersion
:
"v1.9.0"
,
expected
:
"1.14.6"
,
},
}
for
_
,
rt
:=
range
tests
{
...
...
@@ -68,3 +72,54 @@ func TestGetKubeDNSVersion(t *testing.T) {
}
}
}
func
TestGetKubeDNSProbeType
(
t
*
testing
.
T
)
{
var
tests
=
[]
struct
{
k8sVersion
,
expected
string
}{
{
k8sVersion
:
"v1.7.0"
,
expected
:
"A"
,
},
{
k8sVersion
:
"v1.7.1"
,
expected
:
"A"
,
},
{
k8sVersion
:
"v1.7.2"
,
expected
:
"A"
,
},
{
k8sVersion
:
"v1.7.3"
,
expected
:
"A"
,
},
{
k8sVersion
:
"v1.8.0-alpha.2"
,
expected
:
"A"
,
},
{
k8sVersion
:
"v1.8.0"
,
expected
:
"A"
,
},
{
k8sVersion
:
"v1.9.0"
,
expected
:
"SRV"
,
},
}
for
_
,
rt
:=
range
tests
{
k8sVersion
,
err
:=
version
.
ParseSemantic
(
rt
.
k8sVersion
)
if
err
!=
nil
{
t
.
Fatalf
(
"couldn't parse kubernetes version %q: %v"
,
rt
.
k8sVersion
,
err
)
}
actualDNSProbeType
:=
GetKubeDNSProbeType
(
k8sVersion
)
if
actualDNSProbeType
!=
rt
.
expected
{
t
.
Errorf
(
"failed GetKubeDNSProbeType:
\n\t
expected: %s
\n\t
actual: %s"
,
rt
.
expected
,
actualDNSProbeType
,
)
}
}
}
cmd/kubeadm/app/phases/upgrade/compute_test.go
View file @
3e4b9fad
...
...
@@ -399,7 +399,7 @@ func TestGetAvailableUpgrades(t *testing.T) {
After
:
ClusterState
{
KubeVersion
:
"v1.9.0-alpha.1"
,
KubeadmVersion
:
"v1.9.0-alpha.1"
,
DNSVersion
:
"1.14.
5
"
,
DNSVersion
:
"1.14.
6
"
,
},
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment