基礎(chǔ)環(huán)境
系統(tǒng)Ubuntu 22.04.2
| 主機名稱 | IP |
| ----- | -------- |
| k8s-master | 192.168.198.141 |
| k8s-node01 | 192.168.198.142 |
| k8s-node02 | 192.168.198.143 |
- 設(shè)置k8s環(huán)境準備條件(所有機器)
# 禁用交換分區(qū)(在舊版的 k8s 中 kubelet 都要求關(guān)閉 swapoff 缆蝉,但最新版的 kubelet 其實已經(jīng)支持 swap 碱妆,因此這一步其實可以不做笙蒙。)
swapoff -a
# 永久禁用增淹,打開/etc/fstab注釋掉swap那一行。
sudo vim /etc/fstab
# 修改內(nèi)核參數(shù)(首先確認你的系統(tǒng)已經(jīng)加載了 br_netfilter 模塊漓拾,默認是沒有該模塊的,需要你先安裝 bridge-utils)
apt-get install -y bridge-utils
modprobe br_netfilter
lsmod | grep br_netfilter
# 如果報錯找不到包戒祠,需要先更新 apt-get update -y
- 安裝配置container
2.1 安裝啟動
--安裝依賴工具
sudo apt-get install -y apt-transport-https ca-certificates curl
--安裝containerd
sudo apt-get -y install containerd
sudo systemctl enable containerd
sudo systemctl start containerd
2.2 輸出配置(需手動創(chuàng)建空文件)
--輸出默認配置文件
sudo mkdir /etc/containerd
sudo touch /etc/containerd/config.toml
sudo containerd config default>/etc/containerd/config.toml
2.3 編輯配置文件
sudo vi/etc/containerd/config.toml
1.修改SystemdCgroup參數(shù)為true骇两,默認為false
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup=true
2.修改sandbox_image參數(shù),其值一定要和
kubeadm config images list 命令輸出的pause版本和tag保持一致姜盈,否則Node節(jié)點的Pod一直CrashLoopBackOff而且查詢 kubectl logs 時也沒有任何錯誤低千,此處我的版本為阿里云3.6
sandbox_image="registry.aliyuncs.com/google_containers/pause:3.6"
2.4 配置容器ENDPOINT并生效
crictl config runtime-endpoint unix:///run/containerd/containerd.sock
crictl config image-endpoint unix:///run/containerd/containerd.sock
systemctl restart containerd
- 安裝與配置k8s
3.1 安裝 kubelet kubeadm kubectl
# 安裝基礎(chǔ)環(huán)境
apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
# 執(zhí)行配置k8s阿里云源
vim /etc/apt/sources.list.d/kubernetes.list
#加入以下內(nèi)容
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
# 執(zhí)行更新
apt-get update -y
# 安裝kubeadm、kubectl馏颂、kubelet
apt-get install -y kubelet=1.23.1-00 kubeadm=1.23.1-00 kubectl=1.23.1-00
# 阻止自動更新(apt upgrade時忽略)示血。所以更新的時候先unhold,更新完再hold救拉。
apt-mark hold kubelet kubeadm kubectl
# 集群初始化
kubeadm init --apiserver-advertise-address=192.168.198.141 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.27.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 --v=5
安裝網(wǎng)絡(luò)插件
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml