一、从阿里云镜像安装kubeadm等,里面有安装方法 https://developer.aliyun.com/mirror/kubernetes
二、关闭交换分区
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
如果是debian还需要systemctl --type swap --all然后systemctl mask dev-xxx.swap
三、config.toml修改
先 containerd config default > /etc/containerd/config.toml
1、containerd打开cri支持
注掉 #disabled_plugins = ["cri"]
2、cgroup修改
SystemdCgroup = false --> SystemdCgroup = true
3.1 如果不需要阿里镜像 而是用代理,要配置containerd的代理
没有这文件就新建一个/etc/systemd/system/containerd.service.d/http-proxy.conf,并且编辑它,写入containterd的代理 不然registry.k8s.io无法访问。
[Service]
Environment="HTTP_PROXY=http://xxx.xxx.xxx.xxx:7890"
Environment="HTTPS_PROXY=http://xxx.xxx.xxx.xxx:7890"
3.2、如果需要阿里镜像
sandbox_image = "k8s.gcr.io/pause:3.6" --> sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
这里3.6改成3.9是因为kubeadm的log里推荐用3.9。如果用前面代理方式,这里可以只改版本号
containerd是和k8s分离的,containerd是docker一部分自动安装的,sandbox_image是containerd用的,无法由kubeadm更改。
虽然在可以这么设置kubeadm init --image-repository registry.aliyuncs.com/google_containers,但只能控制k8s取image的位置,k8s是无法把--image-repository传过去。
4、修改完要重启服务
systemctl daemon-reload #如果是用代理,因为新加入了配置,要执行下这句,不加这句单执行重启服务会有提示
systemctl restart containerd
用代理是最简单方法,配置完 操作步骤和官方文档上一样,kubeadm init后面也不用配置镜像库位置。