Skip to content

Commit 5adf576

Browse files
committed
update scripts
1 parent 4d8a1ae commit 5adf576

File tree

10 files changed

+496
-336
lines changed

10 files changed

+496
-336
lines changed

context/rootfs/scripts/clean-kube.sh

Lines changed: 0 additions & 33 deletions
This file was deleted.

context/rootfs/scripts/docker.sh

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
#!/bin/bash
2+
# Copyright © 2021 Alibaba Group Holding Ltd.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
16+
set -x
17+
set -e
18+
19+
scripts_path=$(cd `dirname $0`; pwd)
20+
image_dir="$scripts_path/../images"
21+
DOCKER_VERSION="19.03.14-sealer"
22+
23+
get_distribution() {
24+
lsb_dist=""
25+
# Every system that we officially support has /etc/os-release
26+
if [ -r /etc/os-release ]; then
27+
lsb_dist="$(. /etc/os-release && echo "$ID")"
28+
fi
29+
# Returning an empty string here should be alright since the
30+
# case statements don't act unless you provide an actual value
31+
echo "$lsb_dist"
32+
}
33+
34+
disable_selinux() {
35+
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
36+
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
37+
setenforce 0
38+
fi
39+
}
40+
41+
load_images() {
42+
for image in "$image_dir"/*; do
43+
if [ -f "${image}" ]; then
44+
docker load -q -i "${image}"
45+
fi
46+
done
47+
}
48+
49+
check_docker_valid() {
50+
if ! docker info 2>&1; then
51+
panic "docker is not healthy: $(docker info 2>&1), please check"
52+
fi
53+
54+
dockerVersion=`docker info --format '{{json .ServerVersion}}' | tr -d '"'`
55+
if [ "${dockerVersion}" != "${DOCKER_VERSION}" ]; then
56+
panic "docker version is ${dockerVersion}, should be 19.03.15, please check"
57+
fi
58+
}
59+
60+
storage=${1:-/var/lib/docker}
61+
mkdir -p $storage
62+
if ! utils_command_exists docker; then
63+
lsb_dist=$(get_distribution)
64+
lsb_dist="$(echo "$lsb_dist" | tr '[:upper:]' '[:lower:]')"
65+
echo "current system is $lsb_dist"
66+
case "$lsb_dist" in
67+
ubuntu | deepin | debian | raspbian)
68+
cp "${scripts_path}"/../etc/docker.service /lib/systemd/system/docker.service
69+
if [ ! -f /usr/sbin/iptables ];then
70+
if [ -f /sbin/iptables ];then
71+
ln -s /sbin/iptables /usr/sbin/iptables
72+
else
73+
panic "iptables not found, please check"
74+
fi
75+
fi
76+
;;
77+
centos | rhel | anolis | ol | sles | kylin | neokylin)
78+
cp "${scripts_path}"/../etc/docker.service /usr/lib/systemd/system/docker.service
79+
;;
80+
alios)
81+
docker0=$(ip addr show docker0 | head -1|tr " " "\n"|grep "<"|grep -iwo "UP"|wc -l)
82+
if [ "$docker0" != "1" ]; then
83+
ip link add name docker0 type bridge
84+
ip addr add dev docker0 172.17.0.1/16
85+
fi
86+
cp "${scripts_path}"/../etc/docker.service /usr/lib/systemd/system/docker.service
87+
;;
88+
*)
89+
utils_info "unknown system to use /lib/systemd/system/docker.service"
90+
cp "${scripts_path}"/../etc/docker.service /lib/systemd/system/docker.service
91+
;;
92+
esac
93+
94+
[ -d /etc/docker/ ] || mkdir /etc/docker/ -p
95+
96+
chmod -R 755 "${scripts_path}"/../cri
97+
tar -zxvf "${scripts_path}"/../cri/docker.tar.gz -C /usr/bin
98+
chmod a+x /usr/bin
99+
chmod a+x /usr/bin/docker
100+
chmod a+x /usr/bin/dockerd
101+
systemctl enable docker.service
102+
systemctl restart docker.service
103+
cp "${scripts_path}"/../etc/daemon.json /etc/docker
104+
mkdir -p /root/.docker/
105+
cp "${scripts_path}"/../etc/docker-cli-config.json /root/.docker/config.json
106+
if [[ -n $1 && -n $2 ]]; then
107+
sed -i "s/sea.hub:5000/$2:$3/g" /etc/docker/daemon.json
108+
fi
109+
fi
110+
111+
disable_selinux
112+
systemctl daemon-reload
113+
systemctl restart docker.service
114+
check_docker_valid
115+
116+
load_images

context/rootfs/scripts/init-kube.sh

Lines changed: 25 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,9 @@
11
#!/bin/bash
2-
# shellcheck disable=SC1091
32

4-
# Open ipvs
5-
modprobe -- ip_vs
6-
modprobe -- ip_vs_rr
7-
modprobe -- ip_vs_wrr
8-
modprobe -- ip_vs_sh
9-
modprobe -- br_netfilter
10-
## version_ge 4.19 4.19 true ;
11-
## version_ge 5.4 4.19 true ;
12-
## version_ge 3.10 4.19 false ;
3+
scripts_path=$(cd `dirname $0`; pwd)
4+
source "${scripts_path}"/utils.sh
135

14-
version_ge() {
15-
test "$(echo "$@" | tr ' ' '\n' | sort -rV | head -n 1)" == "$1"
16-
}
17-
18-
disable_selinux() {
19-
if [ -s /etc/selinux/config ] && grep 'SELINUX=enforcing' /etc/selinux/config; then
20-
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
21-
setenforce 0
22-
fi
23-
}
6+
set -x
247

258
get_distribution() {
269
lsb_dist=""
@@ -50,32 +33,27 @@ disable_firewalld() {
5033
esac
5134
}
5235

53-
kernel_version=$(uname -r | cut -d- -f1)
54-
if version_ge "${kernel_version}" 4.19; then
55-
modprobe -- nf_conntrack
56-
else
57-
modprobe -- nf_conntrack_ipv4
58-
fi
59-
60-
cat <<EOF >/etc/sysctl.d/k8s.conf
61-
net.bridge.bridge-nf-call-ip6tables = 1
62-
net.bridge.bridge-nf-call-iptables = 1
63-
net.ipv4.conf.all.rp_filter=0
64-
EOF
65-
sysctl --system
66-
sysctl -w net.ipv4.ip_forward=1
67-
disable_firewalld
68-
swapoff -a || true
69-
disable_selinux
36+
copy_bins() {
37+
chmod -R 755 ../bin/*
38+
chmod 644 ../bin
39+
cp ../bin/* /usr/bin
40+
cp ../scripts/kubelet-pre-start.sh /usr/bin
41+
chmod +x /usr/bin/kubelet-pre-start.sh
42+
}
7043

71-
chmod -R 755 ../bin/*
72-
chmod 644 ../bin
73-
cp ../bin/* /usr/bin
74-
cp ../scripts/kubelet-pre-start.sh /usr/bin
75-
# Cgroup driver
76-
mkdir -p /etc/systemd/system
77-
cp ../etc/kubelet.service /etc/systemd/system/
78-
[ -d /etc/systemd/system/kubelet.service.d ] || mkdir /etc/systemd/system/kubelet.service.d
79-
cp ../etc/10-kubeadm.conf /etc/systemd/system/kubelet.service.d/
44+
copy_kubelet_service(){
45+
mkdir -p /etc/systemd/system
46+
cp ../etc/kubelet.service /etc/systemd/system/
47+
[ -d /etc/systemd/system/kubelet.service.d ] || mkdir /etc/systemd/system/kubelet.service.d
48+
cp ../etc/10-kubeadm.conf /etc/systemd/system/kubelet.service.d/
49+
}
8050

81-
systemctl daemon-reload && systemctl enable kubelet
51+
disable_firewalld
52+
copy_bins
53+
copy_kubelet_service
54+
[ -d /var/lib/kubelet ] || mkdir -p /var/lib/kubelet/
55+
/usr/bin/kubelet-pre-start.sh
56+
systemctl enable kubelet
57+
58+
# nvidia-docker.sh need set kubelet labels, it should be run after kubelet
59+
bash ${scripts_path}/nvidia-docker.sh || exit 1

0 commit comments

Comments
 (0)