【问题标题】:How Databases synchronize data between persistent volumens in Kubernetes数据库如何在 Kubernetes 中的持久卷之间同步数据
【发布时间】:2019-07-14 16:07:21
【问题描述】:

我刚刚阅读了 Kubernetes 文档中的 Deploying Cassandra with Stateful Sets 主题。 部署过程: 1、StorageClass的创建 2. 创建 PersistentVolume(在我的例子中是 4 PersistentVolume)。在 1) storageClassName 中创建的集合 3. 创建 Cassandra Headless Service 4. 使用 StatefulSet 创建 Cassandra Ring - 设置在 1) StorageClassName in StatefulSet yml 定义中创建。

因此,有 4 个 pod:Cassandra-0、Cassandra-1、Cassandra-2、Cassandra-4,它们安装在 2) 个卷(pv-0、pv-1、pv-2、 pv-3)。 我想知道这些持久卷如何/是否彼此同步数据。

例如如果我添加一些记录,这些记录将由 pod cassandra-0 写入持久卷 pv-0 中,那么如果有人稍后要从数据库中检索数据 - 使用 cassandra-1 pod/pv 将看到数据已添加到 pv-0。谁能告诉我它是如何工作的?

【问题讨论】:

    标签: kubernetes cassandra


    【解决方案1】:
    1. 这与 Kubernetes 无关

    2. 复制由数据库完成,可配置

    3. 查看 Cassandra 的 CAP 定理和最终一致性

    4. 您可以控制 Cassandra 中的一致性级别,记录是立即更新还是稍后更新,取决于您在 Cassandra 中所做的配置。

    5. 另请参见:同步复制、异步复制

    Cassandra 一致性:

    how to set cassandra read and write consistency

    How is the consistency level configured?

    【讨论】:

      【解决方案2】:

      如果将数据部署在 Kubernetes 或裸机实例中,则跨集群传播数据的机制是独立的。 Cassandra 将尝试根据哈希值(称为令牌)在节点间随机分布数据,并将使用相同的算法来检索信息。

      还有其他因素需要考虑:复制因素(副本数量)和使用的一致性级别。

      您可能想看看 Datastax academy 中的 DS201: DataStax Enterprise Foundations of Apache Cassandra™,它们涵盖了 Cassandra 的基础知识。

      【讨论】:

        【解决方案3】:

        只是为了稍微扩展 Carlos 的回答,不涉及 Kubernetes,并且卷是完全隔离的。复制和分发的东西完全由数据库软件来处理。在 K8s 看来,它们只是独立的进程和独立的卷。

        【讨论】:

          【解决方案4】:

          感谢 cmets 伙计们! 所以,当我的数据库有 3 个 PV 时:

          cassandra-pod0  cassandra-pod1 cassandra-pod2
               |                 |             |
          cassandra-pv0   cassandra-pv0   cassandra-pv0 
          

          数据分为 3 个 pvs。当我杀死 cassandra-pod1 - 我可能会丢失(暂时)部分数据。我说的对吗?

          【讨论】:

          • 这将取决于表的复制因子和读写的一致性级别。在建议的情况下,如果您的复制因子为 3(3 个副本),并且一致性级别为 QUORUM,则可以在一个节点关闭的情况下完成查询。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-20
          • 2017-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多