kubernetes - cri-o 套接字 (crio.sock) 与 dockershim 套接字 (dockershim.sock)
问题描述
我对 Kubernetes 非常陌生,并试图了解 crio 与 dockershim 之间的区别。
我正在阅读有关如何安装 kubernetes 的手册,我看到建议将 crio 作为一个步骤(请参阅链接)Container runtimes/cri-o。
然而,当我第一次尝试启动试验时,我更加困惑,我看到默认情况下 kubernetes 使用另一个 cri 工具(dockershim)作为默认 cri 工具,请参见链接crictl/General usage。
我的问题是是否值得通过 CRI-O 的安装程序?我在 centos7 (1.15.1-2.el7) 的最新可用版本中发现了错误。
我还测试了 crio-v1.18.0 并且错误似乎已修复,但在这种情况下,似乎 CRI-O 在使用私有 repo 拉取试点图像时可以连接到端口 10248。
有人可以分享一下吗?尝试修复这些错误是否值得,或者我在这方面花费了太多时间?
解决方案
Kubelet(Kubernetes 的节点守护进程)通过Container Runtime Interface与运行在节点上的容器运行时通信。dockershim
,以及crio
实现 CRI,并充当运行时和 kubelet 之间的连接器,但它们引用不同的容器运行时。
dockershim
是 kubelet 和 docker 之间的连接器crio
是符合 OCI 规范的 kubelet 和运行时之间的连接器(例如:runc)
有很多方法可以设置容器运行时。各种 kubernetes 发行版都使用各种容器运行时作为它们的默认值(例如,Google Kubernetes Engine 在我上次尝试时使用 containerD-shim 安装了 containerD 运行时)
我想说,如果你想开始使用 Kubernetes 并希望它稳定,你应该先从 docker 开始(使用 dockershim 作为 CRI 连接器)。这是使用 K8S 最常用的测试方式。
推荐阅读
- maven - Maven 权限被拒绝。似乎它无法读取自己的 SNAPSHOT 文件
- android - 将 uptimeMillis 转换为 elapsedRealTimeNanos
- java - 如何从日期选择器中获取文本
- logging - 以当地时间显示 Splunk 时间表
- python - shutil.move 不能在磁盘驱动器之间移动文件?
- android - 如何从 mvp 中的另一个片段转到片段
- macos - macOS 10.14 Mojave 上 GTK# 中的字体看起来很粗
- c# - 错误 CS1525:意外符号 `)',需要 `('、`[' 或 `{'
- angular - 使用角度 6 进行业力测试
- git - Git:从远程获取一个分离的 HEAD