背景
在kubernetesv1.24之后已经正式移除docker作为容器运行了,现在大部分都用containerd。
containerd自带的crictl和ctr命令虽然能够简单的管理,但是并不好用,比如说不支持build镜像。因此推荐nerdctl命令来管理。
nerdclt兼容原来docker的大部分命令,可以直接通用。
安装准备
准备nerdctl、buildkit、buildctl三个工具。
buildkit 是服务端,他负责访问后端容器工具containerd。
buildctl nerdctl 是客户端,在这我们不用buildctl,用nerdctl。
附上github链接,请自行下载:
nerdctl
https://github.com/containerd/nerdctl/releases
buidkit
https://github.com/moby/buildkit/releases
根据自己的系统下载相应的二进制包。
注意:
问题1:
使用nerctl的会造成所在服务器的calico-node出问题,报错内容为:
BGP not established
因为calico获取的网卡和nerctl生成的冲突了。所以需要修改calico的yaml文件。
name: calico-node
在containers.env字段下,下面的ens根据自己的网卡名称修改,添加:
- name: IP_AUTODETECTION_METHOD
value: "int