简介
数据卷类型
数据卷类型 | 描述 |
---|---|
使用临时路径 | / |
使用主机路径 | 将容器所在宿主机的文件目录挂载到容器的指定路径中(即对应 Kubernetes 的 HostPath)。您可以根据业务需求,不设置源路径(即对应 Kubernetes 的 EmptyDir)。如果不设置源路径,系统将分配主机的临时目录挂载到容器的挂载点。指定源路径的本地硬盘数据卷适用于将数据持久化存储到容器所在宿主机,EmptyDir 适用于容器的临时存储。 |
使用 NFS 盘 | 只需填写 NFS 路径,您可以使用腾讯云的 文件存储 CFS,也可使用自建的文件存储 NFS。使用 NFS 数据卷适用于多读多写的持久化存储,也适用于大数据分析、媒体处理、内容管理等场景。 |
使用已有 PersistentVolumeClaim | 使用已有 PersistentVolumeClaim 声明工作负载的存储,自动分配或新建 PersistentVolume 挂载到对应的 Pod 下。主要适用于 StatefulSet 创建的有状态应用。 |
使用 ConfigMap | ConfigMap 以文件系统的形式挂载到 Pod 上,支持自定义 ConfigMap 条目挂载到特定的路径。更多详情请参见 ConfigMap 管理。 |
使用 Secret | Secret 以文件系统的形式挂载到 Pod 上,支持自定义 Secret 条目挂载到特定的路径。更多详情请参见 Secret 管理。 |
数据卷的注意事项
- 创建数据卷后,需在实例内容器模块设置容器的挂载点。
- 同一个服务下,数据卷的名称和容器设置的挂载点不能重复。
- 本地硬盘数据卷源路径为空时,系统将分配
/var/lib/kubelet/pods/pod_name/volumes/kubernetes.io~empty-dir
临时目录,且使用临时的数据卷生命周期与实例的生命周期保持一致。 - 数据卷挂载未设置权限,默认设置为读写权限。
Volume 控制台操作指引
创建工作负载挂载数据卷
- 登录容器服务控制台,并选择左侧导航栏中的 集群。
- 在“集群管理”页面,单击需要部署 Workload 的集群 ID,进入待部署 Workload 的集群管理页面。
- 在工作负载下,任意选择 Workload 类型,进入对应的信息页面。
例如,选择工作负载 > DaemonSet,进入 DaemonSet 信息页面。如下图所示: - 单击新建,进入 “新建Workload” 页面。
- 根据页面信息,设置工作负载名、命名空间等信息。并在“数据卷”中,单击添加数据卷添加数据卷。
- 根据实际需求,选择数据卷的存储方式,本文以使用腾讯云硬盘为例。
- 在“实例内容器”的挂载点配置挂载点。如下图所示:
在 步骤5 中选择添加数据卷后,才可进行挂载点配置。 - 其余选项请按需设置,并单击创建Workload即可完成创建。
各类数据卷挂载配置
该表展示了不同数据卷的使用细节,当您在创建工作负载时,并选择“添加数据卷”后,可参照以下内容进行数据卷的添加以及挂载点的设置:
数据卷 | 挂载点 | ||||
---|---|---|---|---|---|
类型 | 名称 | 其他 | 目标路径 | 挂载子路径 | 读写权限 |
临时路径 | 自定义 | / | 请根据实际需求进行填写,示例如 /cache 。 | 仅挂载选中数据卷中的子路径或单一文件,示例如 /data 或 /test.txt 。 | 请根据实际需求进行选择。 |
主机路径 | 设置主机路径。/var/lib/docker 。 |
||||
NFS 盘 | NFS 路径:填写文件系统 CFS 或自建 NFS 地址。10.0.0.161:/ 。该路径可登录 文件系统控制台,单击目标文件系统 ID ,在挂载点信息页签的 “Linux 下挂载目录”中获取。 |
||||
已有 PVC | 请选择 PVC:根据实际需求进行选择。 | ||||
ConfigMap | /data/config ,子路径是 dev ,最终会存储在 /data/config/dev 下。 |
||||
Secret |
Kubectl 操作 Volume 指引
仅提供示例文件,您可直接通过 Kubectl 进行创建操作。
Pod 挂载 Volume YAML 示例
apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: k8s.gcr.io/test-webserver
name: test-container
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir: {}
- spec.volumes:设置数据卷名称、类型、数据卷的参数。
- spec.volumes.emptyDir:设置临时路径。
- spec.volumes.hostPath:设置主机路径。
- spec.volumes.nfs:设置 NFS 盘。
- spec.volumes.persistentVolumeClaim:设置已有 PersistentVolumeClaim
- spec.volumeClaimTemplates:若使用该声明,将根据内容自动创建 PersistentVolumeClaim 和 PersistentVolume。
- spec.containers.volumeMounts:填写数据卷的挂载点。