答:以 Ceph RBD 和物理 NeonSAN 作为集群存储为例,分别说明其灾难恢复的方法。

    Ceph RBD

    若集群的持久化存储服务端配置的是 Ceph RBD,当其中某台节点意外关机或故障时,可参考如下步骤:

    1、查看集群节点的状态,定位故障或关闭的主机,通常该节点的状态 (STATUS) 将显示 NotReady。

    3、等待一段时间(约几分钟),当旧 Pod 被删除后,RBD 的 PVC 将会自动挂载至 Kubernetes 新创建的 Pod 中,新创建的 Pod 也将会被自动调度到新节点上运行,此时可通过 kubectl get 或 describe 验证 Pod 的运行恢复和挂盘情况。

    NeonSAN

    若集群的持久化存储服务端配置的是 NeonSAN,当其中某台节点意外关机或故障时,可参考如下步骤:

    1、通过命令 kubectl get node -o wide 查看集群节点的状态,定位故障或关闭的主机,通常该节点的状态 (STATUS) 将显示 NotReady。

    3、找到 Terminating 的 Pod 挂载的 PVC,假如我们发现 redis 的 Pod 状态为 Terminating,先找到该 PVC 的 VOLUME 名称 (以下返回的是 ):

    4、通过 VOLUME 名称找到对应的 volumeattachment,可通过 -o yaml 命令重定向到文件 (以下返回的是 csi-90ef9b5f64f8156db2a2230f2c634e3afbd2abd5fd9c8238a0363a9b374e21d9):

    5、删除对应的 volumeattachment: