全部产品
Search
文档中心

挂载NFS

更新时间: 2021-09-14

本文介绍如何为ECI实例挂载NFS类型的Volume。

前提条件

  • K8s集群中已正确部署Virtual kubelet(VK)。

    阿里云ASK集群已默认集成VK,其它集群需要您自行部署VK。更多信息,请参见对接概述

  • 已创建NFS挂载点。

    默认可挂载目录为/,如果要指定挂载目录请先在NFS中创建子目录。

配置示例

您可以像使用原生K8s一样为ECI实例挂载NFS。配置示例如下:

示例一(不指定subPath)

  1. 准备YAML配置文件。

    vim nfs.yaml

    nfs.yaml的内容如下:

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-nfs
    spec:
      containers:
      - image: nginx:latest
        name: test-container
        volumeMounts:
        - mountPath: /cache-test
          name: cache-volume
      volumes:
      - name: cache-volume
        nfs:
          server: 1c5684****-suv0.cn-beijing.nas.aliyuncs.com  #NFS挂载点
          path: /  
          readOnly: false
  2. 部署Pod。

    kubectl create -f nfs.yaml
  3. 查看挂载结果。

    使用ls命令查看Pod内的文件目录,可以看到Pod中已生成NFS目录/对应的挂载目录/cache-test。您可以在cache-test下新建子目录、写入文件等,如下图所示。

    nfs1

示例二(指定subPath)

挂载NFS时,支持挂载subPath。

  1. 准备YAML配置文件。

    vim nfs_subpath.yaml

    nfs_subpath.yaml的内容如下:

    注意

    如果想要挂载subPath,请确保NFS中已有子目录。以下示例使用的NFS为示例一使用的NFS,该NFS中已创建子目录subpath,且已向subpath下的test文件写入内容hello。

    apiVersion: v1
    kind: Pod
    metadata:
      name: test-nfs-subpath
    spec:
      containers:
      - image: nginx:latest
        name: test-container
        volumeMounts:
        - mountPath: /cache-subtest
          name: cache-volume
          subPath: subpath   #NFS中的子目录
      volumes:
      - name: cache-volume
        nfs:
          server: 1c568****-suv0.cn-beijing.nas.aliyuncs.com  #NFS挂载点
          path: /
          readOnly: false
  2. 部署Pod。

    kubectl create -f nfs_subpath.yaml
  3. 查看挂载结果。

    使用ls命令查看Pod内的文件目录,可以看到Pod中已生成NFS子目录/subpath对应的挂载目录/cache-subtest。因subpath下已有内容为hello的test文件,所以cache-subtest下可以查看到对应的test文件,如下图所示。

    nfs2