购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1.4 安装cri-docker

在Kubernetes的早期版本中,Docker被作为默认容器运行时,Kubernetes的早期版本在kubelet程序中开发了一个名为“Dockershim”的代理程序,负责kubelet与Docker之间的通信,如图2-2所示。

图2-2 Kubernetes 1.24版本之前的工作流程

随着Kubernetes生态系统的发展,涌现出多种容器运行时,如containerd、cri-o、rkt等。为了支持这些容器运行时,Kubernetes引入了CRI标准,该标准允许第三方容器运行时只需与CRI对接即可与Kubernetes进行集成。

后来,在Kubernetes 1.20版本发布时宣布:为了优化核心代码,减少维护负担,将在1.24版本中正式移除“Dockershim”,而当时Docker不支持CRI,这就意味着Kubernetes无法再将Docker作为容器运行时。Docker官方为了解决这个问题,与Mirantis公司合作,开发了一个名为“cri-dockerd”的代理程序,负责kubelet与Docker之间的通信,如图2-3所示。

图2-3 Kubernetes 1.24版本之后的工作流程

因此,从Kubernetes 1.24版本及更高版本开始,使用Docker作为容器运行时,需要安装cri-dockerd。你可以在GitHub Releases页面(https://github.com/Mirantis/cri-dockerd/releases)上找到适用于你系统平台版本的安装包,下载该安装包,然后将其上传到所有节点上并进行安装:

     [root@localhost ~]# rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm 

安装完成后,修改Systemd服务文件,将依赖的Pause镜像指定为阿里云镜像地址:

     [root@localhost ~]# vi /usr/lib/systemd/system/cri-docker.service 
     … 
     ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod- 
    infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 
     … 

启动并设置开机启动项: aaTTBoxEu6GNqnULnutMADc8jb9g+ZTF+AF4sqEbn0Aon6HQ65n+J4nH9qX8nVqR

     [root@localhost ~]# systemctl start cri-docker 
     [root@localhost ~]# systemctl enable cri-docker 
点击中间区域
呼出菜单
上一章
目录
下一章
×