0

Kubernetes 将彻底改变企业数据库管理? - thenewstack

 2 years ago
source link: https://www.jdon.com/57431
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Kubernetes 将彻底改变企业数据库管理?

Kubernetes 的有状态能力经常受到质疑,而名为 Persistent Sets(“PetSet”)的第一代有状态技术(部分)是罪魁祸首。此功能已被弃用,取而代之的是 Kubernetes 中当前的有状态技术:StatefulSets。它于 2018 年针对 GA(“通用可用性”)发布,如今已在无数解决方案中使用,为 Kubernetes 容器提供持久、非短暂的存储。这就是使Vitess或其他云原生数据库在 Kubernetes 中部署成为可能的原因。

最值得注意的是,StatefulSets 将 PersistentVolumes(“PV”)挂载到容器中。这些 PV 通常由 Kubernetes 节点外部的存储提供,可以是网络驱动器的形式,也可以是软件定义的存储解决方案,例如 OpenEBS。本质上,Kubernetes 和云中使用的存储与您在 AWS 上使用的 EBS 卷或您在 GCP 上使用的 Persistent Disks 相同;我们可以期待同样的成熟度。

当然,Kubernetes 中的数据库性能会受到影响,不是吗?容器被错误地视为“轻量级虚拟机”。它们是非常薄的抽象层,包含由 Linux 内核提供的文件系统、进程和网络空间。如果您仅对数据使用临时容器存储,则可能会产生一些开销。但是,如果您使用外部 PV 存储,则开销可以忽略不计。

那么容器的短暂性会影响数据库的高可用性吗?由于容器只是一个进程的“包装器”,它们的生命周期与进程的生命周期相关。换句话说,容器将与在其中运行的数据库进程一样稳定。

在 Kubernetes 上运行数据库彻底改变了运行数据库的方式

在 Kubernetes 上运行数据库有明显的优势:部署简单、整个堆栈由相同的编排工具管理、自动修复和自动重新配置失败的容器,从而提高可用性。例如,如果运行数据库的节点之一出现故障,Kubernetes 将自动自我修复,将工作负载重新调度到另一个节点上。通过与数据库管理软件的配合,它可以选择一个运行在先前存在的副本上的新数据库主节点,并将新节点重新初始化为新副本,所有这些都是自动的。但是,您希望在 Kubernetes 中运行数据库还有其他更重要的原因。

大多数公司希望将数据库作为 DBaaS(“数据库即服务”)来运行。自我配置自我修复数据库,包括备份和监控。虽然大多数云提供商都提供了这一点,但使用 Kubernetes 自己动手可以节省大量成本,并提供额外的功能,例如多云和云可移植性。

这些功能通过Kubernetes Operators 提供。Operator 是 Kubernetes 的特定于应用程序的扩展,它对部署和操作自动化进行编码,同时向用户公开简单的界面。

在 Kubernetes 上运行数据库不仅是未来,也是现在,正如高盛ZalandoFlipkart等领先公司所展示的那样。与任何技术一样,在部署生产工作负载之前应该进行仔细和客观的评估。

不出所料,2021 年 Kubernetes 数据报告发现,90% 的响应公司认为 Kubernetes 已为有状态工作负载做好准备。这些组织中的大多数 (70%) 在生产中运行有状态的工作负载,其中数据库位居榜首。那些在其上运行 75% 或更多生产工作负载的公司报告说,生产力提高了 2 倍或更高!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK