繁体   English   中英

Kubernetes PVC卷装

[英]Kubernetes PVC volume mount

我在k8s上运行应用程序。

我的docker文件就像:

FROM python:3.5 AS python-build
ADD . /test
WORKDIR /test

在测试目录中,我正在执行此测试文件夹中所有文件的操作。

当我进入pod并检查文件结构时,就像/var /usr /test /bin

所以我想在pvc中添加整个文件夹测试

在测试文件的结构就像/app /data /history

所以我可以使用mountpath将添加文件夹附加到pvc吗?

有可能两个mountpath但一个pvc吗?

据我了解,您希望将测试目录作为安装路径包括在PVC中。 要回答该问题,是的,您可以通过在主机路径而不是安装路径中提供它来实现。 如文档中所述:

hostPath卷将来自主机节点文件系统的文件或目录装载到Pod中。 这不是大多数Pod所需要的,但是它为某些应用程序提供了强大的逃生舱口。

挂载路径是-

在Pod中应安装卷的位置。

因此,如果要从主机系统挂载\\ test文件夹,则需要在pv中提供它,如下所示

kind: PersistentVolume
apiVersion: v1
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/test"

您可以使用该PV通过pvc声明一个卷,并使用mountPath将该卷安装到您的Pod中。

要回答第二个问题,是的,单个PVC可以有多个安装路径。 一个有效的例子是:

    "containers": [
    {
        ...,
        "volumeMounts": [
         {
             "mountPath": "/mnt/1",
             "name": "v1",
             "subPath": "data/1"
         },
         {
             "mountPath": "/mnt/2",
             "name": "v1",
             "subPath": "data/2"
         }
       ]
    }
   ],
   ...,
   "volumes": [
       {
           "name": "v1",
           "persistentVolumeClaim": {
                "claimName": "testvolume"
           }
       }
     ]
  }
}

对于安装点而言,您无需处理PVC ,但volumeMounts使用部署yaml中的PVvolumeMounts 文档

PVC

PersistentVolumeClaim(PVC)是用户存储请求。 它类似于吊舱。

PV

PersistentVolume(PV)是群集中由管理员配置的一部分存储。

是的,您可以做到。 只需创建PV(或不必,取决于集群配置volumeMounts将根据PVC创建)并在部署中指定volumeMounts

在我的仓库中查看我的Yaml文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM