CNCF云原生生态版图-分类指南(三)- 运行时

news2024/12/15 1:52:06

CNCF云原生生态版图-分类指南(三)- 运行时

  • CNCF云原生生态版图-分类指南
    • 三、运行时(Runtime)
      • (一)云原生存储(Cloud Native Storage)
        • 1. 是什么?
        • 2. 解决什么问题?
        • 3. 如何解决问题?
        • 4. 使用的技术
        • 5. 项目和产品整体介绍
      • (二)容器运行时(Container Runtime)
        • 1. 是什么?
        • 2. 解决什么问题?
        • 3. 如何解决问题?
        • 4. 使用的技术
        • 5. 项目和产品整体介绍
      • (三)云原生网络(Cloud Native Network)
        • 1. 是什么?
        • 2. 解决什么问题?
        • 3. 如何解决问题?
        • 4. 使用的技术
        • 5. 项目和产品整体介绍
      • (四)小结
  • 链接

CNCF云原生生态版图-分类指南

三、运行时(Runtime)

在这里插入图片描述

运行时层包含容器在云原生环境中运行所需的一切。包括用于启动容器的代码,称为容器运行时;使持久存储可用于容器的工具;以及管理容器环境网络的 VPN。

但请注意,不能将这些资源与上面讨论的 Provisioning 层处理的网络和存储工作混淆。那些专注于让容器平台运行。该类别中的工具用于启动和停止容器,帮助它们存储数据,并支持它们相互通信。

(一)云原生存储(Cloud Native Storage)

1. 是什么?

存储是存储应用的持久性数据的位置,通常称为持久卷。为了可靠地运行,应用程序需要能够轻松访问存储。通常,当说持久数据时,指的是存储数据库、消息或任何其他信息,并且希望在应用程序重新启动时不会消失。

2. 解决什么问题?

云原生架构具有流畅、灵活且富有弹性的特点,使得容器重启时数据的持久化变得具有挑战性。容器化应用程序为了扩缩容或自我修复,通常会被不断创建和删除,也可能随着时间的推移改变运行的物理位置。这些原因促使云原生环境下的存储必须以独立节点的形式提供。存在如下几个重大挑战:

  • 要存储数据,就需要硬件,而且磁盘与任何其他硬件一样,受基础结构限制,这是我们面临的第一个重大挑战。
  • 然后是实际的存储接口,数据中心之间的存储接口可能存在较大差异(在旧世界中,每个基础设施都有自己的存储解决方案和自己的接口),这使得数据中心难以具备可移植性。
  • 最后,手动资源调配和自动扩展不兼容,因此,为了从云的弹性中受益,必须自动调配存储资源。

云原生存储就是专门为这些新的云原生挑战量身定制的。

3. 如何解决问题?

云原生存储分类中的工具能提供如下的能力:

  1. 为容器提供云原生存储能力。
  2. 标准化容器和存储接口。
  3. 通过备份和恢复提供数据保护。

云原生存储通过使用云原生兼容的容器存储接口和可以自动配置的存储,来消除人力瓶颈,以实现自动扩展和自我修复。

4. 使用的技术

云原生存储的实现主要依赖于容器存储接口 (CSI) ,该接口提供了一组标准 API,为容器提供文件和块存储。该类别中有许多工具,包括开源和供应商提供的工具,它们利用 CSI 为容器提供按需存储。

此外,还有一些技术旨在解决其他云原生存储挑战。Minio 提供了与 S31 兼容的对象存储 API。Velero 等工具有助于简化备份和恢复 Kubernetes 集群本身以及应用程序使用的持久数据的过程。

5. 项目和产品整体介绍

属于云原生存储分类的项目和产品共有 72 个,其中 CNCF 项目有 12 个。这些项目和产品的关键字有:

  • Persistent volume 持久卷
  • CSI 容器存储接口
  • Storage API 存储 API
  • Backup and restore 备份和还原

CNCF 项目如下表所示:

项目CNCF 项目阶段说明
Rook已毕业Rook 将分布式存储系统转变为自我管理、自我扩展、自我修复的存储服务
CubeFS孵化中一款新一代云原生开源存储系统,支持 S3、HDFS2 和 POSIX3 等访问协议
Longhorn孵化中为 Kubernetes 等容器编排平台提供可靠的、持久化的存储解决方案。它允许容器在不同的节点之间迁移时,仍然能够访问和使用之前存储的数据
Carina沙盒一个标准的 kubernetes CSI 插件
Curve已存档一个高性能、轻量级运维、云原生的开源分布式存储系统
HwameiStor沙盒一款 Kubernetes 原生的容器附加存储 (CAS4) 解决方案,将 HDD、SSD 和 NVMe 磁盘形成本地存储资源池进行统一管理,使用 CSI 架构提供分布式的本地数据卷服务,为有状态的云原生应用或组件提供数据持久化能力
K8up沙盒通过与 Kubernetes 紧密集成,为容器化应用提供了可靠的备份和恢复功能,确保应用数据在灾难事件或数据丢失场景下能够得到有效的保护和恢复
Kanister沙盒用于在 Kubernetes 环境下处理复杂的数据操作任务,如备份、恢复、迁移和数据处理等
OpenEBS沙盒提供了灵活的存储选项,能够让用户在容器编排平台中轻松地管理和使用存储资源
ORAS沙盒一个专注于将 OCI5(Open Container Initiative)注册表用作存储的项目
Piraeus Datastore沙盒一个云原生存储系统,可为 Kubernetes 本地持久卷提供动态配置、资源管理和高可用性
Vineyard沙盒用于在数据密集型应用场景中高效地管理和共享数据。它能够跨越不同的计算框架(如 Spark、Pandas 等)和存储系统(如分布式文件系统、对象存储等),为数据的高效处理提供支持

(二)容器运行时(Container Runtime)

1. 是什么?

如容器注册表中所述,容器是一组用于执行(或启动)应用程序的计算约束6。容器化应用程序认为它们正在自己的专用计算机上运行,并且不知道它们正在与其他进程共享资源(类似于虚拟机)。

容器运行时是执行容器化应用程序的软件。如果没有运行时,容器镜像就无法运行起来,它就只是指定容器化应用程序配置的静态文件。运行时将在容器中启动应用程序,并为其提供所需的资源。

2. 解决什么问题?

容器镜像(具有应用程序规范的文件)必须以标准化、安全和隔离的方式启动。标准化是因为需要在标准的操作规则下,保证容器能够在任何地方运行。安全是因为不希望任何不应该访问它的人访问。隔离是不希望应用程序影响其他应用程序或受其他应用程序影响(例如,同地部署应用程序(co-located application7)崩溃,不会相互影响),隔离起到基础的保护作用。此外,还需要为应用程序提供 CPU、存储和内存等资源。

3. 如何解决问题?

容器运行时以标准化的方式在所有环境中启动应用程序,并设置安全边界。该类工具在安全边界设置上会有所不同,比如 CRI-O 或 gVisor 等运行时就大大强化了其安全边界。运行时还要为容器设置资源限制,如果不加限制,应用程序就会按需消耗资源,这可能会造成从其他应用程序抢夺资源的现象,因此最好在运行容器时对使用资源进行限制。

4. 使用的技术

并不是所有的容器运行时工具都采用相同的方式实现。Containerd(著名的 Docker 产品的一部分)和 CRI-O 是标准的容器运行时实现。还有一些工具将容器的使用扩展到其他技术,例如 Kata,它支持将容器作为 VM 运行。其他工具旨在解决与容器相关的特定问题,例如 gVisor,它在容器和操作系统之间提供额外的安全层。

5. 项目和产品整体介绍

属于容器运行时分类的项目和产品共有 20 个,其中 CNCF 项目有 10 个。这些项目和产品的关键字有:

  • Container 容器
  • MicroVM 微型虚拟机

CNCF 项目如下表所示:

项目CNCF 项目阶段说明
containerd已毕业行业标准的容器运行时,强调简单性、健壮性和可移植性
CRI-O已毕业适用于 Kubernetes 的轻量级容器运行时
Inclavare Containers沙盒一种基于硬件安全增强技术的容器解决方案。它主要专注于利用硬件的可信执行环境(TEE,如英特尔 SGX)来提供容器化应用的安全隔离和隐私保护
Krustlet已存档一个用于在 Kubernetes 集群中运行 WebAssembly(Wasm)应用程序的工具
Kuasar沙盒聚焦于提升容器运行的性能、安全性和资源利用效率
Lima沙盒用于在本地环境轻松地运行 Linux 虚拟机,并且这些虚拟机能够很好地支持容器运行时(如 Docker、containerd)
rkt已存档一种轻量级、安全且遵循开放标准的容器技术
Virtual Kubelet沙盒一种伪装成 kubelet 的开源 Kubernetes kubelet 实现
WasmEdge Runtime沙盒将云原生和无服务器应用程序范例引入边缘计算
youki沙盒Rust 中 OCI 运行时规范的实现,类似于 runc8

(三)云原生网络(Cloud Native Network)

1. 是什么?

容器通过云原生网络相互通信以及与基础设施层通信。分布式应用程序具有多个组件,这些组件将网络用于不同的目的。此类别中的工具在现有网络之上创建一个专门用于应用通信的虚拟网络,称为重叠网(overlay network)。

2. 解决什么问题?

虽然通常将容器中运行的代码称为应用程序,但现实情况是,大多数容器只包含大型应用程序的一小部分特定功能。现代应用程序(如 Netflix 或 Gmail)由许多更小的组件组成,每个组件都在自己的容器中运行。为了允许所有这些独立的部分作为一个内聚的应用程序运行,容器需要各自相互通信。此类别中的工具提供专用通信网络。

在容器之间流动的数据和消息可能包含敏感或私有数据。由于云原生网络使用软件来控制、检查和修改数据流,因此管理、保护和隔离容器之间的连接要容易得多。云原生网络的可编程性(programmable)和声明式(declarative)支持通过扩展容器网络和网络策略(例如防火墙和访问规则),以允许应用程序连接到在容器网络外部运行的虚拟机或服务。

3. 如何解决问题?

此类别中的项目和产品使用容器网络接口 (CNI)(一个 CNCF 项目)为容器化应用程序提供网络功能。其中一些工具,如 Flannel,相当简约,为容器提供最基本的连接。其他工具(如 NSX-T)提供完整的软件定义网络层,为每个 Kubernetes 命名空间创建一个隔离的虚拟网络。

容器网络至少需要为每个 Pod 分配 一个IP 地址(这是容器化应用程序在 Kubernetes 中运行的位置),以允许其他进程访问它。

4. 使用的技术

该分类下项目和产品的多样性和创新性,在很大程度上是源自于 CNI(类似于上面提到的 storage 和 Container Storage Interface)。CNI 标准化了网络层为 Pod 提供功能的方式。 为 K8S 环境选择合适的容器网络至关重要,有许多工具可供选择。Weave Net、Antrea、Calico 和 Flannel 都提供了有效的开源网络层。它们的功能差异很大,最终应根据特定需求来进行选择。

许多供应商使用软件定义网络 (SDN) 工具支持和扩展 Kubernetes 网络,提供对网络流量的更多洞察,来更好的实施网络策略,乃至将容器网络和策略扩展到更广泛的数据中心。

5. 项目和产品整体介绍

属于云原生网络分类的项目和产品共有 27 个,其中 CNCF 项目有 10 个。这些项目和产品的关键字有:

  • SDN 软件定义网络
  • Network Overlay 网络叠加

CNCF 项目如下表所示:

项目CNCF 项目阶段说明
Cilium已毕业用于提供、保护和观察工作负载之间的网络连接,由革命性的内核技术 eBPF 提供支持
Container Network Interface (CNI)孵化中一种容器网络规范。它定义了容器运行时和网络插件之间的标准接口,目的是为了让容器能够无缝地连接到各种不同的网络环境,同时也方便网络插件开发者创建能够兼容多种容器运行时的网络解决方案
Antrea沙盒为容器提供网络连接、网络策略实施以及服务发现等功能,旨在简化容器网络的管理并提升网络性能和安全性
CNI-Genie沙盒一个用于容器网络接口(CNI)的多网络插件解决方案。它允许在同一个 Kubernetes 集群中同时使用多个网络插件,为容器提供灵活的网络配置选择,以满足复杂多样的网络需求
FabEdge已存档一个专为边缘计算场景设计的开源 Kubernetes 容器网络解决方案
Kube-OVN沙盒将 SDN 的能力和云原生结合, 提供丰富的功能,极致的性能以及良好的可运维性
kube-vip沙盒一个用于 Kubernetes 集群的虚拟 IP(VIP)管理工具。它主要解决在 Kubernetes 集群中为服务提供高可用的网络访问入口的问题,确保在集群节点故障或网络变化等情况下,服务的 IP 地址始终保持可用
Network Service Mesh沙盒一种用于在云原生环境中管理和交付网络服务的技术。它以服务网格的概念应用于网络服务,将网络功能(如负载均衡、防火墙、加密等)抽象为可管理的网络服务,并通过一个分布式的网状架构来提供、发现和消费这些服务
Spiderpool沙盒一个 Kubernetes 的 underlay9 和 RDMA10 网络解决方案, 它能运行在裸金属、虚拟机和公有云上
Submariner沙盒用于在多个 Kubernetes 集群之间建立安全的网络连接,实现跨集群的服务发现和通

(四)小结

云原生运行时提供了容器在云原生环境中运行所需的所有工具:

  • 云原生存储使应用程序能够轻松快速地访问可靠运行所需的数据。
  • 容器运行时,用于创建和启动执行应用程序代码的容器。
  • 云原生网络为容器化应用程序提供通信连接。

链接

  • CNCF Landscape
  • CNCF LANDSCAPE GUIDE

  1. Amazon S3(Simple Storage Service)是亚马逊公司提供的一种对象存储服务。它允许用户在网络上的任何位置存储和检索任意数量的数据。这些数据被存储为对象,对象可以是文件、图像、视频等各种格式的数据。 ↩︎

  2. HDFS(Hadoop Distributed File System)是一个分布式文件系统,是 Apache Hadoop 项目的核心子项目。它被设计用来在普通硬件构成的集群上存储大规模数据集,并且能够提供高吞吐量的数据访问。例如,像互联网公司存储海量的用户日志数据、搜索引擎存储网页索引等场景都会用到 HDFS。 ↩︎

  3. POSIX(Portable Operating System Interface)是一套 IEEE(电气和电子工程师协会)定义的标准。它的目的是为了在不同的操作系统之间提供一个统一的应用程序接口(API)规范,使得应用程序源代码在经过适当的编译后,可以在多种符合 POSIX 标准的操作系统上运行,提高操作系统之间应用程序的可移植性。 ↩︎

  4. 容器附加存储(Container - Attached Storage,CAS)是一种专门为容器化环境设计的存储方式。它紧密依附于容器,主要用于满足容器对存储的动态、灵活和高性能的需求。与传统存储方式不同,CAS 能够更好地适应容器的生命周期,从容器的创建、运行到销毁的全过程提供适配的存储服务。 ↩︎

  5. Open Container Initiative(OCI)是一个开源的、独立于厂商的容器规范组织。它的成立是为了建立开放的容器标准,确保容器技术在不同的操作系统和云平台之间具有更好的互操作性和兼容性。 ↩︎

  6. 在计算机科学和相关领域,计算约束是指对计算资源(如 CPU、GPU、内存、存储等)的限制或条件。这些约束可以是硬件本身的物理限制,也可以是由软件、系统配置、用户需求或其他因素施加的限制。 ↩︎

  7. “co - located application” 指的是同地部署的应用程序。它是一种软件部署策略,即多个应用程序或应用程序的组件被放置在相同的物理位置或接近的位置,这个位置可以是同一台服务器、同一个数据中心的服务器集群,或者是同一云计算区域内的资源池。 ↩︎

  8. runc 是一个轻量级的、符合 OCI(Open Container Initiative)标准的容器运行时工具。它主要用于创建和运行容器,是容器运行的底层实现之一,在容器生态系统中起着至关重要的作用。例如,在 Kubernetes 等容器编排平台中,runc 常常被用作默认的容器运行时来启动和管理容器。 ↩︎

  9. 在网络和计算机系统领域,“underlay” 通常指底层基础设施或基础网络。它是构建上层网络或应用的基础,提供物理连接、基本的网络拓扑和传输功能等。 ↩︎

  10. RDMA(Remote Direct Memory Access)即远程直接内存访问,是一种用于计算机之间高速数据传输的技术。它允许计算机在不经过操作系统内核的情况下,直接从一个计算机的内存访问另一个计算机的内存,从而实现低延迟、高带宽的数据传输,主要应用于高性能计算、存储系统和数据中心网络等领域。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2259661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法论文/半监督1——2024最新半监督目标检测综述(CNN和Transformer)全文1.5W字

Semi-Supervised Object Detection: A Survey on Progress from CNN to Transformer 摘要 半监督学习的惊人进步促使研究人员探索其在计算机视觉领域内目标检测任务中的潜力。半监督对象检测 (SSOD) 利用小型标记数据集和较大的未标记数据集的组合。这…

LLMC:大语言模型压缩工具的开发实践

关注:青稞AI,学习最新AI技术 青稞Talk主页:qingkelab.github.io/talks 大模型的进步,正推动我们向通用人工智能迈进,然而庞大的计算和显存需求限制了其广泛应用。模型量化作为一种压缩技术,虽然可以用来加速…

【Linux】常用Linux命令大全(持续更新)

前言 汇总常用linux命令及用法,方便大家在日常工作中操作linux的便捷性 一、top命令 top 是一个在 Linux 系统上常用的实时系统监控工具。它提供了一个动态的、交互式的实时视图,显示系统的整体性能信息以及正在运行的进程的相关信息    在键入top命令…

VLC还是SmartPlayer?Windows平台RTSP播放器低延迟探讨

技术背景 好多开发者在用过大牛直播SDK的RTSP播放器后,都希望我们也分享下,如何在Windows平台实现低延迟的RTSP播放?低延迟的RTSP播放器,说起来容易做起来难,下面,我们从以下维度做个探讨: 播…

28. Three.js案例-创建圆角矩形并进行拉伸

28. Three.js案例-创建圆角矩形并进行拉伸 实现效果 知识点 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 3D 场景的主要渲染器。 构造器 WebGLRenderer( parameters : Object ) 参数类型描述parametersObject渲染器的配置参数,可选。 …

启明智显ZX7981PC:5G时代的新选择,全屋网络无缝覆盖

在这个飞速发展的5G时代,每一个细微的科技进步都在推动着我们的生活向更加智能、便捷的方向发展。近日,启明智显再次引领科技潮流,正式发布其最新的5G CPE产品——ZX7981PC。作为继7981PG与7981PM之后的又一次迭代升级,ZX7981PC凭…

Qt控件的盒子模型,了解边距边线和内容区

这篇专门讲讲一个控件在绘制时的视觉样式。我们平常在对控件设置样式时,需要设置控件的一些外边距,内边距,边线,还有文字内容,贴上图片等。那么对于一个控件,到底怎么实现这些设置的呢? 先看下面…

docker简单私有仓库的创建

1:下载Registry镜像 导入镜像到本地中 [rootlocalhost ~]# docker load -i registry.tag.gz 进行检查 2:开启Registry registry开启的端口号为5000 [rootlocalhost ~]# docker run -d -p 5000:5000 --restartalways registry [rootlocalhost ~]# dock…

操作系统(5)进程

一、定义与特点 定义:进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 特点: 动态性:进程是动态创建的,有它自身的生命周期,…

OLLAMA+FASTGPT+M3E 大模型本地化部署手记

目录 1.安装ollama 0.5.1 2.下载大模型 qwen2.5 3b 3.开启WSL 4.更新wsl 5.安装ubuntu 6.docker下载 6.1 修改docker镜像源 6.2 开启WSL integration 7.安装fastgpt 7.1 创建fastgpt文件夹 7.2 下载fastgpt配置文件 8.启动容器 9.M3E下载 9.1 下载运行命令 9.2…

[创业之路-190]:《华为战略管理法-DSTE实战体系》-2-华为DSTE战略管理体系概要

目录 一、DSTE战略管理体系与BLM的关系 1、DSTE战略管理体系概述 2、BLM模型概述 3、DSTE与BLM的关系 二、重新认识流程 1. 流程就是业务本身,流程是业务过程的可视化: 2. 流程是业务最佳路径的经验教训总结: 3. 流程是战略知识资产、…

强化学习路径规划:基于SARSA算法的移动机器人路径规划,可以更改地图大小及起始点,可以自定义障碍物,MATLAB代码

一、SARSA算法概述 SARSA(State-Action-Reward-State-Action)是一种在线强化学习算法,用于解决决策问题,特别是在部分可观测的马尔可夫决策过程(POMDPs)中。SARSA算法的核心思想是通过与环境的交互来学习一…

ABAQUS进行焊接仿真分析(含子程序)

0 前言 焊接技术作为现代制造业中的重要连接工艺,广泛应用于汽车、船舶、航空航天、能源等多个行业。焊接接头的质量和性能直接影响到结构件的安全性、可靠性和使用寿命。因此,在焊接过程中如何有效预测和优化焊接过程中的热效应、应力变化以及材料变形等问题,成为了焊接研…

electron常用方法

一,,electron设置去除顶部导航栏和menu 1,electron项目 在创建BrowserWindow实例的main.js页面添加frame:false属性 2,electron-vue项目 在src/main/index.js文件下找到创建窗口的方法(createWindow)&…

location和重定向、代理

location匹配的规则和优先级 在nginx当中,匹配的对象一般是URI来匹配 http://192.168.233.62/usr/local/nginx/html/index.html 182.168.233.61/ location匹配的分类: 多个location一旦匹配其中之一,不在匹配其他location 1、精确匹配 …

用拉普拉斯变换的方差算法实现相机自动对焦

使用拉普拉斯变换的方差来计算图像的清晰度的主要原因是拉普拉斯算子可以有效检测图像的边缘和高频细节。图像的清晰度与边缘强度和高频分量的丰富程度密切相关,以下是更详细的解释: 1. 拉普拉斯算子的作用 拉普拉斯算子是一种二阶导数算子,定义为: 它可以在图像中检测快…

【考前预习】3.计算机网络—数据链路层

往期推荐 【考前预习】2.计算机网络—物理层-CSDN博客 【考前预习】1.计算机网络概述-CSDN博客 浅谈云原生--微服务、CICD、Serverless、服务网格_云原生cicd-CSDN博客 子网掩码、网络地址、广播地址、子网划分及计算_子网广播地址-CSDN博客 浅学React和JSX-CSDN博客 目录 1.数…

【Kafka】Kafka-Eagle 和 Kafka-UI 的安装使用

前言 Kafka Eagle 提供了完善的管理页面,可以监控 Kafka 集群的整体运行情况,很方便的去管理和可视化 Kafka 集群的一些信息,例如 Broker 详情、性能指标趋势、Topic 集合、消费者信息等,在生产环境中经常使用。 一、MySQL 环境…

HCIA-Access V2.5_2_2_2网络通信基础_IP编址与路由

网络层数据封装 首先IP地址封装在网络层,它用于标识一台网络设备,其中IP地址分为两个部分,网络地址和主机地址,通过我们采用点分十进制的形式进行表示。 IP地址分类 对IP地址而言,它细分为五类,A,B,C,D,E,…

TÜLU 3: Pushing Frontiers inOpen Language Model Post-Training

模型:https://huggingface.co/allenai 技术报告:https://allenai.org/papers/tulu-3-report.pdf 数据集:https://huggingface.co/collections/allenai/tulu-3-datasets-673b8df14442393f7213f372 GitHub:https://github.com/al…