kubernetes资源对象之PersistentVolume

2020-03-27  本文已影响0人  一舍

PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 提供了方便的持久化卷。

PV 提供存储资源,PVC 请求存储资源。

PV 和 PVC 可以将 pod 和数据卷解耦,pod 不需要知道确切的文件系统或者支持它的持久化引擎。

Volume 的生命周期,包括6个阶段:

Volume 根据其生命周期阶段,分为4个状态:

PV

PersistentVolume(PV)是集群之中的一块存储。

PV的访问,有3种模式:

不是每一种存储都支持这三种方式

PV 的回收策略(persistentVolumeReclaimPolicy),指 PVC 释放卷的时候, PV 该执行的操作,有3种模式:

PV的创建支持两种方式:

静态创建

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
spec:
  capacity:
    storage: 50Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /tmp
    server: 172.17.0.2

动态创建

Kubernetes 还提供了 StorageClass 来动态创建 PV,不仅节省了管理员的时间,还可以封装不同类型的存储供 PVC 选用。

StorageClass 包括4个部分:

不是每一种存储都支持这动态创建

apiVersion: storage.k8s.io/v1
  kind: StorageClass
  metadata:
    name: fast
  provisioner: kubernetes.io/rbd
  parameters:
    monitors: 10.16.153.105:6789
    adminId: kube
    adminSecretName: ceph-secret
    adminSecretNamespace: kube-system
    pool: kube
    userId: kube
    userSecretName: ceph-secret-user

PVC

PersistentVolumeClaim (PVC) 是对 PV 的请求,PVC 请求特定大小和访问模式的数据卷。

创建PVC

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: myclaim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 8Gi
  volumeName: pv0003

将PVC挂载到pod中

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
    - name: myfrontend
      image: nginx
      volumeMounts:
      - mountPath: "/var/www/html"
        name: mypd
  volumes:
    - name: mypd
      persistentVolumeClaim:
        claimName: myclaim
上一篇 下一篇

猜你喜欢

热点阅读