在《俯瞰云原生,这便是供应层》我们介绍了云原生全景图的最底层:供应层,本文将带大家了解运行时层,这一层包含了容器在云原生环境中运行所需的一切。

作者 | Catherine Paganini,Jason Morgan

来源 | K8sMeetup社区

头图 | 下载于视觉中国

在《俯瞰云原生,这便是供应层》中,我们探索了构建云原生平台和应用的基础,本文我们将一起了解运行时层(runtime),这一层包含了容器在云原生环境中运行所需的一切。即:启动容器的代码,也叫运行时引擎;使容器获得持久化存储的工具;以及管理容器环境网络的工具。

但是注意,不要将这一层的资源与基础设施和供应层的网络和存储弄混淆,后者的工作是让容器平台运行起来。容器直接使用运行时层的工具来启动或停止,存储数据,以及相互通信。

云原生存储

是什么

存储是存放一个应用程序持久数据的地方,也叫做持久卷(persistent volume)。轻松访问持久卷对于应用程序可靠运行至关重要。通常,当我们说持久数据的时候,我们是指数据库、消息之类的,或其他任何在应用重新启动时不会丢失的信息。

解决什么问题

云原生架构具有高度的灵活性和弹性,这使得重启应用时存储持久数据变得很有挑战性。容器化应用程序在扩容、缩容或自动恢复时,会不断地创建或删除实例,并随着时间改变物理位置。因此,必须以与节点无关的方式提供云原生存储。但是,要存储数据,就需要硬件(具体来说是磁盘)。磁盘和其他硬件一样,受到基础设施的限制。这是第一个大的挑战。

第二个挑战是存储接口。该接口在数据中心之间可能会发生很大的变化(在以前,不同的基础设施都有自己的存储解决方案,并带有自己的接口),这使得可移植性变得非常困难。

最后,由于云的弹性,存储必须以自动化方式进行配置,因为手动配置和自动扩展不兼容。面临以上这些问题,云原生存储就是为新的云原生环境量身定制的。

如何解决

该类别的工具可以:

  • 为容器提供云原生存储选项;

  • 标准化容器与存储提供者之间的接口;

  • 通过备份和还原操作提供数据保护。

云原生存储意味着使用兼容云原生环境的容器存储接口(也就是下一个类别中的工具),并且可以自动配置,通过消除人力瓶颈从而实现了自动扩展和自我恢复。

对应工具

容器存储接口(CSI)在很大程度上使云原生存储变成了可能。CSI 允许使用标准 API 向容器提供文件和块存储。该领域中有很多工具,既有开源的也有供应商提供的,都可利用 CSI 为容器提供按需存储。

除了这一及其重要的功能,还有一些其他的工具和技术旨在解决云原生空间中的存储问题。Minio 是一个受欢迎的项目,它提供了兼容 S3 的 API 用于对象存储。Velero 之类的工具可帮助简化 Kubernetes 集群本身以及应用程序使用的持久化数据的备份和还原过程。

容器运行时

是什么

前面我们提到过,容器是一组用于执行应用程序的技术约束。容器化的应用程序相信自己正在专用计算机上运行,而忽略了它们其实是与其他进程(类似于虚拟机)共享资源。

容器运行时是执行容器化(或“隔离”)应用的软件。如果没有运行时,将只有容器镜像——指定容器化应用程序外观的文件。运行时将在容器中启动应用程序,并为其提供所需的资源。

解决的问题

容器镜像(带有应用程序规范的文件)必须以标准化、安全和隔离的方式启动:

  • 标准化:无论它们在何处运行,都需要标准操作规则;

  • 安全:访问权限应该要注意设置;

  • 隔离:该应用程序不应影响其他应用程序或受到其他应用程序的影响(例如,位于同一位置的应用程序崩溃)。隔离基本上起到保护作用。

此外,必须为应用程序提供 CPU、存储、内存等资源。

如何解决

容器运行时可以完成所有这些工作。它以标准化方式在所有环境中启动应用程序,并设置安全边界。安全边界是运行时和其他工具不同的地方,CRI-O 或 gVisor 等运行时强化了它们的安全性边界。运行时还为容器设置资源限制。没有资源限制,应用程序可能会根据需要消耗资源,这样就有可能占用其他应用程序的资源。因此设置资源限制是很必要的。

对应的工具

不是所有此类别中的工具都一样。Containerd(Docker 产品的一部分)和 CRI-O 是标准的容器运行时实现。有一些工具可以将容器的使用扩展到其他技术,例如 Kata,它允许将容器作为 VM 运行。其他工具旨在解决与容器相关的特定问题,例如 gVisor,它在容器和 OS 之间提供了额外的安全层。

云原生网络

是什么

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

解决什么问题

通常我们将在容器中运行的代码称为应用程序,但实际上,大多数容器中仅包含大型应用程序的一小部分特定功能。诸如 Netflix 或 Gmail 之类的现代应用程序实际上由许多较小的组件组成,每个组件都在自己的容器中运行。为了使所有这些独立的部分正常运行组成一个完整的应用,容器之间需要相互通信。此类别的工具就提供该专用通信网络。

此外,这些容器之间交换的消息可能是私密的、敏感的或者非常重要的。这导致了其他要求:例如为各种组件提供隔离,检查流量以识别网络问题的能力。在某些情况下,可能还需要拓展这些网络及网络策略(如防火墙和访问规则),以便应用程序可以连接到容器网络外部运行的 VM 或服务。

如何解决

此类别中的项目和产品使用 CNCF 中的项目——容器网络接口(Container Network Interface, CNI)为容器化应用提供网络功能。某些工具(例如 Flannel)仅为容器提供基本连接。其他工具(如 NSX-T)提供了完整的软件定义网络层,可为每个 Kubernetes 名称空间创建一个隔离的虚拟网络。

容器网络至少应该能为 Pod(Kubernetes 中运行容器化应用的地方)分配 IP 地址,以允许其他进程访问。

对应工具

CNI 标准化了网络层为 Pod 提供功能的方式,这在很大程度上实现了该领域的多样性和创新性。为 Kubernetes 环境选择网络非常关键,有许多工具可选。Weave NetAntreaCalicoFlannel 均提供有效的开源网络层,它们的功能各不相同,应根据特定需求进行选择。

此外,许多供应商已准备好使用软件定义网络(SDN)工具来支持和扩展 Kubernetes 网络,这些工具可使你深入了解网络流量,执行网络策略,甚至将容器网络和策略扩展到更广泛的数据中心。

本文是对运行时层的概述,该层提供了容器在云原生环境中运行所需的工具,包括:

  • 存储:使应用程序轻松快速访问运行所需的数据;

  • 容器运行时:执行应用程序代码;

  • 网络:确保容器化应用程序之间的通信。

在下一篇文章中,我们将探索编排和管理层,该层处理的是如何将所有容器化应用程序作为一个组进行管理。

点击关注我们,记得标星哦~~~

更多阅读推荐

  • 一张魔力象限图,一眼看尽5G江湖

  • SRE 是如何保障稳定性的

  • 如何写出让 CPU 跑得更快的代码?

  • 俯瞰云原生,这便是供应层

  • 13种重要的云原生工具,让交付过程更快

  • 一目了然的 Docker 环境配置指南

三探云原生全景图,这次聊聊运行时层相关推荐

  1. 云原生全景图之六 | 托管 Kubernetes 和 PaaS 解决什么问题

    作者 | Catherine Paganini.Jason Morgan 来源 | K8sMeetup 头图 | 下载于视觉中国 在本系列之前的文章中,我们讨论了 CNCF 云原生全景图的各层:供应层 ...

  2. 云原生全景图之四:编排和管理层

    前文已经介绍了应用程序设置了运行时(运行时层),本文将介绍如何将所有应用程序组件作为整体来编排和管理(编排和管理层). 来源 | K8sMeetup 作者 | Catherine Paganini.J ...

  3. 一文带你理解云原生 | 云原生全景图详解

    关注「开源Linux」,选择"设为星标"回复「学习」,有我为您特别筛选的学习资料~ 1带你了解云原生技术图谱 如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原 ...

  4. 史上最全云原生全景图解读攻略

    带你了解云原生技术图谱 ​如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原生全景图.这张全景图技术之多.规模之大无疑会让人感到震惊,那么我们该如何去理解这张图呢? 如果把它拆开来 ...

  5. 必看!史上最全云原生全景图解读攻略来啦

    来源 | 尔达 Erda 公众号 ​ 带你了解云原生技术图谱 ​ 如果你研究过云原生应用程序和相关技术,大概率你遇到过 CNCF 的云原生全景图.这张全景图技术之多.规模之大无疑会让人感到震惊,那么我 ...

  6. 应云而生,幽灵的威胁 - 云原生应用交付与运维的思考

    作者 | 易立  阿里云资深技术专家 来源|阿里巴巴云原生公众号 本系列文章: 第一篇 - 云原生基础设施 第二篇 - 云原生软件架构 第三篇 - 云原生应用交付与运维(本文) 过去的 2020 是充 ...

  7. 应云而生,幽灵的威胁 - 云原生应用交付与运维

    简介:过去的 2020 是充满不确定性的一年,但也是充满机遇的一年.突发的新冠疫情为全社会的数字化转型按下加速键.云计算已经不再是一种技术,而是成为支撑数字经济发展和业务创新的关键基础设施.在利用云计 ...

  8. 俯瞰云原生,这便是供应层

    来源 | K8sMeetup社区 作者 | Catherine Paganini,Jason Morgan 头图 | 下载于视觉中国 在都在说云原生,它的技术图谱你真的了解吗?中,我们对 CNCF 的 ...

  9. 始于阿里,回归社区:阿里8个项目进入CNCF云原生全景图

    破土而出的生命力,源自理想主义者心底对技术的信念. 云原生技术正席卷全球,云原生基金会在去年KubeCon +CloudNativeCon NA的现场宣布: 其正在孵化的项目已达14个,入驻的厂家或产 ...

最新文章

  1. 分库分表介绍和Sharding-JDBC快速入门
  2. VTK:几何对象之Cone
  3. 学习网站分享 - 菜鸟教程
  4. 从第一范式到第二范式所做的操作是_给女同事讲解MySQL数据库范式与反范式,她直夸我“技术好”
  5. java default parameter_Java Parameter.DefaultBounds方法代码示例
  6. 一键锁屏_ios快捷指令一键登录校园网(桂航为例,哆点认证)
  7. 想快速拥有个人网站?来试试这个...
  8. emplace_back和push_back区别
  9. php mysql 到表最后_如何在PHP中获取MySQL表的最后插入ID?
  10. Learning SQL--多表查询
  11. C++ 调用批处理命令或者.bat(.cmd)文件或者.exe文件
  12. Java-----Excel转HTML
  13. xp重启计算机的快捷键,xp电脑关机重启快捷键是什么
  14. [Unicode] Unicode的上标与下标
  15. 【C语言】动态内存开辟
  16. 湖南学计算机专业单招学校排名,湖南学计算机那个单招学校比较好(湖南民族职业学院)...
  17. 强大的GeoPandas,几行代码实现点转线功能
  18. 零基础入门 自学 JAVA SE 基础篇(九)instanceof final 开闭原则 多态 抽象(abstract)方法与抽象类 接口(interface)
  19. 971. 翻转二叉树以匹配先序遍历
  20. 名创优品营收增速再下降:年收入和豪言还差900亿,高瓴抄底失败

热门文章

  1. python怎么控制速度_如何控制python的ThreadPoolExecutor的吞吐量速度?
  2. geoserver发布瓦片_Geoserver2.15.1配置自带GeoWebCache 插件发布ArcGIS Server瓦片
  3. 苹果无线耳机使用方法_苹果官方:如果 AirPods Pro 出现这些问题,我们将免费更换!...
  4. oracle 时间集合,oracle 日期函数集合(集中版本)第2/2页
  5. 惠安七号机器人创意园_我是F518创意园,请为我投票!
  6. linux对当前使用的分区分割,实例解说Linux中fdisk分区使用方法
  7. python旋转排序数组_LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现...
  8. Prime算法生成迷宫
  9. 6还是5?大还是小?看完这些动图,感觉数学白学了
  10. 线性代数拾遗(四):线性方程组的应用