Containerd安装脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#/bin/bash
# install containerd script

containerd_version=1.6.15
containerd_pause_version=3.9
kubernetes_version=1.26.1-00

function install_containerd(){
wget https://github.com/containerd/containerd/releases/download/v${containerd_version}/cri-containerd-cni-${containerd_version}-linux-amd64.tar.gz
tar xf cri-containerd-cni-${containerd_version}-linux-amd64.tar.gz
mkdir -p /opt/cni/bin && mkdir -p /etc/containerd
mv ./opt/cni/bin/* /opt/cni/bin/ && mv ./usr/local/bin/* /usr/local/bin/ && mv ./usr/local/sbin/* /usr/local/sbin/ && mv ./etc/systemd/system/containerd.service /lib/systemd/system/
}

function config_containerd(){
/usr/local/bin/containerd config default > /etc/containerd/config.toml
sed -i "s/SystemdCgroup = false/SystemdCgroup = true/g" /etc/containerd/config.toml
sed -i "s/sandbox_image = \"registry.k8s.io\/pause:3.6\"/sandbox_image = \"registry.k8s.io\/pause:${containerd_pause_version}\"/g" /etc/containerd/config.toml
systemctl enable --now containerd

}

function config_cri_env(){
tee > /etc/modules-load.d/k8s.conf << EOF
overlay
br_netfilter
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF

modprobe overlay
modprobe br_netfilter
modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack

tee > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF

sysctl --system

swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
}

function install_kubernetes_google(){
apt update
apt-get install -y apt-transport-https ca-certificates curl
curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list
apt-get update
apt-get install -y kubelet=${kubernetes_version} kubeadm=${kubernetes_version} kubectl=${kubernetes_version}
apt-mark hold kubelet kubeadm kubectl
systemctl enable kubelet
}

function install_kubernetes_ali(){
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -

tee > /etc/apt/sources.list.d/kubernetes.list << EOF
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF

sed -i "s/sandbox_image = \"registry.k8s.io\/pause:${containerd_pause_version}\"/sandbox_image = \"registry.cn-hangzhou.aliyuncs.com\/google_containers\/pause:${containerd_pause_version}\"/g" /etc/containerd/config.toml
systemctl restart containerd.service

apt-get update
apt-get install -y kubelet=${kubernetes_version} kubeadm=${kubernetes_version} kubectl=${kubernetes_version}
apt-mark hold kubelet kubeadm kubectl
systemctl enable kubelet
}

function main(){
install_containerd
config_containerd
config_cri_env
#install_kubernetes_google
install_kubernetes_ali
}

main