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

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

作者 | 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 环境配置指南

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

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

相关文章

SpringCloud应用在Kubernetes上的最佳实践—开发部署

作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。 导读:在上一篇文章《SpringCloud 应用在 Kubernetes 上的云上实践 - 开发篇》中讲到可以通过两个工具,轻松地将一个 SpringCloud 应用从初始化到本地运行。本篇文章&a…

解决谷歌浏览器 google chrome 安装插件报错:Download interrupted,不支持 .crx 文件下载

最近给 新的 macBook Pro 2020 笔记本的 chrome 浏览器安装 react developer tools 时(翻墙情况下),安装总是不成功,有一个弹框提示:Download interrupted。 一开始我以为是第三方插件出了问题,于是我去安…

低代码,让人人都可以是开发者

作者:流水不争先 来源| 技术领导力(ID:jishulingdaoli)头图 | 下载于视觉中国今年2月23日,外国低代码平台提供商Creatio宣布获得6800万美元融资;2月22日,国内SaaS软件厂商黑湖智造宣布完成C轮近5亿元人民币融资。国内外…

秒懂云通信:选云通信到底哪家强?

原文链接 本文为云栖社区原创内容,未经允许不得转载。

H5 中 IOS 系统如何获取浏览器真正的内核

当我们使用 navigator.userAgent 获取 当前浏览器的用户代理,一般通过正则表达式 就可获取到对应的浏览器内核。但是 问题:在ios系统下,无论我们下载什么浏览器(chrome、火狐…),其内核都是safari。 原因…

有效的云安全态势始于三个步骤

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 公共云的采用如今持续增长,到今年年底,预计将有83%的企业工作负载都在云平台中。云计算增加的灵活性和…

妥了!微服务治理的困难,用 Serverless 来解决

作者 | 王科怀(行松)来源 | Serverless头图 | 下载于视觉中国微服务治理面临的挑战在业务初期,因人手有限,想要快速开发并上线产品,很多团队使用单体的架构来开发。但是随着公司的发展,会不断往系统里面添加…

建网站应该选择自己建站还是在线建站?

一、什么是网站? 网上关于网站的定义很多,在此就不想重复了,简而言之网站就是创建者使用技术手段搭建,从而让访客可以通过域名访问并进行互动的互联网页面组合。 通常网站由四个部分组成: 1、域名: 也就…

SVG图片以 https 链接的方式展示在页面上,并且可继承父类的颜色大小(类似阿里巴巴iconfont)

一、背景与问题 1. 背景 在前端的项目开发过程中,我们经常使用到 字体图标库(iconfont),以 ant dezign 为例。 如果在遇到图标库不存在的图标时,我们往往采用自定义图标的方式: 引入自定义的svg图&…

云原生高可用技术体系构建

伴随着互联网业务的高速发展,越来越多的线下场景需要转移到线上,而线上业务的量级也在飞速增长,给互联网业务的技术架构带来了严峻的挑战,原来的“一体机数据库”的方式已经不适用于当前的主流业务,越来越来的业务开始…

容器技术在企业落地的最佳实践

作者 | 易立 阿里云资深技术专家 导读:近年来,容器技术及相关应用得到了国内外越来越多的关注度。在国外,容器技术已经形成了较成熟的生态圈;而在国内,金融企业、互联网企业、IT 企业积极投入容器技术的应用。本文将重…

上手 Docker 容器,不应该是个问题

来源 | 无敌码农责编 | 寇雪芹头图 | 下载于视觉中国在微服务时代,服务数量及规模越来越大,服务的部署及运维的模式如果仍然采用传统方式就会大大增加运维成本。所以微服务时代的运维方式一定是Devops模式,通过构建自动化运维发布平台来打通产…

vue+node前后端分离接口调用(初学者)

一、node编写接口 (设定你已使用Nodeexpress搭建好了项目,可参照我的上一篇博客) 我们就在users.js下进行接口编写 router.get(/getUserInfo,function(req,res,next){var user new User();//解析路由参数var params URL.parse(req.url, tr…

一款App基于mPaaS小程序如何进行改造?

这篇故事围绕着一款 App 基于 mPaaS 小程序进行改造娓娓展开。 作为国内校园服务场景最丰富的平台,笑联 App 已覆盖国内 130 所高校,服务近百万高校学生。 截止目前,笑联 App 内的 12 个业务模块目前已顺利实现小程序化。不仅获得媲美原生应用…

隐秘的角落里数亿场AI战争正在发生

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! "科技领域不做安全风控,就等于造汽车的时候没有做刹车。”蚂蚁集团首席AI科学家漆远这样形容安全风控的地位…

锐捷发布极简以太全光解决方案 打造“不一样”的全光网

3月9日,锐捷网络举办以“不一样的全光网”为主题的媒体发布会,正式对外发布新一代全光网络解决方案——极简以太全光解决方案(以下简称极简光方案)。这个方案正是面向不断升温的全光网络市场需求,针对教育、制造、医疗…

写给迷糊的你看的 浏览器从输入URL到页面渲染过程(呕心泣血 1.6w字)

第一步:用户输入 1、 对用户所输入内容进行解析: 为什么需要解析:判断出所输入的关键字是 搜索内容 还是 URL 搜索内容:地址栏会使用浏览器默认的搜索引擎,来合成带关键字的 URL URL:输入内容符合 URL 规则…

在Saas发展的黄金时代里带你理解SaaS设计

云栖号资讯:【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 导读:软件即服务(英语:Software as a Service,SaaS),亦…

优秀技术人,如何做到高效沟通?

作者 | 鲁佳(鹿迦) 阿里巴巴项目管理专家 导读:世界上有两件最难的事:把别人的钱装进自己的口袋;把自己的思想装进别人的脑袋。 为什么沟通那么重要 谁都知道在工作中沟通是非常重要的,那大家有没有真正想过为什么沟通这么重要…

技术分享助你突破职场瓶颈

IT行业是吃“青春饭”吗?IT行业35岁“中年危机”是否真的存在?个人认为竞争是激烈的,危机是存在的,如何破局成为每一个IT人必须面对的严峻课题。遥想2015年,我的职场生涯度过了轻松的5年,在传统行业过着朝九…