美文网首页
《每天5分钟玩转 Kubernetes》9.2.1 NFS Pe

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

作者: SlowGO | 来源:发表于2018-12-13 12:17 被阅读18次

    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
    

    相关文章

      网友评论

          本文标题:《每天5分钟玩转 Kubernetes》9.2.1 NFS Pe

          本文链接:https://www.haomeiwen.com/subject/lzvvhqtx.html