《每天5分钟玩转 Kubernetes》9.2.1 NFS Pe

2018-12-13  本文已影响18人  SlowGO

PersistentVolume(PV)是外部存储系统中的存储空间,具有持久性,生命周期独立于 pod。

PersistentVolumeClaim(PVC)是对 PV 的申请,指明存储资源的容量大小、访问模式等信息,使用户只需说明需要什么样的资源,而不用关心从哪儿分配、如何访问等底层细节。

下面实践 NFS 类型 PersistentVolume 的用法。

准备环境

需要先搭建好一个 nfs 服务,并创建好目录 /nfsdata/pv1

配置文件

我们需要创建3个配置文件:

  1. PersistentVolume 配置文件,声明一个nfs pv资源,指定连接信息。
  2. PersistentVolumeClaim 配置文件,声明需要一个 1G 的 nfs pv 资源。
  3. pod 配置文件,声明 volume,指定 persistentVolumeClaim 的名字,挂载 volume。

nfs-pv1.yml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mypv1
spec:
  capacity:
    storage: 1Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  storageClassName: nfs
  nfs:
    path: /nfsdata/pv1
    server: 192.168.3.107

nfs-pvc1.yml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc1
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: nfs

nfs-pod.yml

apiVersion: v1
kind: Pod
metadata:
  name: mypod1
spec:
  containers:
    - name: mypod1
      image: busybox
      args:
      - /bin/sh
      - -c
      - sleep 30000
      volumeMounts:
      - mountPath: "/mydata"
        name: mydata
  volumes:
  - name: mydata
    persistentVolumeClaim:
      claimName: mypvc1  

启动

先启动 pv 和 pvc:

kubectl apply -f nfs-pv1.yaml

kubectl apply -f nfs-pvc1.yaml

查看状态:

kubectl get pv
NAME    CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM            STORAGECLASS   REASON   AGE
mypv1   1Gi        RWO            Recycle          Bound    default/mypvc1   nfs                     17m

kubectl get pvc
NAME     STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mypvc1   Bound    mypv1    1Gi        RWO            nfs            17m

状态都是 Bound,说明已经绑定好,可用了。

启动 pod:

kubectl apply -f nfs-pod.yaml

测试

通过 pod 创建文件:

kubectl exec mypod1 touch /mydata/hello

查看 nfs 目录下是否有了 hello 这个文件:

ls /nfsdata/pv1/
hello
上一篇下一篇

猜你喜欢

热点阅读