1

我已经在生产环境中运行了一些标准的 Azure IaaS kubernetes 集群 3 年(约 40 个节点)。由于最近的企业安全变化和 kubernetes 设计改进,特别是 CSINodes 的管理,我决定从 Azure 文件存储移回 Longhorn。此方案已在其他集群上得到验证。

在生产中,我想将持久卷从初始存储类移动到另一个。假设 storage_class_1 到 storage_class_2。

storage_class_1 继承自 Azure File,而 storage_class_2 继承自 longhorn。持久卷是使用 RabbitMQ 运算符动态生成的。

修改 CRD 定义时,不会创建新的 PV,仍然绑定旧的 PV。

persistence:
  storageClassName: storage_class_2
  storage: 10Gi

我正在寻找一种在不丢失任何数据或停止服务的情况下更新 PV 的方法。任何想法?

一些技术信息:Kubernetes:1.19.8 Docker:20.10.2 RabbitMQ Cluster Operator:1.5.0

4

1 回答 1

2

我终于找到了正确的顺序:

  1. 由于副本集的性质,删除一个 PVC,卷是持久的
  2. 移除对应的实例
  3. 创建一个引用新存储类的新 PVC
  4. Replicaset 将自动将新实例绑定到这个新 PVC
  5. 为其他副本执行此操作
于 2021-09-28T13:14:08.647 回答