【问题标题】:How can I expand a PVC for Cassandra on AKS without losing data?如何在 AKS 上为 Cassandra 扩展 PVC 而不会丢失数据?
【发布时间】:2021-10-06 23:44:27
【问题描述】:

首先我需要说我没有使用 Cassandra 的经验,而且我不是创建此部署的人。

我在 AKS 的集群中运行 Cassandra。 statefulset 中配置的 PVC 为 1000Gi。目前,Pod 存储空间不足,并且一直处于不健康状态。

我希望扩展附加到 pod 的卷。我面临的问题是我无法缩小 statefulset,因为 statefulset 只有在 所有 的 pod 都健康时才会缩小。

我什至尝试删除 statefulset,然后用更大的 PVC 重新创建它(推荐 here)

但是,我似乎无法删除 statefulset。在我看来,CassandraDatacenter CRD 会在我删除它后立即重新创建 statefulset。让我没有时间改变任何东西。

我的问题如下:

  1. 是否有一种标准方法可以在不丢失数据的情况下扩展卷?
  2. 如果我缩小 CassandraDatacenter 中的副本,会发生什么情况?它会删除 PVC 还是保留它?
  3. 如果没有标准,是否有人对如何在不丢失存储的情况下完成扩展卷大小有任何想法?

【问题讨论】:

    标签: kubernetes cassandra azure-aks kubernetes-statefulset kubernetes-pvc


    【解决方案1】:

    通常在 Cassandra 集群中,最佳做法是水平(而不是垂直)扩展。您需要更多的 Cassandra 节点来分散负载以实现最大吞吐量。

    Kubernetes 中的等价物是扩展您的部署。随着节点数量的增加,每个 Cassandra 节点上的数据量将按比例减少。

    如果您真的想调整 PVC 的大小,只有启用了allowVolumeExpansion 才能动态执行此操作。这样做不会丢失数据。

    删除 STS 是行不通的,因为按照设计它会自动替换,正如您已经知道的那样。如果这样做,您也将无法缩减规模,因为集群中没有足够的容量(磁盘空间)。干杯!

    【讨论】:

      【解决方案2】:

      回答:如何在 AKS 上为 StatefulSet 扩展 PVC 而不会丢失数据?

      虽然@Erick Raminez 的回答是针对 Cassandra 的一个非常好的建议,但我想回答更一般的问题“如何在 AKS 上为我的 StatefulSet 扩展 PVC 而不会丢失数据?”。

      如果允许停机,您可以按照以下 4 个步骤操作:

      # Delete StatefulSet 
      # This is required on AKS since the azure disk must have status "Unattached" 
      kubectl delete statefulsets.apps STATEFULSET_NAME
      
      # Edit capacity in 
      # - your statefulset yaml file
      # - each pvc
      kubectl patch pvc PVC_NAME -p '{"spec": {"resources": {"requests": {"storage": "3Gi"}}}}'
      
      # Deploy updated statefulset yaml (or helm chart)
      kubectl apply -f statefulset.yaml
      
      # Verify Capacity
      kubectl get pvc
      
      

      如果您不想停机,请查看第一个参考以了解其他一些步骤。

      参考资料:

      【讨论】:

        猜你喜欢
        • 2021-03-19
        • 1970-01-01
        • 2013-05-12
        • 2021-01-04
        • 2022-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多