Skip to content

Commit 5ada182

Browse files
authored
worker 설치 파일 추가
1 parent 13e8fe6 commit 5ada182

File tree

2 files changed

+92
-0
lines changed

2 files changed

+92
-0
lines changed

install-worker.sh

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
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.

worker.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: kubeadm.k8s.io/v1beta1
2+
kind: JoinConfiguration
3+
discovery:
4+
bootstrapToken:
5+
token: "JOIN_TOKEN"
6+
apiServerEndpoint: "API_SERVER_ADDR:6443"
7+
unsafeSkipCAVerification: true
8+
nodeRegistration:
9+
name: NODE_HOSTNAME

0 commit comments

Comments
 (0)