说明:最新的1.24版本废弃了dockershim
这里我们使用containterd来管理容器镜像
我的系统环境(Ubuntu22.04这个太坑了,还是20.04好搭些)
文章图片
源使用的是清华
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 disabledok,现在开始安装containerd,直接apt-get install containerd 即可
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
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
文章图片
然后重启containerd即可
root@master:~# systemctl daemon-reload我们的containerd的也是一个cs架构,服务端叫做containerd,客户端叫做ctr
root@master:~# systemctl restart containerd
但是ctr命令不怎么友好,对于从docker切换过来的人来说,我们可以看一下ctr的help就知道了
文章图片
这里我们推荐使用安装kubelet时候带的一个依赖工具,叫做cri-tools,这个可以跟docker比较好的对接(除了镜像制作)
ok,我们现在安装k8s相关组件
root@master:~# curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -这里我装的是1.24.3版本 比较新的
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
文章图片
开启自动补全功能
root@master:~# apt-get install bash-completion第一次使用crictl images会报错如下,是因为没有连接到我们的某个container runtime工具作为sock通信,这里我们使用的是containerd,因此要配置成这个
root@master:~# source <(crictl completion bash )
root@master:~# source <(kubectl completion bash )
文章图片
接下来配置一下
先使用crictl config runtime-endpoint命令生成crictl的配置文件,然后去修改
root@master:~# crictl config runtime-endpoint
文章图片
接着使用images命令
文章图片
接着去修改containerd的配置文件
root@master:~# vim /etc/containerd/config.toml
文章图片
重启containerd即可。
root@master:~# crictl images然后就可以生成我们的集群init配置文件
IMAGETAGIMAGE IDSIZE
root@master:~#
root@master:~/k8s# kubeadm config print init-defaults > init.yaml这里我就改如下几个地方,其他根据需求更改即可
文章图片
使用命令kubeadm init --config=init.yaml即可init集群。
init成功之后,搭建网络插件
Install Calico networking and network policy for on-premises deployments
文章图片
注意第二点即可,我们init的时候,指定的网段是10.96.0.0/12,所以calico.yaml如下修改,然后apply即可
文章图片
最终结果如下:
文章图片
推荐阅读
- Docker容器+k8s|Docker网络详解
- Linux根目录结构
- 生活篇|Python pywifi 、Kali linux aircrack-n、Hashcat 【python、kali】破解无线WiFi密码(详细流程)
- Linux系列之进程管理
- Java 并发编程解析 | 关于线程机制的那些事,你究竟了解多少()
- 消息中间件解析 | 如何正确理解软件应用系统中关于系统通信的那些事()
- DNS、ICMP、以及NAT技术
- Linux|Linux系统的介绍和使用
- python|编译安装 Python