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
bbb1d45d
Commit
bbb1d45d
authored
Apr 16, 2018
by
Krzysztof Siedlecki
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding kube dns to kubemark
parent
2bdca2b7
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
237 additions
and
2 deletions
+237
-2
config-default.sh
cluster/kubemark/gce/config-default.sh
+4
-0
kube_dns_template.yaml
test/kubemark/resources/kube_dns_template.yaml
+188
-0
kube-dns-binding.yaml
...fests/addons/kubemark-rbac-bindings/kube-dns-binding.yaml
+15
-0
start-kubemark.sh
test/kubemark/start-kubemark.sh
+30
-2
No files found.
cluster/kubemark/gce/config-default.sh
View file @
bbb1d45d
...
@@ -117,6 +117,10 @@ if [[ "${ENABLE_KUBEMARK_CLUSTER_AUTOSCALER}" == "true" ]]; then
...
@@ -117,6 +117,10 @@ if [[ "${ENABLE_KUBEMARK_CLUSTER_AUTOSCALER}" == "true" ]]; then
fi
fi
fi
fi
#Optional: Enable kube dns.
ENABLE_KUBEMARK_KUBE_DNS
=
"
${
ENABLE_KUBEMARK_KUBE_DNS
:-
true
}
"
KUBE_DNS_DOMAIN
=
"
${
KUBE_DNS_DOMAIN
:-
cluster
.local
}
"
# Optional: set feature gates
# Optional: set feature gates
FEATURE_GATES
=
"
${
KUBE_FEATURE_GATES
:-
ExperimentalCriticalPodAnnotation
=true
}
"
FEATURE_GATES
=
"
${
KUBE_FEATURE_GATES
:-
ExperimentalCriticalPodAnnotation
=true
}
"
...
...
test/kubemark/resources/kube_dns_template.yaml
0 → 100644
View file @
bbb1d45d
apiVersion
:
v1
kind
:
Service
metadata
:
name
:
kube-dns
namespace
:
kubemark
labels
:
k8s-app
:
kube-dns
kubernetes.io/cluster-service
:
"
true"
addonmanager.kubernetes.io/mode
:
Reconcile
kubernetes.io/name
:
"
KubeDNS"
spec
:
selector
:
k8s-app
:
kube-dns
ports
:
-
name
:
dns
port
:
53
protocol
:
UDP
-
name
:
dns-tcp
port
:
53
protocol
:
TCP
---
apiVersion
:
v1
kind
:
ServiceAccount
metadata
:
name
:
kube-dns
namespace
:
kubemark
labels
:
kubernetes.io/cluster-service
:
"
true"
addonmanager.kubernetes.io/mode
:
Reconcile
---
apiVersion
:
v1
kind
:
ConfigMap
metadata
:
name
:
kube-dns
namespace
:
kubemark
labels
:
addonmanager.kubernetes.io/mode
:
EnsureExists
---
apiVersion
:
extensions/v1beta1
kind
:
Deployment
metadata
:
name
:
kube-dns
namespace
:
kubemark
labels
:
k8s-app
:
kube-dns
kubernetes.io/cluster-service
:
"
true"
addonmanager.kubernetes.io/mode
:
Reconcile
spec
:
strategy
:
rollingUpdate
:
maxSurge
:
10%
maxUnavailable
:
0
selector
:
matchLabels
:
k8s-app
:
kube-dns
template
:
metadata
:
labels
:
k8s-app
:
kube-dns
annotations
:
scheduler.alpha.kubernetes.io/critical-pod
:
'
'
spec
:
priorityClassName
:
system-cluster-critical
tolerations
:
-
key
:
"
CriticalAddonsOnly"
operator
:
"
Exists"
volumes
:
-
name
:
kube-dns-config
configMap
:
name
:
kube-dns
optional
:
true
-
name
:
secret-volume
secret
:
secretName
:
kubeconfig
containers
:
-
name
:
kubedns
image
:
k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.9
resources
:
limits
:
memory
:
170Mi
requests
:
cpu
:
100m
memory
:
70Mi
livenessProbe
:
httpGet
:
path
:
/healthcheck/kubedns
port
:
10054
scheme
:
HTTP
initialDelaySeconds
:
60
timeoutSeconds
:
5
successThreshold
:
1
failureThreshold
:
5
readinessProbe
:
httpGet
:
path
:
/readiness
port
:
8081
scheme
:
HTTP
initialDelaySeconds
:
3
timeoutSeconds
:
5
args
:
-
--domain={{dns_domain}}.
-
--dns-port=10053
-
--config-dir=/kube-dns-config
-
--kubecfg-file=/etc/secret-volume/dns.kubeconfig
-
--v=2
env
:
-
name
:
PROMETHEUS_PORT
value
:
"
10055"
ports
:
-
containerPort
:
10053
name
:
dns-local
protocol
:
UDP
-
containerPort
:
10053
name
:
dns-tcp-local
protocol
:
TCP
-
containerPort
:
10055
name
:
metrics
protocol
:
TCP
volumeMounts
:
-
name
:
kube-dns-config
mountPath
:
/kube-dns-config
-
name
:
secret-volume
mountPath
:
/etc/secret-volume
-
name
:
dnsmasq
image
:
k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.9
livenessProbe
:
httpGet
:
path
:
/healthcheck/dnsmasq
port
:
10054
scheme
:
HTTP
initialDelaySeconds
:
60
timeoutSeconds
:
5
successThreshold
:
1
failureThreshold
:
5
args
:
-
-v=2
-
-logtostderr
-
-configDir=/etc/k8s/dns/dnsmasq-nanny
-
-restartDnsmasq=true
-
--
-
-k
-
--cache-size=1000
-
--no-negcache
-
--log-facility=-
-
--server=/{{dns_domain}}/127.0.0.1#10053
-
--server=/in-addr.arpa/127.0.0.1#10053
-
--server=/ip6.arpa/127.0.0.1#10053
ports
:
-
containerPort
:
53
name
:
dns
protocol
:
UDP
-
containerPort
:
53
name
:
dns-tcp
protocol
:
TCP
# see: https://github.com/kubernetes/kubernetes/issues/29055 for details
resources
:
requests
:
cpu
:
150m
memory
:
20Mi
volumeMounts
:
-
name
:
kube-dns-config
mountPath
:
/etc/k8s/dns/dnsmasq-nanny
-
name
:
sidecar
image
:
k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.9
livenessProbe
:
httpGet
:
path
:
/metrics
port
:
10054
scheme
:
HTTP
initialDelaySeconds
:
60
timeoutSeconds
:
5
successThreshold
:
1
failureThreshold
:
5
args
:
-
--v=2
-
--logtostderr
-
--probe=kubedns,127.0.0.1:10053,kubernetes.default.svc.{{dns_domain}},5,SRV
-
--probe=dnsmasq,127.0.0.1:53,kubernetes.default.svc.{{dns_domain}},5,SRV
ports
:
-
containerPort
:
10054
name
:
metrics
protocol
:
TCP
resources
:
requests
:
memory
:
20Mi
cpu
:
10m
dnsPolicy
:
Default
# Don't use cluster DNS.
serviceAccountName
:
kube-dns
test/kubemark/resources/manifests/addons/kubemark-rbac-bindings/kube-dns-binding.yaml
0 → 100644
View file @
bbb1d45d
# This is the role binding for the kubemark kube-dns.
apiVersion
:
rbac.authorization.k8s.io/v1
kind
:
ClusterRoleBinding
metadata
:
name
:
kube-dns-view-binding
labels
:
kubernetes.io/cluster-service
:
"
true"
roleRef
:
apiGroup
:
rbac.authorization.k8s.io
kind
:
ClusterRole
name
:
system:kube-dns
subjects
:
-
apiGroup
:
rbac.authorization.k8s.io
kind
:
User
name
:
system:kube-dns
test/kubemark/start-kubemark.sh
View file @
bbb1d45d
...
@@ -99,6 +99,7 @@ function generate-pki-config {
...
@@ -99,6 +99,7 @@ function generate-pki-config {
NODE_PROBLEM_DETECTOR_TOKEN
=
$(
dd
if
=
/dev/urandom
bs
=
128
count
=
1 2>/dev/null |
base64
|
tr
-d
"=+/"
|
dd
bs
=
32
count
=
1 2>/dev/null
)
NODE_PROBLEM_DETECTOR_TOKEN
=
$(
dd
if
=
/dev/urandom
bs
=
128
count
=
1 2>/dev/null |
base64
|
tr
-d
"=+/"
|
dd
bs
=
32
count
=
1 2>/dev/null
)
HEAPSTER_TOKEN
=
$(
dd
if
=
/dev/urandom
bs
=
128
count
=
1 2>/dev/null |
base64
|
tr
-d
"=+/"
|
dd
bs
=
32
count
=
1 2>/dev/null
)
HEAPSTER_TOKEN
=
$(
dd
if
=
/dev/urandom
bs
=
128
count
=
1 2>/dev/null |
base64
|
tr
-d
"=+/"
|
dd
bs
=
32
count
=
1 2>/dev/null
)
CLUSTER_AUTOSCALER_TOKEN
=
$(
dd
if
=
/dev/urandom
bs
=
128
count
=
1 2>/dev/null |
base64
|
tr
-d
"=+/"
|
dd
bs
=
32
count
=
1 2>/dev/null
)
CLUSTER_AUTOSCALER_TOKEN
=
$(
dd
if
=
/dev/urandom
bs
=
128
count
=
1 2>/dev/null |
base64
|
tr
-d
"=+/"
|
dd
bs
=
32
count
=
1 2>/dev/null
)
KUBE_DNS_TOKEN
=
$(
dd
if
=
/dev/urandom
bs
=
128
count
=
1 2>/dev/null |
base64
|
tr
-d
"=+/"
|
dd
bs
=
32
count
=
1 2>/dev/null
)
echo
"Generated PKI authentication data for kubemark."
echo
"Generated PKI authentication data for kubemark."
}
}
...
@@ -126,6 +127,7 @@ function write-pki-config-to-master {
...
@@ -126,6 +127,7 @@ function write-pki-config-to-master {
sudo bash -c
\"
echo
\"
${
HEAPSTER_TOKEN
}
,system:heapster,uid:heapster
\"
>> /home/kubernetes/k8s_auth_data/known_tokens.csv
\"
&&
\
sudo bash -c
\"
echo
\"
${
HEAPSTER_TOKEN
}
,system:heapster,uid:heapster
\"
>> /home/kubernetes/k8s_auth_data/known_tokens.csv
\"
&&
\
sudo bash -c
\"
echo
\"
${
CLUSTER_AUTOSCALER_TOKEN
}
,system:cluster-autoscaler,uid:cluster-autoscaler
\"
>> /home/kubernetes/k8s_auth_data/known_tokens.csv
\"
&&
\
sudo bash -c
\"
echo
\"
${
CLUSTER_AUTOSCALER_TOKEN
}
,system:cluster-autoscaler,uid:cluster-autoscaler
\"
>> /home/kubernetes/k8s_auth_data/known_tokens.csv
\"
&&
\
sudo bash -c
\"
echo
\"
${
NODE_PROBLEM_DETECTOR_TOKEN
}
,system:node-problem-detector,uid:system:node-problem-detector
\"
>> /home/kubernetes/k8s_auth_data/known_tokens.csv
\"
&&
\
sudo bash -c
\"
echo
\"
${
NODE_PROBLEM_DETECTOR_TOKEN
}
,system:node-problem-detector,uid:system:node-problem-detector
\"
>> /home/kubernetes/k8s_auth_data/known_tokens.csv
\"
&&
\
sudo bash -c
\"
echo
\"
${
KUBE_DNS_TOKEN
}
,system:kube-dns,uid:kube-dns
\"
>> /home/kubernetes/k8s_auth_data/known_tokens.csv
\"
&&
\
sudo bash -c
\"
echo
${
KUBE_PASSWORD
}
,admin,admin > /home/kubernetes/k8s_auth_data/basic_auth.csv
\"
"
sudo bash -c
\"
echo
${
KUBE_PASSWORD
}
,admin,admin > /home/kubernetes/k8s_auth_data/basic_auth.csv
\"
"
execute-cmd-on-master-with-retries
"
${
PKI_SETUP_CMD
}
"
3
execute-cmd-on-master-with-retries
"
${
PKI_SETUP_CMD
}
"
3
echo
"Wrote PKI certs, keys, tokens and admin password to master."
echo
"Wrote PKI certs, keys, tokens and admin password to master."
...
@@ -348,6 +350,25 @@ contexts:
...
@@ -348,6 +350,25 @@ contexts:
name: kubemark-context
name: kubemark-context
current-context: kubemark-context"
)
current-context: kubemark-context"
)
# Create kubeconfig for Kube DNS.
KUBE_DNS_KUBECONFIG_CONTENTS
=
$(
echo
"apiVersion: v1
kind: Config
users:
- name: kube-dns
user:
token:
${
KUBE_DNS_TOKEN
}
clusters:
- name: kubemark
cluster:
insecure-skip-tls-verify: true
server: https://
${
MASTER_IP
}
contexts:
- context:
cluster: kubemark
user: kube-dns
name: kubemark-context
current-context: kubemark-context"
)
# Create kubemark namespace.
# Create kubemark namespace.
"
${
KUBECTL
}
"
create
-f
"
${
RESOURCE_DIRECTORY
}
/kubemark-ns.json"
"
${
KUBECTL
}
"
create
-f
"
${
RESOURCE_DIRECTORY
}
/kubemark-ns.json"
...
@@ -362,7 +383,8 @@ current-context: kubemark-context")
...
@@ -362,7 +383,8 @@ current-context: kubemark-context")
--from-literal
=
kubeproxy.kubeconfig
=
"
${
KUBEPROXY_KUBECONFIG_CONTENTS
}
"
\
--from-literal
=
kubeproxy.kubeconfig
=
"
${
KUBEPROXY_KUBECONFIG_CONTENTS
}
"
\
--from-literal
=
heapster.kubeconfig
=
"
${
HEAPSTER_KUBECONFIG_CONTENTS
}
"
\
--from-literal
=
heapster.kubeconfig
=
"
${
HEAPSTER_KUBECONFIG_CONTENTS
}
"
\
--from-literal
=
cluster_autoscaler.kubeconfig
=
"
${
CLUSTER_AUTOSCALER_KUBECONFIG_CONTENTS
}
"
\
--from-literal
=
cluster_autoscaler.kubeconfig
=
"
${
CLUSTER_AUTOSCALER_KUBECONFIG_CONTENTS
}
"
\
--from-literal
=
npd.kubeconfig
=
"
${
NPD_KUBECONFIG_CONTENTS
}
"
--from-literal
=
npd.kubeconfig
=
"
${
NPD_KUBECONFIG_CONTENTS
}
"
\
--from-literal
=
dns.kubeconfig
=
"
${
KUBE_DNS_KUBECONFIG_CONTENTS
}
"
# Create addon pods.
# Create addon pods.
# Heapster.
# Heapster.
...
@@ -380,7 +402,7 @@ current-context: kubemark-context")
...
@@ -380,7 +402,7 @@ current-context: kubemark-context")
sed
-i
''
-e
"s/{{EVENTER_MEM}}/
${
eventer_mem
}
/g"
"
${
RESOURCE_DIRECTORY
}
/addons/heapster.json"
sed
-i
''
-e
"s/{{EVENTER_MEM}}/
${
eventer_mem
}
/g"
"
${
RESOURCE_DIRECTORY
}
/addons/heapster.json"
# Cluster Autoscaler.
# Cluster Autoscaler.
if
[[
"
${
ENABLE_KUBEMARK_CLUSTER_AUTOSCALER
}
"
==
"true"
]]
;
then
if
[[
"
${
ENABLE_KUBEMARK_CLUSTER_AUTOSCALER
:-
}
"
==
"true"
]]
;
then
echo
"Setting up Cluster Autoscaler"
echo
"Setting up Cluster Autoscaler"
KUBEMARK_AUTOSCALER_MIG_NAME
=
"
${
KUBEMARK_AUTOSCALER_MIG_NAME
:-${
NODE_INSTANCE_PREFIX
}
-group
}
"
KUBEMARK_AUTOSCALER_MIG_NAME
=
"
${
KUBEMARK_AUTOSCALER_MIG_NAME
:-${
NODE_INSTANCE_PREFIX
}
-group
}
"
KUBEMARK_AUTOSCALER_MIN_NODES
=
"
${
KUBEMARK_AUTOSCALER_MIN_NODES
:-
0
}
"
KUBEMARK_AUTOSCALER_MIN_NODES
=
"
${
KUBEMARK_AUTOSCALER_MIN_NODES
:-
0
}
"
...
@@ -394,6 +416,12 @@ current-context: kubemark-context")
...
@@ -394,6 +416,12 @@ current-context: kubemark-context")
sed
-i
''
-e
"s/{{kubemark_autoscaler_max_nodes}}/
${
KUBEMARK_AUTOSCALER_MAX_NODES
}
/g"
"
${
RESOURCE_DIRECTORY
}
/addons/cluster-autoscaler.json"
sed
-i
''
-e
"s/{{kubemark_autoscaler_max_nodes}}/
${
KUBEMARK_AUTOSCALER_MAX_NODES
}
/g"
"
${
RESOURCE_DIRECTORY
}
/addons/cluster-autoscaler.json"
fi
fi
# Kube DNS.
if
[[
"
${
ENABLE_KUBEMARK_KUBE_DNS
:-}
"
==
"true"
]]
;
then
echo
"Setting up kube-dns"
sed
"s/{{dns_domain}}/
${
KUBE_DNS_DOMAIN
}
/g"
"
${
RESOURCE_DIRECTORY
}
/kube_dns_template.yaml"
>
"
${
RESOURCE_DIRECTORY
}
/addons/kube_dns.yaml"
fi
"
${
KUBECTL
}
"
create
-f
"
${
RESOURCE_DIRECTORY
}
/addons"
--namespace
=
"kubemark"
"
${
KUBECTL
}
"
create
-f
"
${
RESOURCE_DIRECTORY
}
/addons"
--namespace
=
"kubemark"
# Create the replication controller for hollow-nodes.
# Create the replication controller for hollow-nodes.
...
...
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