Kubernetes 上的数据已跨越鸿沟:在 GKE 上运行有状态应用程序的案例

Kubernetes 是当今云原生开发的事实上的标准。长期以来,Kubernetes 主要与无状态应用程序相关,例如 Web 和批处理应用程序。然而,与大多数事物一样,Kubernetes 也在不断发展。如今,我们看到 Kubernetes 上有状态应用程序的数量呈指数级增长。事实上,自 2019 年以来,在 Google Kubernetes Engine (GKE) 上运行有状态应用程序的集群数量每年都增加一倍。

如今,Kubernetes 越来越多地用于运行有状态和数据应用程序,例如数据库(Kafka、MySQL、PostgreSQL 和 MongoDB)、大数据(Hadoop 和 Spark)、数据分析(Hive 和 Pig)以及机器学习(TensorFlow 和 PyTorch) 。Airbyte和矢量 DB等现代数据工程工具以及Qdrant、Weaviate和Feast等特征存储使用容器和 Kubernetes 作为默认的自管理计算部署选项。

与此同时,Kubernetes平台工程师越来越熟悉这些数据工具,而数据工程师也越来越熟悉Kubernetes。我们在2022 年 Data On Kubernetes (DoK) 报告中对此进行了报道,客户报告称,通过在 Kubernetes 上运行数据应用程序,生产力提高了 3 倍。此外,超过 41% 的受访者表示,他们计划重新培训或聘用有关 Kubernetes 人才的数据。在 Kubernetes 上运行数据工作负载的推动只会进一步增长。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image5.max-480x294.jpg

图 1. Kubernetes 上的有状态工作负载呈指数级增长(以 Google Kubernetes Engine 为例)

由于多种原因,DoK 是一种很有前途的运行数据工作负载的方法:

1、可扩展性和灵活性

大规模人工智能的计算以 petaFlops 为单位。客户利用 Kubernetes 的规模来运行大型超级计算机。例如,PGS 将其 Cray 替换为基于 GKE 的超级计算机,处理能力为 72.02 petaFLOPS。这相当于世界第七大计算机。

随着大规模计算的出现,需要可扩展的存储。Kubernetes 的灵活性导致了通过容器存储接口 (CSI) 进行存储集成,这为客户提供了广泛的存储选项来访问其数据。

对块和文件存储的支持已经存在一段时间了;最近,新的基于对象存储的 Fuse CSI 驱动程序被证明是与有状态应用程序的流行的新集成。这种需求是由需要高吞吐量和低成本存储的 AI/ML 和数据分析应用程序驱动的。添加 Fuse 层有助于提高可移植性,因为数据科学家在访问对象存储上的数据时可以简单地使用文件语义,而不是使用特定于云提供商的 SDK。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image3.max-600x590.png

图 2. GCS Fuse CSI 允许 Pytorch 和 Tensorflow 上的 AI/ML 应用程序通过文件语义访问对象存储中的数据

2. 韧性

Kubernetes 提供了高度的弹性,可以自动从故障场景中恢复。Kubernetes 可以自动修复,包括自动重新启动失败的容器,它还可以将数据工作负载分布在多个节点上,以提高性能和可用性。例如,您可以使用分散策略跨区域放置副本、设置负载平衡、无缝附加持久卷以及安排备份。您还可以使用 Terraform 等基础设施即代码 (IaC) 工具使其成为可重复的模式。

Kubernetes 进行频繁的更新,这可以被视为对有状态应用程序的破坏。然而,凭借 Pod 中断预算、维护窗口和蓝绿部署,Kubernetes 拥有优雅地管理升级所需的所有自动化功能,使组织能够实现在现代基础设施上运行的好处。

https://storage.googleapis.com/gweb-cloudblog-publish/images/image1.max-892x502.png

图 3.部署在 HA 中的 Kubernetes 上的 Kafka 架构

3、开放性

Kubernetes 是一个社区主导的项目和完全开源的工具(曾经是有史以来增长最快的开源软件),这意味着存在一个由其他开源工具组成的庞大生态系统,旨在与它一起使用。还有丰富的工具和服务生态系统可帮助您管理数据工作负载。您可以使用 Spark、Airflow 和 Kafka 等 Kubernetes 运算符,它们有 OSS 和企业版本。然后还有现代数据工程 OSS 工具,如Airbyte、Feast和矢量数据库(如 Weaviate 和Qdrant),支持容器和 kubernetes 进行自我管理的计算部署。

4. 费用

Kubernetes 允许细粒度的装箱和正确调整资源大小。这为数据应用带来了一定程度的成本优化,而这在传统的虚拟机领域是看不到的。GKE 等托管 Kubernetes 产品现在可为您提供开箱即用的建议,帮助您做出正确调整工作负载大小和提高效率的决策。

https://storage.googleapis.com/gweb-cloudblog-publish/original_images/image4.gif

总而言之,在数据和 AI/ML 应用预计将增长的世界中,Data on Kubernetes 完全有能力成为操作默认选项。要了解有关在 Kubernetes 上运行有状态和数据应用程序的更多信息,请浏览GKE文档中的数据。

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

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

相关文章

在docker中删除none镜像

在构建过Docker镜像的电脑上查看本地镜像列表,有可能看到下图红框中的镜像,在列表中展示为:: 这种镜像在Docker官方文档中被称作dangling images,指的是没有标签并且没有被容器使用的镜像。 官方解释 来自官方的解释如下图红框所…

Springboot配置文件 - 多环境开发、自定义配置文件、多环境开发控制

文章目录 配置文件一、Yaml 文件1.1 修改banner1.2 日志1.3 端口1.4 属性提示消失解决方案 二、Properties 文件三、配置高级3.1 临时属性3.2 临时属性(开发环境)3.3 配置文件四级分类3.3.1 原始配置文件(四级)3.3.2 config目录下…

Rust vs C++ 深度比较

Rust由于其强大的安全性受到大量关注,被认为C在系统编程领域最强大的挑战者。本文从语言、框架等方面比较了两者的优缺点。原文: Rust vs C: An in-depth language comparison Rust和C的比较是开发人员最近的热门话题,两者之间有许多相似之处&#xff0c…

少数人的晚餐-补充

与此相关的四篇博客: 坦然~佛系~_坦然 佛系 zhangrelay-CSDN博客 少数人的晚餐_zhangrelay的博客-CSDN博客 ROS1/2机器人课程的价值和规模-CSDN博客 从2050回顾2020,职业规划与技术路径(节选)补充-CSDN博客 回顾 少数人的晚餐…

手把手教你制作精美的新店开业微传单

如果你准备开设一家新店,那么制作一份具有吸引力的微传单是宣传店铺的重要手段之一。下面,我们将通过乔拓云平台,手把手教你制作一份有吸引力的新店开业微传单。 1. 注册并登录乔拓云账号 首先,你需要在乔拓云官方网站注册一个账号…

加速企业AI实施:成功策略和效率方法

文章目录 写在前面面临的挑战MlOps简介好书推荐 写作末尾 写在前面 作为计算机科学领域的一个关键分支,机器学习在当今人工智能领域中占据着至关重要的地位,广受瞩目。机器学习通过深入分析大规模数据并总结其中的规律,为我们提供了解决许多…

机器学习---BP算法

1. 多级网络 层号确定层的高低:层号较小者,层次较低,层号较大者,层次较高。 输入层:被记作第0层。该层负责接收来自网络外部的信息。 第j层:第j-1层的直接后继层(j>0)&#xff…

使用Kalibr工具线对相机+IMU离线标定

传感器标定的准确后面做算法才会更准确,所以对Kalibr进行学习。 一、Kalibr编译 1、下载kalibr包 GitHub下载地址 2、 解压后放到/catkin_ws/src文件夹下 重新命令文件夹为kalibr 3、 安装依赖库 sudo apt-get install python-setuptools python-rosinstall…

css实现渐变电量效果柱状图

我们通常的做法就是用echarts来实现 比如 echarts象形柱图实现电量效果柱状图 接着我们实现进阶版,增加渐变效果 echarts分割柱形图实现渐变电量效果柱状图 接着是又在渐变的基础上,增加了背景色块的填充 echarts实现渐变电量效果柱状图 其实思路是一…

深度学习(1)---卷积神经网络

文章目录 一、发展历史1.1 CNN简要说明1.2 猫的视觉实验1.3 新认知机1.4 LeNet-51.5 AlexNet 二、卷积层2.1 图像识别特点2.2 卷积运算2.3 卷积核2.4 填充和步长2.5 卷积计算公式2.6 多通道卷积 三、池化层 一、发展历史 1.1 CNN简要说明 1. 卷积神经网络(Convolut…

Spring源码分析 事务 实现原理

文章目录 什么是事务Spring事务管理Spring事务实现原理事务管理器事务定义事务的开启事务核心方法业务代码使用事务TransactionInterceptor 什么是事务 一般所指的事务是数据库事务,是指一批不可分割的数据库操作序列,也是数据库并发控制的基本单位。其…

26591-2011 粮油机械 糙米精选机

声明 本文是学习GB-T 26591-2011 粮油机械 糙米精选机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了糙米精选机的有关术语和定义、工作原理、型号及基本参数、技术要求、试验方法、检 验规则、标志、包装、运输和储存要求。 …

常见列表字典排序

一、列表排序 demoList [1, 3, 2, 4, 9 ,7]res sorted(demoList) # 默认升序# 降序 # res sorted(demoList, reverseTrue)print(res)二、字典排序 demoDict {"篮球": 5, "排球": 9, "网球": 6, "足球": 3}# sorted排序 res so…

Spring面试题21:说一说Spring的@Required注解和@Qualifier注解

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring的@Required注解 @Required ,用于标记在注入的属性上。它表示被注解的属性在配置 Bean 的时候是必需的,如果没有正确配置,则会抛出…

如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解

在当今的数字化时代,应用程序接口(API)已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换,从而促进了信息的广泛传播和利用。在众多的数据源中,商品数据是一个非常重要的领域&#xff0c…

OS 模拟进程状态转换

下面的这个博主写的很好 但是他给的代码print部分和语言风格python三识别不了 这个特别感谢辰同学帮我调好了代码 我放在主页上了 估计过两天就可以通过了 《操作系统导论》实验一:模拟进程状态转换_process-run.py-CSDN博客 这个补充一下他没有的:OS…

R语言随机波动模型SV:马尔可夫蒙特卡罗法MCMC、正则化广义矩估计和准最大似然估计上证指数收益时间序列...

全文链接:http://tecdat.cn/?p31162 最近我们被客户要求撰写关于SV模型的研究报告,包括一些图形和统计输出(点击文末“阅读原文”获取完整代码数据)。 相关视频 本文做SV模型,选取马尔可夫蒙特卡罗法(MCMC)、正则化广…

汽车电子——产品标准规范汇总和梳理(信息安全)

文章目录 前言 一、整车 二、充电接口 三、诊断接口 四、远程接口 五、实施指南 总结 前言 见《汽车电子——产品标准规范汇总和梳理》 一、整车 《GB/T 40861-2021 汽车信息安全通用技术要求》 《GB XXXXX—XXXX 汽车整车信息安全技术要求》 《GB/T 41871-2022 信息…

uni-app:canvas-绘制图形4(获取画布宽高,根据画布宽高进行图形绘制)

效果 代码 var width ; var height ; const query uni.createSelectorQuery(); //获取宽度 query.select(#firstCanvas).fields({ size: true }, (res) > { width res.width; height res.height; }).exec(); console.log(宽度width); console.log(高…

计算机网络 - 链路层

计算机网络 - 链路层 计算机网络 - 链路层 基本问题 1. 封装成帧2. 透明传输3. 差错检测 信道分类 1. 广播信道2. 点对点信道 信道复用技术 1. 频分复用2. 时分复用3. 统计时分复用4. 波分复用5. 码分复用 CSMA/CD 协议PPP 协议MAC 地址局域网以太网交换机虚拟局域网 基本问题…