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

news2024/11/26 3:48:22

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.coloradmin.cn/o/1048342.html

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

相关文章

MySQL学习笔记19

MySQL日志文件:MySQL中我们需要了解哪些日志? 常见日志文件: 我们需要掌握错误日志、二进制日志、中继日志、慢查询日志。 错误日志: 作用:存放数据库的启动、停止和运行时的错误信息。 场景:用于数据库的…

ubuntu apt工具软件操作

apt工具 -----> 网关 国内网络(仓库源) 美国网络(仓库源)/etc/apt/sources.list https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/sudo apt-get update sudo apt install sl 安装包 sudo apt-cache show sl 查看包信…

Jquery 复选框全选和反选失灵的问题

页面上有这么一张表格&#xff0c;点击All时将列表中的复选框全部勾选&#xff0c;反之亦然。 表头&#xff1a; <th><input type"checkbox" id"chkAll" onclick"CheckAll(this)" />All </th> 表格数据源绑定&#xff1a; …

TouchGFX界面开发 | 项目代码结构分析

项目代码结构分析 本文介绍TouchGFX项目中TouchGFX Designer自动生成的代码&#xff0c;以及需要用户编写的扩展代码。 一、生成的代码和用户代码 TouchGFX Designer生成的代码将与用户编写的代码完全分离。 事实上&#xff0c;自动生成的代码位于generated/gui_generated文…

【DTEmpower案例操作教程】智能模型预警

DTEmpower是由天洑软件自主研发的一款通用的智能数据建模软件&#xff0c;致力于帮助工程师及工科专业学生&#xff0c;利用工业领域中的仿真、试验、测量等各类数据进行挖掘分析&#xff0c;建立高质量的数据模型&#xff0c;实现快速设计评估、实时仿真预测、系统参数预警、设…

全面解析‘’vcomp140.dll,无法继续执行代码怎么修复,解决方法分享

在我最近的一次的打开电脑软件过程中&#xff0c;我遇到了一个棘手的问题&#xff1a;我的计算机无法启动&#xff0c;系统提示找不到vcomp140.dll文件。这个文件是Windows操作系统的一个重要组件&#xff0c;如果丢失或损坏&#xff0c;可能会导致系统无法正常运行。我决定挑战…

详解 TCP 原理

TCP 一、TCP 报文协议段二、TCP 原理1、确认应答机制2、超时重传机制3、连接管理机制4、滑动窗口5、流量控制6、拥塞控制7、延时应答8、捎带应答9、面向字节流&#xff08;粘包问题&#xff09;10、异常情况&#xff08;机器掉电/网线断开&#xff1a;心跳包&#xff09; 一、T…

TouchGFX界面开发 | 按钮控件应用示例

按钮控件应用示例 按钮是最常见的部件之一&#xff0c;有了按钮就可以点击&#xff0c;从而响应事件&#xff0c;达到人机交互的目的。TouchGFX Designer内置了七种按钮部件&#xff1a; 下压按钮&#xff1a;能够在被释放时发送回调&#xff0c;按下和释放状态都关联了图像标…

AI算法+视频技术助力构建智慧城管解决方案,实现城市管理精细化

一、背景分析 物联网、大数据、移动互联网等技术的日新月异&#xff0c;城市管理对信息资源需求的日益提升&#xff0c;广大市民对政府服务新的诉求&#xff0c; 智慧城管正面临千载难逢的发展机遇。 发展历程&#xff1a; 1&#xff09;数字城管&#xff1a;城市管理机制的…

RecycleView刷新功能

RecycleView刷新某一个Item&#xff0c;或这某一个Item中某一个View。 这样的需求&#xff0c;在实际的开发中是很普遍的。 在数据变化后需要刷新列表。 刷新列表有三种方式&#xff1a; 前两种大家应该很熟&#xff0c;第三中会有点陌生。 那么这三种方式&#xff0c;有什…

google的日志glog安装及使用

1.glog glog是google出的一个轻量级的c日志库 2.下载及编译 下载或克隆库&#xff0c;我选择的是V0.6.0版本&#xff1a; github.com/goolge/glog/releases/tag/v0.6.0 我用cmake编译&#xff08;参考&#xff1a;github.com/google/glog#cmake&#xff09; 按照说明步骤进…

【运维知识高级篇】超详细的Jenkins教程4(参数化构建+脚本传参+代码秒级发布+秒级回滚)

之前我们介绍的大多是测试环境的推送&#xff0c;在生产环境中&#xff0c;我们不会用到那么多次的构建测试&#xff0c;但是会涉及稳定版本的发布和回滚&#xff0c;我们也通过jenkins配合gitlab去实现&#xff0c;通过远程仓库的tag传递参数&#xff0c;我们把这种方式称为参…

企业会议新闻稿怎么写?会议类新闻稿如何撰写?

企业会议新闻稿是企业对外传递信息的重要途径之一&#xff0c;它能够将企业的决策、动态以及成果展示给公众。本文伯乐网络传媒将详细解析企业会议新闻稿的写作要点和技巧&#xff0c;以及常见问题及解决方法&#xff0c;帮助大家更好地完成企业会议新闻稿的撰写工作。 一、企业…

Spring Mvc的相关知识

一、初识MVC 1.Spring Mvc 是控制层的Spring框架&#xff0c;替换Servlet&#xff0c;除了它以外&#xff0c;还有 struct1和 struct2 区别&#xff1a; 1.struct1被struct2 取代 2.struct2&#xff1a;采用 prototype多例模式&#xff0c;内存消耗快&#xff0c;经常会出现内存…

RocketMQ Promethus Exporter

介绍​ Rocketmq-exporter 是用于监控 RocketMQ broker 端和客户端所有相关指标的系统&#xff0c;通过 mqAdmin 从 broker 端获取指标值后封装成 87 个 cache。 警告 过去版本曾是 87 个 concurrentHashMap&#xff0c;由于 Map 不会删除过期指标&#xff0c;所以一旦有 la…

python实现遗传算法,并绘制训练过程以及参数对比

前言: 本实验使用遗传算法寻找3维函数的最大/最小值&#xff0c;并对基因位数&#xff0c;种群初始大小&#xff0c;每次死亡个数&#xff0c;适应度计算方式这些参数进行修改&#xff0c;对比结果。 初始代码如下&#xff1a; import numpy as np import matplotlib.pyplot …

【atcoder】abc312~abc321题解

UNIQUE VISION Programming Contest 2023 Summer(AtCoder Beginner Contest 312) A 把信息存进去然后找就行。 B 枚举右上角&#xff0c;然后模拟判断即可。 C 二分这个 X X X &#xff0c;然后判断即可。 D 典型的括号类的 d p dp dp 。 d p i , j dp_{i, j} dpi,j​…

Python大数据之Python进阶(二)多任务编程-进程

文章目录 多任务编程-进程本章节学习目标本章节常用单词 多任务的介绍1. 提问2. 多任务的概念多任务3. 多任务的执行方式4. 小结 进程1. 进程的介绍2. 进程的概念3. 进程的作用4. 小结 多任务编程-进程 本章节学习目标 能够知道多任务的执行方式能够知道进程的作用能够使用多…

代理IP对企业网络安全的重要性

随着科技的快速发展&#xff0c;网络已经成为企业运营的重要工具&#xff0c;然而与发展相伴的网络安全问题也日趋复杂&#xff0c;为了降低数据和隐私泄露的风险&#xff0c;企业必须给予足够的重视&#xff0c;采取全面的网络安全应对措施来降低风险&#xff0c;维护企业形象…