本次搭建与上次的类似,不同之处是,本次不用安装docker。

不熟悉的同学,可以先看看我的上一篇文章(以下简称上一篇文章):

个人笔记:vmware16 +ubuntu20.04搭建单节点 kubernetes 1.22.2_湾区的候鸟的博客-CSDN博客_vmware16密钥今天使用vmware16 +ubuntu20.04搭建单节点 kubernetes 1.22.2,踩了不少的坑,记录一下,希望能帮到大家。先看一篇高质量的参考:基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2_琦彦的博客-CSDN博客基于vmware16 和 ubuntu20.04, 搭建单节点 kubernetes 1.22.2安装环境win10ubuntu版本 20.04.3docker版本 20.10.7k8s版本 1.22.2vmware参考https://blog.csdn.net/tjg138/article/details/124550033?spm=1001.2014.3001.5501

第1步:安装3台ubuntu 22主机。

IP配置:

主机名IP备注
umaster

192.168.114.20

192.168.43.x

ubuntu 22
worker1

192.168.114.21

192.168.43.x

ubuntu 22
worker2

192.168.114.22

192.168.43.x

ubuntu 22
workstation

192.168.114.100

centos 7

Harbor,域名:hb.cn

说明:

1) 192.168.114.20、192.168.114.21、192.168.114.22为K8S 1.24集群专用网络

2)192.168.43.x网卡,用于配置连接互联网。

3) workstation上的Harbor为2.4.1版本,是我之前就安装好的。本次安装K8S的目标是能连接harbor。

第2步:设置root登录、hostname等,略。(所有节点)

第3步:关闭swap(所有节点)

swapoff -a # 临时
sed -ri ‘s/.swap./#&/’ /etc/fstab # 永久

第4步:删除旧的docker(所有节点)

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo apt-get update

第5步:删除旧的docker数据(所有节点)

rm -rf /var/lib/docker
rm -rf /var/lib/containerd


第6步:安装依赖命令(所有节点)

apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

 第7步: 安装ContainerD(所有节点)

apt-get install containerd.io

参考官方:https://github.com/containerd/containerd/blob/main/docs/getting-started.md

第8步:生成containerd默认配置文件(所有节点)

mv /etc/containerd/config.toml /etc/containerd/config.toml.orig

containerd config default > /etc/containerd/config.toml

第9步: 修改config.toml文件(所有节点)

1)endpoint加速器

 2)修改sandbox_image


3)修改Systemdcgroup

 

第10步: 重启containerd(所有节点)

第11步: 安装k8s 1.24(master节点执行kubeadm init,worker节点执行kubeadm join)

与上篇文件类似,略。

第12步: 安装calicto v3.22.2(master节点)

安装过程参考上一篇文章,使用两份yaml文件如下:

第1份yaml文件太长了,在此不再贴出,信息如下:

第2份yaml文件:

验证k8s及calico:

第13步:  配置用crictl连接Harbor(所有节点)

 1) 再次修改containerd的config_path:

官方参考:


 

 2) 设置host.toml,以便使用crictl连接harbor.

新建目录/etc/containerd/certs.d/hb.cn,写入以下文件:

注意:hb.cn为我的harbor域名

 官方教程:

 官方网址:

 containerd/hosts.md at main · containerd/containerd · GitHub

3) 重启containerd

4) 配置crictl使用的sock文件(所有节点)

如果不执行这一步,则使用crictl时会报错。

5) 测试crictl能下载镜像(所有节点)

第14步: 测试ctr能下载Harbor的镜像(所有节点)

设置了上面的crictl的配置后,不需要再为ctr进行额外的配置,只需要在使用ctr命令时加上--hosts-dir参数即可。

参考帮助:

官方教程:

第15步: 测试k8s能从harbor下载镜像(master节点)

1)准备一份yaml文件。

2)应用yaml,验证POD。

问题:

1)crictl pull报: x509证书错误。

如果没有设置config_path,则报以下错误。

 2)crictl pull报: sock错误。

问题原因:没有配置/etc/crictl.yaml文件。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐