注意

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

配置网络

Install Calico

  • 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"
  • sandbox_image无法获取,设置为阿里源

    • /etc/containerd/config.toml配置 sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.8"