1
+ #! /bin/bash -xe
2
+ # RUN AS ROOT
3
+ if [[ $EUID -ne 0 ]]; then
4
+ echo " This script must be run as root"
5
+ exit 1
6
+ fi
7
+
8
+ set -x
9
+
10
+ swapoff -a
11
+
12
+ # 서버단에서 내려줘야 함.
13
+ if [[ -z " $API_SERVER_ADDR " ]]; then
14
+ echo " API_SERVER_ADDR is not set. abort"
15
+ exit
16
+ fi
17
+
18
+ # 서버단에서 내려줘야 함.
19
+ if [[ -z " $JOIN_TOKEN " ]]; then
20
+ echo " JOIN_TOKEN is not set. abort"
21
+ exit
22
+ fi
23
+
24
+ # 서버단에서 내려줘야 함.
25
+ KUBERNETES_VERSION=${KUBERNETES_VERSION:- latest}
26
+ KUBERNETES_CNI_VERSION=${KUBERNETES_CNI_VERSION:- latest}
27
+ NODE_HOSTNAME=$( hostname)
28
+ DOCKER_VERSION=${DOCKER_VERSION:- latest}
29
+
30
+ # worker 파일 다운
31
+ echo [Donwload worker.yaml]
32
+ curl -O https://raw.githubusercontent.com/AI-Ocean/kubernetes-install-scripts/main/worker.yaml
33
+ echo Done.
34
+
35
+ sed -i ' s/JOIN_TOKEN/' " $JOIN_TOKEN " ' /g' worker.yaml
36
+ sed -i ' s/API_SERVER_ADDR/' " $API_SERVER_ADDR " ' /g' worker.yaml
37
+ sed -i ' s/NODE_HOSTNAME/' " $NODE_HOSTNAME " ' /g' worker.yaml
38
+
39
+ echo [Install Prerequest packages]
40
+ apt-get update
41
+ apt-get install -y apt-transport-https curl
42
+
43
+ echo [Docker Install]
44
+ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
45
+ echo " deb https://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list
46
+
47
+ wget -qO- get.docker.com | sh
48
+
49
+ if [ " $DOCKER_VERSION " != " latest" ]
50
+ then
51
+ apt-get install -y --allow-downgrades docker-ce=$DOCKER_VERSION
52
+ service docker restart
53
+ fi
54
+
55
+ echo [Kubernetes install]
56
+ if [ " $KUBERNETES_VERSION " = " latest" ]
57
+ then
58
+ apt-get install -y kubelet kubeadm kubectl
59
+ else
60
+ apt-get install -y kubelet=$KUBERNETES_VERSION \
61
+ kubeadm=$KUBERNETES_VERSION \
62
+ kubectl=$KUBERNETES_VERSION
63
+ fi
64
+
65
+ echo [Kubernetes CNI install]
66
+ if [ " $KUBERNETES_CNI_VERSION " = " latest" ]
67
+ then
68
+ apt-get install -y kubernetes-cni
69
+ else
70
+ apt-get install -y kubernetes-cni=$KUBERNETES_CNI_VERSION
71
+ fi
72
+
73
+ until $( curl --output /dev/null --silent --fail https://$API_SERVER_ADDR :6443/healthz -k) ; do
74
+ printf ' .'
75
+ sleep 5
76
+ done
77
+
78
+ echo " API Server is running!"
79
+
80
+ echo [Join]
81
+ # Run kubeadm
82
+ kubeadm join --config worker.yaml
83
+ echo Done.
0 commit comments