我刚刚在Kubernetes文档中读到了部署带有状态集的Cassandra主题。部署过程: 1.创建StorageClass 2.创建PersistentVolume (在我的例子中是4 PersistentVolume)。在1) storageClassName 3中创建。创建Cassandra无头服务4。使用StatefulSet来创建在StatefulSet yml定义的storageClassName中创建的Cassandra环设置。
因此,有4个荚: 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中的数据。有人能告诉我它到底是怎么工作的吗?
发布于 2019-07-14 21:29:33
卡桑德拉一致性:
发布于 2019-07-14 17:26:01
如果数据被部署在kubernetes或裸金属实例中,则在集群中传播数据的机制是独立的。Cassandra将尝试根据散列值(称为令牌)在节点上随机传播数据,并使用相同的算法检索信息。
还有其他需要考虑的因素:复制因子(拷贝数量)和所使用的一致性级别。
您可能想看看DS201: DataStax Enterprise Foundations of Apache Cassandra™ in Datastax学院,在那里他们介绍了Cassandra的基本知识。
发布于 2019-07-14 21:01:33
只是为了稍微扩展卡洛斯的回答,库伯内特斯并没有参与其中,而且卷卷是完全孤立的。复制和分发工作完全由数据库软件来处理。就K8s所见,它们只是单独的进程和单独的卷。
https://stackoverflow.com/questions/57029036
复制相似问题