最近需要部署一个MySQL容器,因为数据库存放的数据需要一直保存,就涉及到持久化的概念。容器本身是无状态的,出现问题后随时可销毁,但保存数据的的卷不能被销毁,需要创建一个持久卷。持久卷删除时有三种回售模式,

  • 保持(Retain):删除PV后后端存储上的数据仍然存在,如需彻底删除则需要手动删除后端存储volume
  • 删除(Delete):删除被PVC释放的PV和后端存储volume
  • 回收(Recycle):保留PV,但清空PV上的数据(已废弃)

默认情况下是delete模式,可以通过以下命令查看:

获取所有持久卷
# kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM                                                           STORAGECLASS   REASON    AGE
pvc-89ecc53b-725c-11ea-a8e2-005056aa2a6d   5Gi        RWX            Delete           Bound       service/mysql-pvc                                          isilon                   18h

查看持久卷具体信息
# kubectl describe pv pvc-89ecc53b-725c-11ea-a8e2-005056aa2a6d
Name:            pvc-89ecc53b-725c-11ea-a8e2-005056aa2a6d
Labels:          <none>
Annotations:     pv.kubernetes.io/provisioned-by=isilon
Finalizers:      [external-provisioner.volume.kubernetes.io/finalizer kubernetes.io/pv-protection]
StorageClass:    isilon
Status:          Bound
Claim:           service/mysql-pvc
Reclaim Policy:  Delete
Access Modes:    RWX
Capacity:        5Gi
Node Affinity:   <none>
Message:
Source:
    Type:      NFS (an NFS mount that lasts the lifetime of a pod)
    Server:    192.168.22.114
    Path:      /ifs/app/service-mysql-pvc-pvc-89ecc53b-725c-11ea-a8e2-005056aa2a6d
    ReadOnly:  false
Events:        <none>

修改PVC reclaim policy

#kubectl patch pv pvc-89ecc53b-725c-11ea-a8e2-005056aa2a6d -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐