首先,我需要说的是,我没有使用Cassandra的经验,我不是创建这个部署的人。
我让Cassandra在AKS的一个集群中跑步。statefulset中配置的PVC为1000Gi。目前,吊舱没有储存空间,并且一直处于不健康状态。
我正在寻找扩展附加到吊舱的卷。我面临的问题是,我无法缩小状态集,因为状态集只有在所有豆荚都健康时才会缩小。
我甚至尝试删除statefulset,然后用更大的PVC重新创建它(建议使用here)
然而,我似乎无法删除statefulset。在我看来,一旦我删除状态集,CassandraDatacenter CRD就会继续重新创建状态集。我没有时间改变任何事情。
我的问题如下:
1.是否有一种标准方法可以在不丢失数据的情况下扩展卷?
1.如果我缩小Cassandra数据中心中的副本,会发生什么?它会删除PVC还是保留它?
1.如果没有标准,有人知道如何在不丢失存储的情况下扩展卷大小吗?
3条答案
按热度按时间t2a7ltrp1#
通常,在Cassandra集群中,最佳实践是水平扩展(而不是垂直扩展)。您需要更多的Cassandra节点来分散负载,以实现最大吞吐量。
在Kubernetes中,等效的方法是扩大部署规模。随着节点数的增加,每个Cassandra节点上的数据量将按比例减少。
如果您真的想调整PVC的大小,只有启用
allowVolumeExpansion
才能动态调整。这样做不会丢失数据。删除STS是行不通的,因为根据设计,它会自动替换,正如您所知道的那样。如果这样做,您也将无法缩小规模,因为集群中没有足够的容量(磁盘空间)。干杯
w80xi6nr2#
答案:如何在AKS上扩展StatefulSet的PVC而不丢失数据
虽然@Erick Raminez的答案对于Cassandra来说是一个非常好的建议,但我想回答更一般的问题“我如何在AKS上为我的StatefulSet扩展PVC而不丢失数据?”。
如果允许停机,您可以执行以下4个步骤:
如果您不想停机,请查看第一个参考以了解其他步骤。
参考文献:
zbsbpyhn3#
我终于找到时间来共享等待AKS磁盘分离的脚本:https://adamrushuk.github.io/aks-disk-detach-wait-scripts/