在每一台 node 上設定
關閉 swap
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab關閉 SELinux
sudo setenforce 0 && sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config安裝 CRI (以 containerd 1.6.19 為例)
https://github.com/containerd/containerd/blob/main/docs/getting-started.md
下載 .tar.gz 檔案
curl -OL https://github.com/containerd/containerd/releases/download/v1.6.19/containerd-1.6.19-linux-amd64.tar.gz解壓縮
tar Cxzvf /usr/local containerd-1.6.19-linux-amd64.tar.gz設定 cgroup driver 為 systemd
https://kubernetes.io/docs/setup/production-environment/container-runtimes/
生產 config 檔案
mkdir /etc/containerd && containerd config default > /etc/containerd/config.toml為了使用 Systemd 作為 cgroup driver, 需要修改 config 檔案 /etc/containerd/config.toml, 將 SystemdCgroup 改為 true
Why kubernetes choose systemd not cgroupfs? https://www.sobyte.net/post/2022-07/k8s-cgroupfs-or-syste/
vi /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
BinaryName = ""
CriuImagePath = ""
CriuPath = ""
CriuWorkPath = ""
IoGid = 0
IoUid = 0
NoNewKeyring = false
NoPivotRoot = false
Root = ""
ShimCgroup = ""
SystemdCgroup = true下載 service 檔案
由於 containerd 預設的 config path 是
/etc/containerd/config.toml, 所以不需要改 service 檔案, 可以透過containerd --help得知。
開機啟動 containerd
安裝 runc (以 v1.1.4 為例)
下載 runc.amd64
安裝 runc
安裝 CNI Plugin
下載壓縮檔
解壓縮檔案
載入 Kubernetes 所需的 modules
啟動 containerd
安裝ipvsadm
安裝 kubelet kubeadm kubectl
新增 repo 位置
安裝工具並啟動 kubelet
安裝
iproute-tc是因為使用 kubeadm join node 時會發生tc not found問題: link
如果您需要安裝指定版本,以
v1.26.3為例,可以將kubeletkubeadmkubectl改為kubelet-1.26.3kubeadm-1.26.3kubectl-1.26.3
Last updated