1
+ #! /bin/bash -xe
2
+
3
+ set -x
4
+
5
+ swapoff -a
6
+
7
+ function get_random_string () {
8
+ random_string=$( cat /dev/urandom | tr -dc ' a-z0-9' | fold -w $1 | head -n 1)
9
+ echo $random_string
10
+ }
11
+
12
+ # 서버단에서 내려줘야 함.
13
+ ADVERTISE_NET_DEV=${ADVERTISE_NET_DEV:- enp0s8}
14
+ ADVERTISE_ADDR=$( ifconfig $ADVERTISE_NET_DEV | grep ' inet' | cut -d: -f2 | awk ' {print $2}' )
15
+ JOIN_TOKEN=${JOIN_TOKEN:- " $( get_random_string 6) .$( get_random_string 16) " }
16
+ KUBERNETES_VERSION=${KUBERNETES_VERSION:- latest}
17
+ KUBERNETES_CNI_VERSION=${KUBERNETES_CNI_VERSION:- latest}
18
+ DOCKER_VERSION=${DOCKER_VERSION:- latest}
19
+
20
+ sed -i $( eval echo ' s/JOIN_TOKEN/$JOIN_TOKEN/g' ) master.yaml
21
+ sed -i $( eval echo ' s/ADVERTISE_ADDR/$ADVERTISE_ADDR/g' ) master.yaml
22
+
23
+ apt-get update
24
+ apt-get install -y apt-transport-https curl
25
+
26
+ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
27
+ echo " deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
28
+
29
+ wget -qO- get.docker.com | sh
30
+
31
+ if [ " $DOCKER_VERSION " != " latest" ]
32
+ then
33
+ apt-get install -y --allow-downgrades docker-ce=$DOCKER_VERSION
34
+ service docker restart
35
+ fi
36
+
37
+ if [ " $KUBERNETES_VERSION " = " latest" ]
38
+ then
39
+ apt-get install -y kubelet kubeadm kubectl
40
+ else
41
+ apt-get install -y kubelet=$KUBERNETES_VERSION \
42
+ kubeadm=$KUBERNETES_VERSION \
43
+ kubectl=$KUBERNETES_VERSION
44
+ fi
45
+
46
+ if [ " $KUBERNETES_CNI_VERSION " = " latest" ]
47
+ then
48
+ apt-get install -y kubernetes-cni
49
+ else
50
+ apt-get install -y kubernetes-cni=$KUBERNETES_CNI_VERSION
51
+ fi
52
+
53
+ # Run kubeadm
54
+ kubeadm init \
55
+ --config master.yaml
56
+
57
+ # Prepare kubeconfig file for download to local machine
58
+ sudo mkdir -p /root/.kube
59
+ sudo cp -i /etc/kubernetes/admin.conf /root/.kube/config
60
+ sudo chown root:root /root/.kube/config
0 commit comments