CRI定义了pod、image相关的一系列接口,如果要增加一个新的容器引擎,只需要新增一个相应的CRI实现即可。如果runtime是兼容OCI标准的,直接使用现有的cri-o或cri-containerd即可。
通过CRI-tools工具可以很方便地与CRI接口通信,使用起来也很方便(和docker命令类似),而且它提供了crictl pods
(列出pods)之类的好用的命令。
- The differences between Docker, containerd, CRI-O and runc: https://www.tutorialworks.com/difference-docker-containerd-runc-crio-oci/
- Who Is Running My Kubernetes Pod? The Past, Present, and Future of Container Runtimes: https://www.infoq.com/articles/container-runtimes-kubernetes
- Kubernetes 容器运行时演进: https://feisky.xyz/posts/kubernetes-container-runtime/