翻译|使用 StatefulSet 运行数据库应用

本文介绍 Kubernetes 支持数据库等有状态应用的常见解决方案:StatefulSet。

我们在构建机器学习向量管理时面临的一个重要问题是:如何持久化数据,避免数据丢失?

[En]

An important question we face when building machine learning vector management is: how to persist data to avoid data loss?

在阅读了许多数据库企业发布的博客后,我们认为 StatefulSet[1] 是实现这个目标的可行方法。

我们研究了不同的数据库,包括 Cockroach、MySQL、MongoDB、Cassandra、PostgreSQL、Dgraph 和 Redis。我们还研究了 Kafka 和 Zookeeper,因为它们都需要持久化状态。我们选择这些数据库是基于两方面:

  • 它们是业界广泛使用的数据库解决方案,并可以部署在 Kubernetes 上。其中一些是云原生数据库,如 Cockroach。
  • 这些有状态应用是不同类型的,比如 MySQL 是关系型数据库,MongoDB 是非关系型数据库。研究不同类型的数据库让我们对使用 StatefulSet 方案更加自信。

下面列出了一些关于如何使用 StatefulSet 在 Kubernetes 中部署不同数据库或有状态应用程序的文章。

Cockroach

  • 3 ways to master stateful apps in Kubernetes[2],

Kubernetes 有两种方法管理状态:DaemonSet 和 StatefulSet,但是 Cockroach 强烈建议使用 StatefulSet。

MySQL

  • Run a Replicated Stateful Application[5]
  • Kubernetes StatefulSet — Example & Best Practices[6]

这篇文章介绍了使用 Kubernetes StatefulSet 部署 MySQL 的端到端流程。

MongoDB

  • Running MongoDB on Kubernetes with StatefulSets[7]
  • How to Run MongoDB on Kubernetes[8]

Cassandra

  • Deploying Cassandra with a StatefulSet[9]

PostgreSQL

  • Deploying PostgreSQL as a StatefulSet in Kubernetes[10]

Dgraph[11]

Redis

  • Deploying Redis Cluster on Kubernetes[12]

Kafka

  • Set-up Kafka Cluster Using Kubernetes StatefulSet[13]

Zookeeper

  • Running Zookeeper, A Distributed System Coordinator[14]

基于上述文章,我们将开始使用 StatefulSet,看看它是否能够满足我们的应用场景。

Original: https://www.cnblogs.com/radondb/p/16618841.html
Author: RadonDB
Title: 翻译|使用 StatefulSet 运行数据库应用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504952/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python中的cls和self区别

    self:Always use self for the first argument to instance methods self是作为类进行实例化传递的第一个参数,也就是我…

    数据库 2023年6月6日
    055
  • IDEA中如何查看接口的所有实现类呢?

    接口是我们日常开发中常用的操作,那么如何查看一个接口有哪些实现类呢?下文笔者将讲述IDEA编辑器中 查看实现类的快捷方法,如下所示 在spring源码阅读中,每一个接口都有很多实现…

    数据库 2023年6月11日
    070
  • 【StoneDB故障诊断】数据库实例crash

    系统负载高 系统负载高导致了申请系统资源失败,最后数据库实例crash,常见原因及诊断方法详见系统资源瓶颈诊断。 数据页损坏 如果是硬件故障或者磁盘空间满了,向数据文件写入时,很容…

    数据库 2023年5月24日
    0112
  • 由delete引起的锁扩大

    由delete引起的锁扩大 阿里云月报中的一句话,出处:http://mysql.taobao.org/monthly/2022/01/01/ 但是Ghost Record是可以跟…

    数据库 2023年5月24日
    090
  • MySQL45讲之更新缓存

    本文介绍 MySQL的更新缓存 Change Buffer,以及唯一索引和普通索引如何选择。 唯一索引和普通索引的选择 查询过程 在唯一索引下,查询索引树,找到第一个匹配的行并返回…

    数据库 2023年5月24日
    083
  • 浅谈多线程中数据的绑定和赋值

    我们知道,微软的.NET控件做了大量的工作,用起来还是不错的,一般的数据绑定或者赋值比较简单。如下所示 文本赋值: txtTest.Text = “abc”…

    数据库 2023年6月11日
    059
  • 第十六章:接口

    本篇翻译自《Practical Go Lessons》 Chapter 16: Interfaces 1 你将在本章学到什么? 什么是类型接口? 如何定义接口。 “实现…

    数据库 2023年6月6日
    083
  • 如何写出有效的单元测试

    测试不要名不副实避免测试的描述与测试内容不符;测试结果必须精准;测试该失败的时候一定要失败! 测试私有或者受保护的方法解决思路: 将方法变成公共方法; 将方法抽取到新类; 将方法变…

    数据库 2023年6月14日
    091
  • InnoDB 中不同SQL语句设置的锁

    锁定读、UPDATE 或 DELETE 通常会给在SQL语句处理过程扫描到的每个索引记录上设置记录锁。语句中是否存在排除该行的WHERE条件并不重要。InnoDB不记得确切的WHE…

    数据库 2023年5月24日
    067
  • 第06章 MySQL多表查询

    第06章 MySQL多表查询 多表查询,也称为关联查询,是指两个或多个表一起完成查询操作。 [En] A multi-table query, also known as an a…

    数据库 2023年5月24日
    075
  • 微信登录前端开发指南

    使用场景 微信公众号内嵌H5网页调用微信登录 在微信浏览器中的网页唤起微信登录界面 详情可以查阅微信登录官方文档 链接地址 功能思路 后台先在微信给开发者提供的测试账号平台上创建应…

    数据库 2023年6月11日
    069
  • 女同桌找我要表情包,还好我会Python,分分钟给她下载几十个G…

    emmm~ 起因呢,这昨晚女同桌跟我说电脑有点卡,喊我去宿舍给她装个新系统,装系统就装系统吧,结果又说新系统表情包都没保存~ 我当时就有点生气,真当我是万能的呢? 于是我直接就用P…

    数据库 2023年6月14日
    088
  • 集合自序整理集

    集合和数组一样都是对多个数据进行存储操作的容器 * – 集合长度可变,数组长度固定 – 集合可以存储不同数据类型元素,数组只能存储单一数据类型元素 &#82…

    数据库 2023年6月9日
    0107
  • 基于Spring实现策略模式

    背景: 看过很多策略模式,总结下来实现原理大体都差不多,在这里主要是讲解下自己基于Spring更优雅的实现方案;这个方案主要是看了一些开源rpc和Spring相关源码后的一些思路,…

    数据库 2023年6月6日
    095
  • Linux的一些的常用命令

    小杰笔记: 记录一下Linux的一些常见命令: 1:Linux关机与重启的命令: 2:切换目录与查看目录的文件: 3:文件目录的创建与删除: 4:文件的复制 删除与移动: 5:如何…

    数据库 2023年6月6日
    057
  • 数据库的备份和恢复命令,使用视图,索引,事务

    备份库 直接在cmd窗口中直接输入,结束不需要输入; mysqldump -h端口号 -u用户名 -p密码 数据库名>备份地址 恢复库 在cmd窗口中进行 1、连接数据库 m…

    数据库 2023年6月16日
    0111
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球