是否有可能恢复 kubernetes 丢失的状态 pvc

Dol*_*hin 8 kubernetes

今天,当我在 kubernetes 集群 v1.15.x 中创建 PVC 和 PV 时,kubernetes 仪表板显示 PVC 处于丢失状态,这是 PVC 的错误消息:

this claim is in lost state.
Run Code Online (Sandbox Code Playgroud)

这是我的 PVC 定义:

{
  "kind": "PersistentVolumeClaim",
  "apiVersion": "v1",
  "metadata": {
    "name": "zhuolian-report-mysql-pv-claim",
    "namespace": "dabai-uat",
    "selfLink": "/api/v1/namespaces/dabai-uat/persistentvolumeclaims/zhuolian-report-mysql-pv-claim",
    "uid": "3ca3425b-b2dc-4bd7-876f-05f8cbcafcf8",
    "resourceVersion": "106652242",
    "creationTimestamp": "2021-09-26T02:58:32Z",
    "annotations": {
      "pv.kubernetes.io/bind-completed": "yes"
    },
    "finalizers": [
      "kubernetes.io/pvc-protection"
    ]
  },
  "spec": {
    "accessModes": [
      "ReadWriteOnce"
    ],
    "resources": {
      "requests": {
        "storage": "8Gi"
      }
    },
    "volumeName": "nfs-zhuolian-report-mysql-pv",
    "volumeMode": "Filesystem"
  },
  "status": {
    "phase": "Lost"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我在同一命名空间中定义的 PV:

{
  "kind": "PersistentVolume",
  "apiVersion": "v1",
  "metadata": {
    "name": "nfs-zhuolian-report-mysql-pv",
    "selfLink": "/api/v1/persistentvolumes/nfs-zhuolian-report-mysql-pv",
    "uid": "86291e89-8360-4d48-bae7-62c3c642e945",
    "resourceVersion": "106652532",
    "creationTimestamp": "2021-09-26T03:01:02Z",
    "labels": {
      "alicloud-pvname": "zhuolian-report-data"
    },
    "finalizers": [
      "kubernetes.io/pv-protection"
    ]
  },
  "spec": {
    "capacity": {
      "storage": "8Gi"
    },
    "nfs": {
      "server": "balabala.cn-hongkong.nas.balabala.com",
      "path": "/docker/mysql_zhuolian_report_data"
    },
    "accessModes": [
      "ReadWriteOnce"
    ],
    "claimRef": {
      "kind": "PersistentVolumeClaim",
      "namespace": "dabai-uat",
      "name": "zhuolian-report-mysql-pv-claim"
    },
    "persistentVolumeReclaimPolicy": "Retain",
    "mountOptions": [
      "vers=4.0",
      "noresvport"
    ],
    "volumeMode": "Filesystem"
  },
  "status": {
    "phase": "Available"
  }
}
Run Code Online (Sandbox Code Playgroud)

我应该怎么做才能解决这个问题?如何避免这样的问题?什么可能导致这个问题?

Dol*_*hin 22

尝试删除 PVC 的注释将使 PVC 重新绑定:

"annotations": {
   "pv.kubernetes.io/bind-completed": "yes"
},
Run Code Online (Sandbox Code Playgroud)

我从另一个 PVC 复制了 PVC,但忘记删除注释。