Kubernetes上的数据库

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 【10月更文挑战第16天】数据库在Kubernetes上的应用日益普及,超过72%的组织已在Kubernetes上运行数据库。这得益于Kubernetes的声明式特性和标准化部署,能够加速开发、降低成本、减少复杂性,并提高系统的弹性和正常运行时间。Kubernetes为数据管理提供了自动化操作、环境一致性、数据可移植性和自助服务功能,特别适合现代云原生应用。然而,引入数据库到Kubernetes时需考虑团队技能、自动化支持及存储配置等问题。

数据库在 Kubernetes 中越来越受欢迎;在最近 Portworx 委托进行的使用 Kubernetes 的组织调查中,超过 72% 的受访者表示他们的团队正在Kubernetes 上运行数据库。

显然,围绕Kubernetes 上的数据(DoK) 的讨论已经成熟,因为 Kubernetes 中的持久卷在 2019 年进入通用可用性。拥有更先进 Kubernetes 实践的团队正在超越无状态与有状态应用程序的简单争论以及对持久存储的需求。相反,他们正在考虑容器数据管理层(包括数据库)如何与更广泛的业务目标以及其内部平台的基础设施、开发和交付解决方案相适应。

组织在 Kubernetes 中运行数据库的原因
对于软件、基础设施和平台工程领导者来说,决定在容器中运行数据库并使用Kubernetes进行管理通常归结为以下因素的混合:

开发速度
如果数据是为最终用户提供差异化价值的有效载荷,那么应用程序就是交付工具。例如,社交新闻提要为每个人提供类似的功能,但它依赖于底层数据来确保与读者的相关性。

Kubernetes 的声明式特性允许数据库团队定义一致的部署指南并在开发、登台和生产环境中进行标准化。这消除了数据库配置作为瓶颈,从而更快地为最终用户提供更多价值。

降低成本,减少复杂性
在经济挑战中,数据库团队被要求用更少的资源做更多的事情。他们必须管理更多数据库实例,以更大的规模,来自更多数据库提供商和供应商,并与越来越复杂的基礎設施服務集整合。

Kubernetes 提供了一种降低复杂性的方法,因为它对跨环境的数据库部署的标准化方法简化了维护。虽然托管云数据库提供了部署捷径,但在实践中它们通常会引入更多复杂性,通过管理辅助云服务,并增加了云锁定带来的弊端,这会增加成本并阻碍数据迁移。

降低风险,提高正常运行时间,大规模弹性
Kubernetes 专为运行弹性、可扩展、高弹性的应用程序而设计。为什么不让数据库也从在 Kubernetes 上运行中受益,以及从一个庞大、全球性的云原生社区的集体知识中受益,这些社区正在遵循这些原则进行构建?

何时在 Kubernetes 上运行数据库
如果您的应用程序需要可扩展的、自动化的数据管理,并且摩擦最小,并且您需要在开发、测试和生产环境中保持一致性,那么在 Kubernetes 上运行数据库是一个绝佳的选择。

Kubernetes 的优势包括生命周期管理、自助服务功能和增强的數據可移植性,特别是对于现代的云原生应用程序,其中模式和数据大小可能会快速变化。

Kubernetes 上的数据有哪些好处?
在 Kubernetes 上运行数据库可以实现:

大规模自动化操作和生命周期管理,尤其是在操作符几乎适用于市场上所有数据库解决方案的情况下。
开发、测试和生产环境的一致性。这是Docker容器的最初承诺,但适用于数据库。开发人员可以在minikube上本地部署数据库,并更有信心他们的应用程序将在其他地方按配置运行。
更轻松的数据可移植性,用于近线或本地处理,从而提高性能,减少数据漂移,并提高整体抵御云原生应用程序的波动和弹性的能力。
面向最终用户的自助服务功能,包括开发人员、数据科学家和机器学习运营 (MLOps) 工程师。数据库团队可以提供指南和策略,而最终用户可以对模式、位置和使用情况做出明智的决定。如果数据库与更广泛的开发平台正确集成,数据库管理员 (DBA) 和开发人员都不会承担管理 Kubernetes本身的负担。
其他数据库(例如具有数十年历史交易数据的 TB 级关系数据库管理系统 (RDBMS) 部署或海量非结构化数据湖)具有惯性,不太可能成为容器化的候选者。它们很大,难以移动,并且与支持现代应用程序开发的现代数据库有不同的用途。

在 Kubernetes 上引入数据库时要考虑的事项
假设您的组织已决定不使用托管云数据库或在虚拟机 (VM) 上运行数据库,并且认为更快开发速度、更低成本和降低风险的优势值得向 Kubernetes 上的数据库迈进。在进行此更改时,您和您的团队还应该考虑什么?

作为领导者,您可能会关注团队的优先事项、技能和时间,并相应地投资于技术解决方案。数据库团队通常是数据库专家,而不是 Kubernetes 专家。虽然许多开发人员熟悉容器和 Kubernetes,但他们的主要工作很少包括管理 Kubernetes 部署。

考虑 DBA 或开发人员是否将负责在 Kubernetes 上配置和管理数据库,或者这是否需要更广泛的、由内部开发人员或数据库平台支持的自动化即服务方法。如果是后者,您需要确定内部平台应提供多少级别的 Kubernetes 抽象来支持其他团队。此外,您需要定义如何根据持久卷、存储阵列以及备份或数据保护策略配置容器化数据库。
拥抱 Kubernetes 上的数据
对于刚刚开始 Kubernetes 之旅的组织来说,在 Kubernetes 上运行数据密集型工作负载可能看起来很令人生畏。(如果您的组织现在处于这种状态,您并不孤单!)但这是可以做到的;Rivian等企业正在生产环境中在 Kubernetes 上运行数据库,并在几小时内而不是几天内完成配置,同时提高正常运行时间、弹性和控制成本。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
4月前
|
关系型数据库 分布式数据库 数据库
PolarDB产品使用问题之在部署PolarDB-Kubernetes时,如何设置数据库密码
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
3月前
|
Kubernetes API 数据库
在K8S中,etcd数据库中数据如何更改?
在K8S中,etcd数据库中数据如何更改?
|
3月前
|
存储 Kubernetes NoSQL
在K8S中,etcd是什么类型数据库?
在K8S中,etcd是什么类型数据库?
|
6月前
|
存储 Kubernetes 数据库
​分分钟教你在阿里云 K8s 上部署流数据库 RisingWave
本文主要介绍如何在阿里云【容器服务 Kubernetes 版 ACK】上部署 RisingWave 集群。RisingWave当前提供单机试玩模式,以及基于 K8s 的分布式部署模式,生产中我们只推荐后者。K8s 虽然上手门槛高,但只需按照本篇文章的步骤依次操作,你依然能轻松驾驭一个生产集群。
|
6月前
|
Kubernetes Cloud Native 数据库
云原生|kubernetes|etcd数据库增删改查
云原生|kubernetes|etcd数据库增删改查
109 0
|
6月前
|
Kubernetes 容器 Perl
k8s学习-CKA真题-Etcd数据库备份恢复
k8s学习-CKA真题-Etcd数据库备份恢复
133 0
|
存储 机器学习/深度学习 人工智能
基于 阿里云 ACK 搭建开源向量数据库 Milvus
生成式 AI(Generative AI)引爆了向量数据库(Vector Database)市场,基于大模型的各种应用场景会需要使用到向量数据库。 其中,Milvus 是一个高度灵活、可靠且速度极快的云原生开源向量数据库。它为 embedding 相似性搜索和 AI 应用程序提供支持,并努力使每个组织都可以访问向量数据库。 Milvus 可以存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的十亿级别以上的 embedding 向量。 本文介绍在阿里云ACK上部署Milvus并且通过attu访问的步骤。
3368 0
|
存储 Kubernetes NoSQL
k8s之KubeSphere部署有状态数据库中间件服务 mysql、redis、mongo
k8s之KubeSphere部署有状态数据库中间件服务 mysql、redis、mongo
|
Kubernetes Cloud Native 安全
云原生|kubernetes|etcd数据库增删改查(二)
云原生|kubernetes|etcd数据库增删改查
191 0
|
JSON Kubernetes Cloud Native
云原生|kubernetes|etcd数据库增删改查(一)
云原生|kubernetes|etcd数据库增删改查
353 0