注意
kubernetes v1.24.0以后移除了dockershim
前期准备工作
禁用selinux
禁用swap
启用br_netfilter模块
关闭防火墙
将containerd用作CRI运行时(容器运行时)
配置Cgroup驱动systemd
/etc/containerd/config.toml
配置项SystemdCgroup = true
安装 kubeadm、kubelet、kubectl
禁止内核及kubeadm,kubectl,kubelet自动更新
预先下载镜像
kubeadm config images list --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers kubeadm config images pull --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
初始化集群
sudo kubeadm init \ --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \ --pod-network-cidr=10.222.0.0/16 \ --cri-socket=/run/containerd/containerd.sock \ --apiserver-advertise-address=192.168.99.8
配置网络
curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/canal.yaml -O
- 修改CIDR
kubectl apply -f canal.yaml
kubectl get nodes -o wide
遇到的问题
kubelet Error getting node报错
- 之前使用了docker容器配置没删除干净:
kubeadm reset --cri-socket="unix:///run/containerd/containerd.sock"
- 之前使用了docker容器配置没删除干净:
sandbox_image无法获取,设置为阿里源
/etc/containerd/config.toml
配置sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.8"