返回顶部
首页 > 资讯 > 数据库 >Kubernetes中怎么运行数据库服务
  • 174
分享到

Kubernetes中怎么运行数据库服务

2024-04-02 19:04:59 174人浏览 独家记忆
摘要

今天就跟大家聊聊有关kubernetes中怎么运行数据库服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.为何在 Kubernetes 上部署有

今天就跟大家聊聊有关kubernetes中怎么运行数据库服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1.为何在 Kubernetes 上部署有状态应用比较困难?

我们能不能在 Pod  模板上附加一个卷?这难道还不够吗?从理论上讲,你的应用现在就可以写入磁盘,但如果容器重启或移动到另一个节点的话,那么这个卷将会被重新附加到容器的新位置。

对于简单的案例来说,确实如此。但是对于 elasticsearch、etcd、Consul 等服务来说,情况就要复杂得多了。

这些服务有一些常规 Kubernetes 部署控制器无法满足的要求。

例如,你可能需要为每个 Pod 提供可预测的 DNS 名称,以便使初始集群形成更加容易。或者,你部署的系统,可能需要确保 Pod  将按某种预定义的顺序来启动容器。

此外,你还可能希望为每个 Pod 创建并附加单独的卷,这些卷将在整个 Pod 的生命周期中与其绑定。对于常规  Pod,你只能附加一个卷,这个卷将在同一部署创建的所有 Pod 之间共享。

我们也没有提到如何操作数据库。你还需要确保制定一个计划,确定何时以及如何执行备份,或者在发生错误时如何执行恢复 / 故障转移。

2.运行有状态应用的可用选项

以下是一些关于如何在 Kubernetes 上部署数据库的几个选项。

(1)StatefulSet

StatefulSet,是一个内置的控制器(译者注:原称 PetSet,首次出现在 Kubernetes 1.4,后在 1.5 更名为  StatefulSet),本质上类似于 Kubernetes 的部署。

最终,它将基于你将指定的 Pod 模板创建和管理一组 Pod。

主要区别在于,它为底层应用提供了以下保证:

  • 每个 Pod 都有一个稳定、唯一的网络标识符。

  • 每个 Pod 可能有一个稳定的、持久的存储卷。

  • 部署、扩展或终止都将是有序而优雅地执行。

下面是一些使用 StatefulSet 的开源数据库部署实现的示例:

  • Kubernetes Elasticsearch Cluster,作者:Paulo Pires

https://GitHub.com/pires/kubernetes-elasticsearch-cluster/tree/master/stateful

  • Consul on Kubernetes,作者:Kelsey Hightower

Https://github.com/kelseyhightower/consul-on-kubernetes

StatefulSet 是通用的,因此你可以使用它们来对数据库的约束聚簇构造(unique cluster fORMation)或主 /  从架构进行建模。

然而,最终的结果将在操作方面有所欠缺。你将需要添加其他资源或自动化,以确保能够执行定期备份或添加处理诸如故障转移等边缘情况的脚本。

最终,使用 StatefulSet 为更复杂的有状态服务建模可能会有点笨拙的感觉,并且还不是 Kubernetes  原生的,而且,如上所述,它还将缺乏管理自动化。这就是 Operator 发挥作用之处:

StatefulSet 是 Kubernetes 提供的管理有状态应用的负载管理控制器 api。在 Pod 管理的基础上,保证 Pod 的顺序和一致性。与  Deployment 一样,StatefulSet 也是使用容器的 Spec 来创建 Pod,与之不同 StatefulSet 创建的 Pod  在生命周期中会保持持久的标记(例如 Pod Name)。简单地说,StatefulSet 是一个给 Pod  提供唯一标志的控制器,它可以保证部署和扩展的顺序。

(2)Operator

如果你决定在 Kubernetes 上运行数据的原因之一,是为了统一所有应用程序组件的管理,那么 Operator 可能会提供你想要拥有的体验!

与其将应用程序放入 StatefulSet 模型中,不如编写(或者使用其他人的)自定义控制器。

作为用户,这允许你使用 Kubectl CLI 来控制有状态应用,将其作为本地 Kubernetes 资源。例如,如果你部署了 etcd  Operator,那么可以使用下面的 kubectl 命令检查集群的备份状态:

kubectl get EtcdBackup example-etcd-cluster

与 StatefulSet 相比,Operator 的主要优势在于,它们添加了一个自动化层,该层对于其操作的有状态应用是独有的。你无需担心如何在  Elasticsearch 集群中添加备份 cron,该集群使用 StatefulSet 实现。使用  Operator,你只需指定存储此备份的存储桶即可。

不幸的是,由于编写新的 Operator 除了需要了解有状态应用的细节之外,还需要了解 Kubernetes 及其 API,因此,目前可用的  Operator 并不多,而且现有的 Operator 仍然相对较新。

译注:Operator 是 CoreOS 推出的旨在简化复杂有状态应用管理的框架,它是一个感知应用状态的控制器,通过扩展 Kubernetes API  来自动创建、管理和配置应用实例。Operator 基于 Third Party Resources  (CRD)扩展了新的应用资源,并通过控制器来保证应用处于预期状态。比如 etcd operator 通过下面的三个步骤模拟了管理 etcd 集群的行为:通过  Kubernetes API 观察集群的当前状态;分析当前状态与期望状态的差别;调用 etcd 集群管理 API 或 Kubernetes API  消除这些差别。

(3)其他

本节提到的定义较少,主要是为了说明对于特定的数据库,比如我们稍后将看到的 postgresql 示例,还有其他选项可以将它们作为 Docker 容器在  Kubernetes 上部署和管理。

有时,除了 StatefulSet 或专用的 Operator 实现之外,还有其他可用的选项。

例如,Stolon 是一个“Postgresql 高可用性的云原生 PostgreSQL 管理器”,虽然我个人还没有机会使用它,但看到过一些帖子中提到了  Stolon。

要在 Kubernetes 上部署 Stolon,可以使用提供的 StatefulSet 定义。但是,由于 Stolon  的功能,你不需要添加自己的集群管理自动化来控制 PostgreSQL 集群。Stolon 为此提供了自己的 CLI。

看完上述内容,你们对Kubernetes中怎么运行数据库服务有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网数据库频道,感谢大家的支持。

您可能感兴趣的文档:

--结束END--

本文标题: Kubernetes中怎么运行数据库服务

本文链接: https://lsjlt.com/news/58689.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Kubernetes中怎么运行数据库服务
    今天就跟大家聊聊有关Kubernetes中怎么运行数据库服务,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.为何在 Kubernetes 上部署有...
    99+
    2024-04-02
  • 在Kubernetes上运行MySQL数据库 Running MySQL on Kubernetes
    作者:禅与计算机程序设计艺术 1.简介 Kubernetes是一个开源系统用于自动部署、扩展和管理容器化的应用,在该系统中部署MySQL数据库也是同样重要的工作。本文将详细阐述如何在Kubernete...
    99+
    2023-09-30
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • (八) 在Kubernetes上运行MySQL数据库 Running MySQL on Kubernetes
    作者:禅与计算机程序设计艺术 1.简介 Kubernetes(简称K8s)是一个开源的、用于管理云平台中容器化的应用的开源系统。在Kubernetes的框架下,可以轻松部署容器化的应用程序,同时让它...
    99+
    2023-09-24
    自然语言处理 人工智能 语言模型 编程实践 开发语言 架构设计
  • 云服务器上怎么运行数据库
    在云服务器上运行数据库主要有以下几个步骤:1. 选择合适的数据库软件:根据需求选择适合的数据库软件,常见的有MySQL、MongoD...
    99+
    2023-09-25
    云服务器 数据库
  • Kubernetes上怎么运行PostgreSQL
    本篇内容介绍了“Kubernetes上怎么运行PostgreSQL”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建统一管理的,具备灵活性的...
    99+
    2023-06-27
  • oracle数据库怎么运行sql
    在 oracle 数据库中运行 sql 语句的步骤包括:打开 sql plus 工具并连接到数据库。在提示符下输入 sql 语句。按 enter 键运行该语句。查看结果,错误消息或退出 ...
    99+
    2024-04-08
    oracle
  • navicat premium怎么运行数据库
    navicat premium 中运行数据库的步骤:连接数据库:选择数据库类型并输入连接详细信息。选择数据库:在导航窗格中选择要运行的数据库连接。编写查询:在 sql 编辑器中编写 sq...
    99+
    2024-04-06
    mysql navicat
  • 怎么在django中运行多个数据库
    本篇文章给大家分享的是有关怎么在django中运行多个数据库,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。DATABASE_APPS_MAPPING = {...
    99+
    2023-06-06
  • 怎么关闭mongodb数据库的运行
    要关闭MongoDB数据库的运行,你可以按照以下步骤进行操作:1. 打开终端或命令提示符窗口。2. 输入以下命令,以默认配置关闭Mo...
    99+
    2023-08-23
    mongodb数据库
  • docker运行mariadb数据库
    安装MariaDB docker pull mariadb 运行MariaDB docker run --name some-mariadb -p 3306:3306 -v /usr/local/docker/mariadb/logs:...
    99+
    2021-04-19
    docker运行mariadb数据库
  • linux怎么查看数据库运行状态
    在Linux系统中,可以使用以下命令来查看数据库的运行状态:1. MySQL/MariaDB:- 查看MySQL服务是否正在运行:`...
    99+
    2023-08-29
    linux 数据库
  • idea绑定数据库之后怎么运行
    一旦您的Idea与数据库绑定,您可以按照以下步骤来运行它:1. 确保您的数据库已经正确配置并且可以被访问。这可能包括安装和配置数据库...
    99+
    2023-08-18
    idea 数据库
  • db2怎么查看数据库运行状态
    要查看DB2数据库的运行状态,可以使用以下命令: 使用命令行窗口登录到DB2数据库: db2 在DB2控制台中,使用以下命令...
    99+
    2024-04-09
    db2
  • 怎么运用PHP进行数据库操作类
    这篇文章主要为大家展示了“怎么运用PHP进行数据库操作类”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么运用PHP进行数据库操作类”这篇文章吧。PHP高级实战...
    99+
    2024-04-02
  • mysql数据库怎样安装和运行
    这篇文章主要介绍mysql数据库怎样安装和运行,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mysql安装和运行的方法:首先下载Mysql并解压;然后进入bin目录, 打开cmd;接...
    99+
    2024-04-02
  • linux怎么查看oracle数据库的运行状态
    在Linux系统中,可以通过以下方式来查看Oracle数据库的运行状态: 使用ps命令查看数据库的进程状态: ps -ef | ...
    99+
    2024-04-09
    linux oracle
  • 是否可以在Alma Linux中运行Web服务器和数据库服务器
    是的,可以在Alma Linux中运行Web服务器和数据库服务器。Alma Linux是一个企业级的Linux发行版,它可以作为We...
    99+
    2024-04-02
  • Aurora数据库中怎么进行事务处理
    Aurora数据库支持事务处理,可以使用以下步骤在Aurora数据库中进行事务处理: 开始事务:使用BEGIN语句开始一个新的事...
    99+
    2024-04-09
    Aurora
  • Oracle数据库中如何执行算术运算
    今天就跟大家聊聊有关Oracle数据库中如何执行算术运算,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Oracle在SQL语句中使用算术表达式来进行...
    99+
    2024-04-02
  • 怎么运行mysql服务
    运行mysql服务的方法首先,右键点击“开始”,选择“计算机管理”选项;进入计算机管理页面后,在左侧菜单栏中,点击“服务和应用程序”选项,在下拉中点击“服务”;点击服务后,在右侧的服务列表中,查找到“mysql”服务选项;查找到mysql服...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作