综合了解 理解Kubernetes 三大规范接口:CRI、CNI 和 CSI k8s生态布局 含docker0 和 k8s cni0 ~
k8s三大规范接口:容器网络接口 (CNI)、容器运行时接口 (CRI) 和容器存储接口 (CSI)
一 原文,概述文章:
了解 Kubernetes 接口:CRI、CNI 和 CSI - 知乎 (zhihu.com)
CNI 插件并不是 Kubernetes 唯一可用的网络插件。虽然 CNI 插件旨在与 Kubernetes 作为一个平台无缝协作并以更开放的方式提供功能,但您仍然可以选择通过实现基本的cbr0来使用 Kubernetes 插件与 CNI 插件一起工作。
CRI
Container Runtime 是每个 Kubernetes 环境的核心。它基本上是架构的组件,负责组织硬件资源、运行和停止容器,并确保容器接收到最佳运行所需的资源。然而,容器运行时不再是一个受限功能。
容器运行时接口或 CRI 插件允许充分利用新的 CR API。使用正确的插件可以使像Docker 这样的运行时更加灵活。自然地,CRI 插件提供了一个主要好处:它们允许您运行不同的容器运行时,而无需重新编译。
经过仔细检查,CRI 插件提供了三个主要功能,第一个是上述对可互换容器运行时的支持。这意味着您可以在任何阶段出于任何原因更改 Kubernetes 环境使用的运行时。如果您发现一种运行时比另一种更高效,那么现在进行切换很容易。
CRI 还捆绑了协议缓冲区和 gRPC API,因此您可以在环境的一部分中使用 Dart 和 Go 等语言,在另一部分中使用 Python 或 Java。尤其是 gRPC API,它简化了服务定义并使每秒可轻松扩展到数百万个 RPC。RPC 框架旨在运行在任何环境或网络架构之上。
gRPC作为一个组件实际上是非常有趣的。它将负载平衡和健康检查等附加功能集成到 API 中,将它们转换为在较低级别运行的功能。结果是通过协议缓冲区更容易管理服务以及前面提到的轻松扩展。
最流行的 CNI 插件是 CRI-O,它是一个以极其轻巧和灵活着称的容器运行时。它与Kubic(配置为开箱即用地运行 CRI-O)以及Minikube和Kubeadm 一起使用。它完全集成了 Open Container Initiative (OCI) 并消除了对 Docker 的依赖;您可以使用任何 OCI 容器映像运行 Kata Containers 或启动容器。
CSI 允许第三方存储提供商提供持久和动态的存储块,而无需强制集群管理员跳过箍来实现它们。CSI 插件和核心 Kubernetes 卷插件之间的主要区别在于 CSI 插件不需要与核心 Kubernetes 二进制文件一起编译和发布。
二 从架构切入,详解 CRI CNI CSI 文章:
三 详解文章:
(787条消息) 谈谈对K8S CNI、CRI和CSI插件的理解_Spring_java_gg的博客-CSDN博客
CRI
CSI
CNI:
更多推荐
所有评论(0)