意外导致pvc状态为Terminating的恢复流程


模拟pvc故障问题

查看正常状态下pv以及pvc

image-20210414150001610

kubectl get pvc  -n ns-xmrkcipnc   -l app.kubernetes.io/part-of=redis-failover
kubectl get pv|grep ns-xmrkcipnc|grep redis

模拟pvc故障意外

image-20210414150059508

kubectl delete  pvc  -n ns-xmrkcipnc   -l app.kubernetes.io/part-of=redis-failover
kubectl get pvc  -n ns-xmrkcipnc   -l app.kubernetes.io/part-of=redis-failover

pvc故障恢复流程

⚠️有条件下请备份再操作,注意步骤

前言

  • 申请并等待可以操作的窗口期,否则操作期间会导致业务异常以及部分数据丢失

  • 注意事项

    • 下面实施操作命令会根据条件有所变化,务必理解对应逻辑再操作避免出现数据丢失问题

实施操作

修改pv状态(批量修改)
# 修改pv状态(注意查询的实体比对)
for pv in `kubectl get pvc  -n ns-xmrkcipnc   -l app.kubernetes.io/part-of=redis-failover|grep Terminating|awk '{print $3}'`;do kubectl patch pv $pv -p '{"spec":{"claimRef":{"uid":""}}}';done

image-20210414152401402

修改pv状态(单个修改)
kubectl edit pv pvc-342ccb9b-bc9f-4169-ac68-eca4a4193550
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 819Mi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: data-redis-4x5yzix0a-2
    namespace: ns-xmrkcipnc
    resourceVersion: "16118531"
    uid: ed581331-c029-4bd5-a62d-c41913b06bc8   # 删除改行

image-20210414160001072

查看pv状态
# 查看pv状态
kubectl get pv `kubectl get pvc  -n ns-xmrkcipnc   -l app.kubernetes.io/part-of=redis-failover|grep Terminating|awk '{print $3}'`

image-20210414152220365

Pod停止
系统查看redis组件状态0/0为停止成功

image-20210414152828647

# kubectl get sts -n ns-xmrkcipnc redis-4x5yzix0a
NAME              READY   AGE
redis-4x5yzix0a   0/0     46m
pod启动

image-20210414152845823

### 查看组件恢复是否正常
kubectl get sts -n ns-xmrkcipnc redis-4x5yzix0a
  • 恢复结果检查

image-20210414152950472

检查恢复是否成功,pv以及pvc状态是否正常

查看pod状态

# kubectl get pod  -n ns-xmrkcipnc   -l app.kubernetes.io/part-of=redis-failover

image-20210414153201020

查看pvc状态

# kubectl get pvc  -n ns-xmrkcipnc   -l app.kubernetes.io/part-of=redis-failover

image-20210414153242987

查看pv状态

kubectl get pv|grep ns-xmrkcipnc|grep redis

image-20210414153325160


文章作者: james.liu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 james.liu !
  目录