kubernetes|k8s1.24.3搭建

说明:最新的1.24版本废弃了dockershim
这里我们使用containterd来管理容器镜像
我的系统环境(Ubuntu22.04这个太坑了,还是20.04好搭些)
kubernetes|k8s1.24.3搭建
文章图片

源使用的是清华

root@master:~/k8s# cat /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
环境准备:
root@master:~/k8s# ufw disabled
root@master:~/k8s#cat <
【kubernetes|k8s1.24.3搭建】overlay
br_netfilter
EOF
root@master:~/k8s#sudo modprobe overlay
root@master:~/k8s#sudo modprobe br_netfilter
root@master:~/k8s#cat
net.bridge.bridge-nf-call-iptables= 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward= 1
EOF
root@master:~/k8s#sudo sysctl --system
ok,现在开始安装containerd,直接apt-get install containerd 即可
root@master:~# ctr -v
ctr github.com/containerd/containerd 1.5.9-0ubuntu3
root@master:~#
根据官网的说法:
Container Runtimes | Kubernetes
我们需要创建一个containerd的配置文件
root@master:~# mkdir -p /etc/containerd
root@master:~# containerd config default |tee /etc/containerd/config.toml
然后修改配置文件如下两处:
kubernetes|k8s1.24.3搭建
文章图片

然后重启containerd即可
root@master:~# systemctl daemon-reload
root@master:~# systemctl restart containerd
我们的containerd的也是一个cs架构,服务端叫做containerd,客户端叫做ctr
但是ctr命令不怎么友好,对于从docker切换过来的人来说,我们可以看一下ctr的help就知道了
kubernetes|k8s1.24.3搭建
文章图片

这里我们推荐使用安装kubelet时候带的一个依赖工具,叫做cri-tools,这个可以跟docker比较好的对接(除了镜像制作)
ok,我们现在安装k8s相关组件
root@master:~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
root@master:~# cat </etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
root@master:~# apt-get update
root@master:~# apt-get install kubeadm kubelet kubectl
这里我装的是1.24.3版本 比较新的
kubernetes|k8s1.24.3搭建
文章图片

开启自动补全功能
root@master:~# apt-get install bash-completion
root@master:~# source <(crictl completion bash )
root@master:~# source <(kubectl completion bash )
第一次使用crictl images会报错如下,是因为没有连接到我们的某个container runtime工具作为sock通信,这里我们使用的是containerd,因此要配置成这个
kubernetes|k8s1.24.3搭建
文章图片

接下来配置一下
先使用crictl config runtime-endpoint命令生成crictl的配置文件,然后去修改
root@master:~# crictl config runtime-endpoint
kubernetes|k8s1.24.3搭建
文章图片

接着使用images命令
kubernetes|k8s1.24.3搭建
文章图片

接着去修改containerd的配置文件
root@master:~# vim /etc/containerd/config.toml
kubernetes|k8s1.24.3搭建
文章图片

重启containerd即可。
root@master:~# crictl images
IMAGETAGIMAGE IDSIZE
root@master:~#
然后就可以生成我们的集群init配置文件
root@master:~/k8s# kubeadm config print init-defaults > init.yaml
这里我就改如下几个地方,其他根据需求更改即可
kubernetes|k8s1.24.3搭建
文章图片

使用命令kubeadm init --config=init.yaml即可init集群。
init成功之后,搭建网络插件
Install Calico networking and network policy for on-premises deploymentskubernetes|k8s1.24.3搭建
文章图片

注意第二点即可,我们init的时候,指定的网段是10.96.0.0/12,所以calico.yaml如下修改,然后apply即可kubernetes|k8s1.24.3搭建
文章图片

最终结果如下:kubernetes|k8s1.24.3搭建
文章图片




    推荐阅读