Volume

卷表示 Pod 中的命名卷,Pod 中的任何容器都可以访问它。

import "k8s.io/api/core/v1"

Volume

卷表示 Pod 中的命名卷,Pod 中的任何容器都可以访问它。


公开的持久卷

  • persistentVolumeClaim (PersistentVolumeClaimVolumeSource)

    persistentVolumeClaimVolumeSource 表示对同一命名空间中 PersistentVolumeClaim 的引用。更多信息:https://kubernetes.top/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

    PersistentVolumeClaimVolumeSource 引用同一命名空间中用户的 PVC。此卷查找绑定的 PV 并为 Pod 挂载该卷。PersistentVolumeClaimVolumeSource 本质上是其他人(系统)拥有的另一种卷类型的包装器。

投影

  • configMap (ConfigMapVolumeSource)

    configMap 表示应该填充此卷的 configMap

    *将 ConfigMap 调整为卷。

    目标 ConfigMap 的 Data 字段的内容将以文件形式呈现在卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。ConfigMap 卷支持所有权管理和 SELinux 重新标记。*

    • configMap.name (string)

      所指对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎可以肯定是错误的。更多信息:https://kubernetes.top/docs/concepts/overview/working-with-objects/names/#names

    • configMap.optional (布尔值)

      optional 指定是否必须定义 ConfigMap 或其键

    • configMap.defaultMode (int32)

      defaultMode 是可选的:默认情况下用于设置创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

    • configMap.items ([]KeyToPath)

      原子性:将在合并期间被替换

      items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则卷设置将出错,除非将其标记为可选。路径必须是相对的,并且不能包含“..”路径或以“..”开头。

  • secret (SecretVolumeSource)

    secret 表示应该填充此卷的密钥。更多信息:https://kubernetes.top/docs/concepts/storage/volumes#secret

    *将 Secret 调整为卷。

    目标 Secret 的 Data 字段的内容将以文件形式呈现在卷中,使用 Data 字段中的键作为文件名。Secret 卷支持所有权管理和 SELinux 重新标记。*

    • secret.secretName (string)

      secretName 是 Pod 命名空间中要使用的密钥的名称。更多信息:https://kubernetes.top/docs/concepts/storage/volumes#secret

    • secret.optional (布尔值)

      optional 字段指定是否必须定义 Secret 或其键

    • secret.defaultMode (int32)

      defaultMode 是可选的:默认情况下用于设置创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

    • secret.items ([]KeyToPath)

      原子性:将在合并期间被替换

      items 如果未指定,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,则列出的键将投影到指定的路径中,而未列出的键将不存在。如果指定了 Secret 中不存在的键,则卷设置将出错,除非将其标记为可选。路径必须是相对的,并且不能包含“..”路径或以“..”开头。

  • downwardAPI (DownwardAPIVolumeSource)

    downwardAPI 表示应该填充此卷的有关 Pod 的向下 API 信息

    DownwardAPIVolumeSource 表示包含向下 API 信息的卷。向下 API 卷支持所有权管理和 SELinux 重新标记。

    • downwardAPI.defaultMode (int32)

      可选:默认情况下用于在创建的文件上使用的模式位。必须是可选的:默认情况下用于设置创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。默认为 0644。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

    • downwardAPI.items ([]DownwardAPIVolumeFile)

      原子性:将在合并期间被替换

      Items 是向下 API 卷文件的列表

  • projected (ProjectedVolumeSource)

    projected 项目,用于一体化资源 secrets、configmaps 和向下 API

    表示投影卷源

    • projected.defaultMode (int32)

      defaultMode 是默认情况下用于设置创建文件权限的模式位。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。路径中的目录不受此设置的影响。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

    • projected.sources ([]VolumeProjection)

      原子性:将在合并期间被替换

      sources 是卷投影的列表。此列表中的每个条目都处理一个源。

      可以与其他支持的卷类型一起投影的*投影。必须设置这些字段之一。*

      • projected.sources.clusterTrustBundle (ClusterTrustBundleProjection)

        ClusterTrustBundle 允许 Pod 在自动更新文件中访问 ClusterTrustBundle 对象的 .spec.trustBundle 字段。

        Alpha 版本,由 ClusterTrustBundleProjection 特性门控。

        可以通过名称或签名者名称和标签选择器的组合来选择 ClusterTrustBundle 对象。

        Kubelet 对写入 Pod 文件系统中的 PEM 内容执行积极的规范化。诸如块间注释和块标题之类的深奥 PEM 特性将被删除。证书将被去重。文件中证书的顺序是任意的,并且 Kubelet 可能会随着时间的推移更改顺序。

        ClusterTrustBundleProjection 描述了如何选择一组 ClusterTrustBundle 对象并将其内容投影到 Pod 文件系统中。

        • projected.sources.clusterTrustBundle.path (string), 必填

          从卷根目录写入捆绑包的相对路径。

        • projected.sources.clusterTrustBundle.labelSelector (LabelSelector)

          选择与此标签选择器匹配的所有 ClusterTrustBundles。仅在设置了 signerName 时才有效。与 name 互斥。如果未设置,则解释为“不匹配任何内容”。如果设置为空,则解释为“匹配所有内容”。

        • projected.sources.clusterTrustBundle.name (string)

          按对象名称选择单个 ClusterTrustBundle。与 signerName 和 labelSelector 互斥。

        • projected.sources.clusterTrustBundle.optional (布尔值)

          如果为 true,则在引用的 ClusterTrustBundle(s) 不可用时不要阻止 Pod 启动。如果使用 name,则允许命名的 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundles。

        • projected.sources.clusterTrustBundle.signerName (string)

          选择所有与该签名者名称匹配的 ClusterTrustBundles。与名称互斥。所有选定的 ClusterTrustBundles 的内容将被统一和去重。

      • projected.sources.configMap (ConfigMap 投影)

        有关要投影的 configMap 数据的 configMap 信息

        *将 ConfigMap 适配到投影卷。

        目标 ConfigMap 的 Data 字段的内容将以文件的形式呈现在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与没有默认模式的 configmap 卷来源相同。*

        • projected.sources.configMap.name (字符串)

          所指对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎可以肯定是错误的。更多信息:https://kubernetes.top/docs/concepts/overview/working-with-objects/names/#names

        • projected.sources.configMap.optional (布尔值)

          optional 指定是否必须定义 ConfigMap 或其键

        • projected.sources.configMap.items ([]键到路径)

          原子性:将在合并期间被替换

          items 如果未指定,则引用的 ConfigMap 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,列出的键将投影到指定的路径中,未列出的键将不存在。如果指定了 ConfigMap 中不存在的键,则卷设置将出错,除非将其标记为可选。路径必须是相对的,并且不能包含“..”路径或以“..”开头。

      • projected.sources.downwardAPI (DownwardAPI 投影)

        有关要投影的 downwardAPI 数据的 downwardAPI 信息

        表示用于投影到投影卷的向下 API 信息。请注意,这与没有默认模式的 downwardAPI 卷来源相同。

        • projected.sources.downwardAPI.items ([]DownwardAPIVolume 文件)

          原子性:将在合并期间被替换

          Items 是 DownwardAPIVolume 文件的列表

      • projected.sources.secret (Secret 投影)

        有关要投影的 secret 数据的 secret 信息

        *将 secret 适配到投影卷。

        目标 Secret 的 Data 字段的内容将以文件的形式呈现在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与没有默认模式的 secret 卷来源相同。*

        • projected.sources.secret.name (字符串)

          所指对象的名称。此字段实际上是必需的,但由于向后兼容性,允许为空。此处为空值的此类型实例几乎可以肯定是错误的。更多信息:https://kubernetes.top/docs/concepts/overview/working-with-objects/names/#names

        • projected.sources.secret.optional (布尔值)

          可选字段,指定是否必须定义 Secret 或其密钥

        • projected.sources.secret.items ([]键到路径)

          原子性:将在合并期间被替换

          如果未指定 items,则引用的 Secret 的 Data 字段中的每个键值对都将作为文件投影到卷中,其名称为键,内容为值。如果指定,列出的键将投影到指定的路径中,未列出的键将不存在。如果指定的键在 Secret 中不存在,则卷设置将出错,除非将其标记为可选。路径必须是相对的,并且不能包含 '..' 路径或以 '..' 开头。

      • projected.sources.serviceAccountToken (ServiceAccountToken 投影)

        serviceAccountToken 是有关要投影的 serviceAccountToken 数据的信息

        ServiceAccountTokenProjection 表示投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入 Pod 的运行时文件系统,以便对 API(Kubernetes API 服务器或其他)使用。

        • projected.sources.serviceAccountToken.path (字符串),必需

          path 是将令牌投影到的文件相对于挂载点的路径。

        • projected.sources.serviceAccountToken.audience (字符串)

          audience 是令牌的目标受众。令牌的接收者必须使用令牌受众中指定的标识符来标识自身,否则应拒绝令牌。受众默认为 apiserver 的标识符。

        • projected.sources.serviceAccountToken.expirationSeconds (int64)

          expirationSeconds 是服务帐户令牌的请求有效期。随着令牌接近过期,kubelet 卷插件将主动轮换服务帐户令牌。如果令牌的生存时间超过其 80%,或者令牌超过 24 小时,kubelet 将开始尝试轮换令牌。默认为 1 小时,必须至少为 10 分钟。

本地/临时目录

持久卷

  • awsElasticBlockStore (AWSElasticBlockStore 卷来源)

    awsElasticBlockStore 表示连接到 kubelet 主机然后暴露给 Pod 的 AWS 磁盘资源。更多信息:https://kubernetes.top/docs/concepts/storage/volumes#awselasticblockstore

    *表示 AWS 中的持久磁盘资源。

    在挂载到容器之前,必须存在 AWS EBS 磁盘。磁盘还必须与 kubelet 位于同一 AWS 区域中。AWS EBS 磁盘只能作为读/写挂载一次。AWS EBS 卷支持所有权管理和 SELinux 重新标记。*

  • azureDisk (AzureDisk 卷来源)

    azureDisk 表示主机上的 Azure 数据磁盘挂载并绑定挂载到 Pod。

    AzureDisk 表示主机上的 Azure 数据磁盘挂载并绑定挂载到 Pod。

    • azureDisk.diskName (字符串),必需

      diskName 是 blob 存储中数据磁盘的名称

    • azureDisk.diskURI (字符串),必需

      diskURI 是 blob 存储中数据磁盘的 URI

    • azureDisk.cachingMode (字符串)

      cachingMode 是主机缓存模式:无、只读、读写。

    • azureDisk.fsType (字符串)

      fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如:"ext4"、"xfs"、"ntfs"。如果未指定,则隐式推断为 "ext4"。

    • azureDisk.kind (字符串)

      kind 预期值为 Shared:每个存储帐户多个 blob 磁盘 Dedicated:每个存储帐户单个 blob 磁盘 Managed:azure 托管数据磁盘(仅在托管可用性集中)。默认为共享

    • azureDisk.readOnly (布尔值)

      readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

  • azureFile (AzureFile 卷来源)

    azureFile 表示主机上的 Azure 文件服务挂载并绑定挂载到 Pod。

    AzureFile 表示主机上的 Azure 文件服务挂载并绑定挂载到 Pod。

    • azureFile.secretName (字符串),必需

      secretName 是包含 Azure 存储帐户名称和密钥的 secret 的名称

    • azureFile.shareName (字符串),必需

      shareName 是 azure 共享名称

    • azureFile.readOnly (布尔值)

      readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

  • cephfs (CephFS 卷来源)

    cephFS 表示主机上共享 Pod 生存期的 Ceph FS 挂载

    表示 Ceph 文件系统挂载,该挂载持续 Pod 的生存期 Cephfs 卷不支持所有权管理或 SELinux 重新标记。

  • cinder (Cinder 卷来源)

    cinder 表示附加到 kubelet 主机并挂载在其上的 cinder 卷。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

    表示 Openstack 中的 cinder 卷资源。Cinder 卷必须在挂载到容器之前存在。该卷还必须与 kubelet 位于同一区域。Cinder 卷支持所有权管理和 SELinux 重新标记。

  • csi (CSIVolumeSource)

    csi(容器存储接口)表示由某些外部 CSI 驱动程序处理的临时存储(测试功能)。

    表示要挂载的卷的源位置,由外部 CSI 驱动程序管理

    • csi.driver (字符串),必需

      driver 是处理此卷的 CSI 驱动程序的名称。请咨询您的管理员以获取在集群中注册的正确名称。

    • csi.fsType (字符串)

      要挂载的 fsType。例如“ext4”、“xfs”、“ntfs”。如果未提供,则空值将传递给关联的 CSI 驱动程序,该驱动程序将确定要应用的默认文件系统。

    • csi.nodePublishSecretRefLocalObjectReference

      nodePublishSecretRef 是对 Secret 对象的引用,该对象包含要传递给 CSI 驱动程序以完成 CSI NodePublishVolume 和 NodeUnpublishVolume 调用的敏感信息。此字段是可选的,如果不需要 Secret,则可以为空。如果 Secret 对象包含多个 Secret,则所有 Secret 引用都会传递。

    • csi.readOnly (布尔值)

      readOnly 指定卷的只读配置。默认为 false(读/写)。

    • csi.volumeAttributes (map[string]string)

      volumeAttributes 存储传递给 CSI 驱动程序的特定于驱动程序的属性。有关支持的值,请参阅您的驱动程序文档。

  • ephemeral (EphemeralVolumeSource)

    ephemeral 表示由集群存储驱动程序处理的卷。卷的生命周期与定义它的 Pod 绑定 - 它将在 Pod 启动之前创建,并在 Pod 删除时删除。

    在以下情况下使用它:a) 卷仅在 Pod 运行时才需要,b) 需要正常卷的功能,例如从快照恢复或容量跟踪,c) 存储驱动程序是通过存储类指定的,以及 d) 存储驱动程序支持通过 PersistentVolumeClaim 进行动态卷配置(有关此卷类型与 PersistentVolumeClaim 之间连接的更多信息,请参阅 EphemeralVolumeSource)。

    对于持续时间超过单个 Pod 生命周期卷,请使用 PersistentVolumeClaim 或其中一个供应商特定的 API。

    如果 CSI 驱动程序旨在以这种方式使用,请将 CSI 用于轻量级本地临时卷 - 有关更多信息,请参阅驱动程序的文档。

    一个 Pod 可以同时使用两种类型的临时卷和持久卷。

    表示由普通存储驱动程序处理的临时卷。

    • ephemeral.volumeClaimTemplate (PersistentVolumeClaimTemplate)

      将用于创建独立的 PVC 以配置卷。嵌入此 EphemeralVolumeSource 的 Pod 将是 PVC 的所有者,即 PVC 将与 Pod 一起删除。PVC 的名称将是 \<pod 名称>-\<卷名称>,其中 \<卷名称> 是来自 PodSpec.Volumes 数组条目的名称。如果连接的名称对 PVC 无效(例如,太长),Pod 验证将拒绝该 Pod。

      具有该名称且不属于该 Pod 的现有 PVC 将*不会*用于该 Pod,以避免错误地使用不相关的卷。然后阻止启动 Pod,直到删除不相关的 PVC。如果 Pod 要使用此类预先创建的 PVC,则必须在 Pod 存在后使用对 Pod 的所有者引用更新 PVC。通常情况下,这应该没有必要,但在手动重建损坏的集群时可能会有用。

      此字段是只读的,Kubernetes 在创建 PVC 后不会对其进行任何更改。

      必需,不能为空。

      PersistentVolumeClaimTemplate 用于生成 PersistentVolumeClaim 对象作为 EphemeralVolumeSource 的一部分。

      • ephemeral.volumeClaimTemplate.specPersistentVolumeClaimSpec),必需

        PersistentVolumeClaim 的规范。整个内容原封不动地复制到从此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此处也有效。

      • ephemeral.volumeClaimTemplate.metadataObjectMeta

        可能包含将在创建 PVC 时复制到 PVC 中的标签和注释。不允许使用其他字段,并且在验证期间将被拒绝。

  • fc (FCVolumeSource)

    fc 表示连接到 kubelet 主机的 Fibre Channel 资源,然后公开给 Pod。

    表示光纤通道卷。光纤通道卷只能作为读/写挂载一次。光纤通道卷支持所有权管理和 SELinux 重新标记。

    • fc.fsType (字符串)

      fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

    • fc.lun (int32)

      lun 是可选的:FC 目标 lun 编号

    • fc.readOnly (布尔值)

      readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

    • fc.targetWWNs ([]string)

      原子性:将在合并期间被替换

      targetWWNs 是可选的:FC 目标全球名称 (WWN)

    • fc.wwids ([]string)

      原子性:将在合并期间被替换

      wwids 可选:FC 卷全球标识符 (wwid) 必须设置 wwid 或 targetWWN 和 lun 的组合,但不能同时设置两者。

  • flexVolume (FlexVolumeSource)

    flexVolume 表示使用基于 exec 的插件配置/附加的通用卷资源。

    FlexVolume 表示使用基于 exec 的插件配置/附加的通用卷资源。

    • flexVolume.driver (字符串),必需

      driver 是用于此卷的驱动程序的名称。

    • flexVolume.fsType (字符串)

      fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”、“ntfs”。默认文件系统取决于 FlexVolume 脚本。

    • flexVolume.options (map[string]string)

      options 是可选的:此字段包含额外的命令选项(如果有)。

    • flexVolume.readOnly (布尔值)

      readOnly 是可选的:默认为 false(读/写)。此处的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

    • flexVolume.secretRefLocalObjectReference

      secretRef 是可选的:secretRef 是对 Secret 对象的引用,该对象包含要传递给插件脚本的敏感信息。如果未指定 Secret 对象,则此字段可以为空。如果 Secret 对象包含多个 Secret,则所有 Secret 都会传递给插件脚本。

  • flocker (FlockerVolumeSource)

    flocker 表示附加到 kubelet 主机的 Flocker 卷。这取决于 Flocker 控制服务是否正在运行

    表示由 Flocker 代理挂载的 Flocker 卷。应该设置 datasetName 和 datasetUUID 中的一个且仅一个。Flocker 卷不支持所有权管理或 SELinux 重新标记。

    • flocker.datasetName (字符串)

      datasetName 是存储为元数据 -> 数据集上名称的数据集名称,对于 Flocker,应将其视为已弃用

    • flocker.datasetUUID (字符串)

      datasetUUID 是数据集的 UUID。这是 Flocker 数据集的唯一标识符

  • gcePersistentDisk (GCEPersistentDiskVolumeSource)

    gcePersistentDisk 表示附加到 kubelet 主机然后公开给 Pod 的 GCE 磁盘资源。更多信息:https://kubernetes.top/docs/concepts/storage/volumes#gcepersistentdisk

    *表示 Google Compute Engine 中的永久磁盘资源。

    GCE PD 必须在挂载到容器之前存在。该磁盘还必须与 kubelet 位于同一个 GCE 项目和区域中。GCE PD 只能作为读/写挂载一次或作为只读挂载多次。GCE PD 支持所有权管理和 SELinux 重新标记。*

  • glusterfs (GlusterfsVolumeSource)

    glusterfs 表示主机上与 Pod 生命周期共享的 Glusterfs 挂载。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md

    表示持续 Pod 生命周期的 Glusterfs 挂载。Glusterfs 卷不支持所有权管理或 SELinux 重新标记。

  • **iscsi** (ISCSIVolumeSource)

    iscsi 表示连接到 kubelet 主机然后公开给 pod 的 ISCSI 磁盘资源。更多信息: https://examples.k8s.io/volumes/iscsi/README.md

    *表示 ISCSI 磁盘。 ISCSI 卷只能作为读/写挂载一次。 ISCSI 卷支持所有权管理和 SELinux 重新标记。*

    • **iscsi.iqn** (字符串),必需

      iqn 是目标 iSCSI 限定名称。

    • **iscsi.lun** (int32), 必需

      lun 表示 iSCSI Target Lun 编号。

    • **iscsi.targetPortal** (字符串),必需

      targetPortal 是 iSCSI Target Portal。Portal 可以是 IP 地址,如果端口不是默认端口(通常是 TCP 端口 860 和 3260),则为 ip_addr:port 格式。

    • iscsi.chapAuthDiscovery (布尔值)

      chapAuthDiscovery 定义是否支持 iSCSI Discovery CHAP 身份验证。

    • iscsi.chapAuthSession (布尔值)

      chapAuthSession 定义是否支持 iSCSI Session CHAP 身份验证。

    • iscsi.fsType (字符串)

      fsType 是要挂载的卷的文件系统类型。提示:确保主机操作系统支持该文件系统类型。例如:"ext4"、"xfs"、"ntfs"。如果未指定,则隐式推断为 "ext4"。更多信息:https://kubernetes.top/docs/concepts/storage/volumes#iscsi

    • iscsi.initiatorName (字符串)

      initiatorName 是自定义 iSCSI Initiator 名称。如果 initiatorName 与 iscsiInterface 同时指定,将为连接创建新的 iSCSI 接口 <target portal>:<volume name>。

    • iscsi.iscsiInterface (字符串)

      iscsiInterface 是使用 iSCSI 传输的接口名称。默认为 'default' (tcp)。

    • iscsi.portals ([]string,字符串数组)

      原子性:将在合并期间被替换

      portals 是 iSCSI Target Portal 列表。Portal 可以是 IP 地址,如果端口不是默认端口(通常是 TCP 端口 860 和 3260),则为 ip_addr:port 格式。

    • iscsi.readOnly (布尔值)

      readOnly 将强制在 VolumeMounts 中设置 ReadOnly。默认为 false。

    • iscsi.secretRefLocalObjectReference

      secretRef 是用于 iSCSI 目标和发起程序身份验证的 CHAP Secret。

  • image (ImageVolumeSource)

    image 表示一个 OCI 对象(容器镜像或制品),它会在 kubelet 的主机上被拉取并挂载。卷的解析在 Pod 启动时进行,具体取决于提供的 PullPolicy 值。

    • Always:kubelet 总是尝试拉取镜像。如果拉取失败,容器创建将失败。 - Never:kubelet 从不拉取镜像,仅使用本地镜像或制品。如果镜像不存在,容器创建将失败。 - IfNotPresent:如果镜像在磁盘上不存在,kubelet 将拉取镜像。如果镜像不存在且拉取失败,容器创建将失败。

    如果 Pod 被删除并重新创建,卷将被重新解析,这意味着新的远程内容将在 Pod 重新创建时可用。如果在 Pod 启动期间无法解析或拉取镜像,将阻止容器启动,并可能增加明显的延迟。失败将使用正常的卷回退机制进行重试,并将在 Pod 的 reason 和 message 中报告。可由此卷挂载的对象类型由主机上的容器运行时实现定义,并且至少必须包含容器镜像字段支持的所有有效类型。OCI 对象通过以与容器镜像相同的方式合并清单层,被挂载到单个目录 (spec.containers[*].volumeMounts.mountPath) 中。该卷将以只读 (ro) 和不可执行文件 (noexec) 的方式挂载。不支持容器的子路径挂载 (spec.containers[*].volumeMounts.subpath)。字段 spec.securityContext.fsGroupChangePolicy 对此卷类型无效。

    ImageVolumeSource 表示一个镜像卷资源。

    • image.pullPolicy (字符串)

      拉取 OCI 对象的策略。可能的值为:Always:kubelet 总是尝试拉取镜像。如果拉取失败,容器创建将失败。Never:kubelet 从不拉取镜像,仅使用本地镜像或制品。如果镜像不存在,容器创建将失败。IfNotPresent:如果镜像在磁盘上不存在,kubelet 将拉取镜像。如果镜像不存在且拉取失败,容器创建将失败。如果指定了 :latest 标签,则默认为 Always,否则默认为 IfNotPresent。

    • image.reference (字符串)

      必需:要使用的镜像或制品引用。其行为与 pod.spec.containers[*].image 相同。拉取密钥将以与容器镜像相同的方式组装,方法是查找节点凭据、SA 镜像拉取密钥和 Pod 规范镜像拉取密钥。更多信息:https://kubernetes.top/docs/concepts/containers/images 此字段是可选的,允许更高级别的配置管理在工作负载控制器(如 Deployments 和 StatefulSets)中默认或覆盖容器镜像。

  • nfs (NFSVolumeSource)

    nfs 表示主机上的 NFS 挂载,它共享 Pod 的生命周期。更多信息:https://kubernetes.top/docs/concepts/storage/volumes#nfs

    表示一个 NFS 挂载,该挂载持续 Pod 的生命周期。NFS 卷不支持所有权管理或 SELinux 重标记。

  • **photonPersistentDisk** (PhotonPersistentDiskVolumeSource)

    photonPersistentDisk 表示连接到 kubelet 主机并挂载的 PhotonController 持久磁盘。

    *PhotonPersistentDiskVolumeSource 表示 Photon Controller 持久磁盘资源。*

    • **photonPersistentDisk.pdID** (字符串), 必需

      pdID 是标识 Photon Controller 持久磁盘的 ID。

    • **photonPersistentDisk.fsType** (字符串)

      fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

  • **portworxVolume** (PortworxVolumeSource)

    portworxVolume 表示连接到 kubelet 主机并挂载的 Portworx 卷。

    *PortworxVolumeSource 表示 Portworx 卷资源。*

    • **portworxVolume.volumeID** (字符串), 必需

      volumeID 唯一标识 Portworx 卷。

    • **portworxVolume.fsType** (字符串)

      fSType 表示要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如 "ext4"、"xfs"。如果未指定,则隐式推断为 "ext4"。

    • **portworxVolume.readOnly** (布尔值)

      readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

  • **quobyte** (QuobyteVolumeSource)

    quobyte 表示主机上的 Quobyte 挂载,它共享 pod 的生命周期。

    *表示 Quobyte 挂载,持续 pod 的生命周期。Quobyte 卷不支持所有权管理或 SELinux 重新标记。*

    • **quobyte.registry** (字符串), 必需

      registry 表示一个或多个 Quobyte 注册表服务,指定为字符串形式的 host:port 对(多个条目用逗号分隔),作为卷的中央注册表。

    • **quobyte.volume** (字符串), 必需

      volume 是一个字符串,按名称引用已创建的 Quobyte 卷。

    • **quobyte.group** (字符串)

      映射卷访问权限的组。默认为无组。

    • **quobyte.readOnly** (布尔值)

      readOnly 将强制以只读权限挂载 Quobyte 卷。默认为 false。

    • **quobyte.tenant** (字符串)

      在后端拥有给定 Quobyte 卷的租户。与动态配置的 Quobyte 卷一起使用,值由插件设置。

    • **quobyte.user** (字符串)

      映射卷访问权限的用户。默认为服务帐户用户。

  • **rbd** (RBDVolumeSource)

    rbd 表示主机上的 Rados 块设备挂载,它共享 pod 的生命周期。更多信息: https://examples.k8s.io/volumes/rbd/README.md

    *表示 Rados 块设备挂载,持续 pod 的生命周期。RBD 卷支持所有权管理和 SELinux 重新标记。*

  • **scaleIO** (ScaleIOVolumeSource)

    scaleIO 表示连接到 Kubernetes 节点并挂载的 ScaleIO 持久卷。

    *ScaleIOVolumeSource 表示持久 ScaleIO 卷*

    • **scaleIO.gateway** (字符串), 必需

      gateway 是 ScaleIO API 网关的主机地址。

    • **scaleIO.secretRef** (LocalObjectReference), 必需

      secretRef 引用 ScaleIO 用户和其他敏感信息的密钥。如果未提供,登录操作将失败。

    • **scaleIO.system** (字符串), 必需

      system 是在 ScaleIO 中配置的存储系统名称。

    • **scaleIO.fsType** (字符串)

      fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如 "ext4"、"xfs"、"ntfs"。默认为 "xfs"。

    • **scaleIO.protectionDomain** (字符串)

      protectionDomain 是配置存储的 ScaleIO 保护域的名称。

    • **scaleIO.readOnly** (布尔值)

      readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

    • scaleIO.sslEnabled (布尔值)

      sslEnabled 标志启用/禁用与网关的 SSL 通信,默认为 false。

    • scaleIO.storageMode (字符串)

      storageMode 指示卷的存储应为厚配置还是精简配置。默认为 ThinProvisioned(精简配置)。

    • scaleIO.storagePool (字符串)

      storagePool 是与保护域关联的 ScaleIO 存储池。

    • scaleIO.volumeName (字符串)

      volumeName 是 ScaleIO 系统中已创建的与该卷来源关联的卷的名称。

  • storageos (StorageOSVolumeSource)

    storageOS 表示附加并挂载在 Kubernetes 节点上的 StorageOS 卷。

    表示 StorageOS 持久卷资源。

    • storageos.fsType (字符串)

      fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如“ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

    • storageos.readOnly (布尔值)

      readOnly 默认为 false(读/写)。此处的 ReadOnly 将强制 VolumeMounts 中的 ReadOnly 设置。

    • storageos.secretRef (LocalObjectReference)

      secretRef 指定用于获取 StorageOS API 凭据的 Secret。如果未指定,将尝试使用默认值。

    • storageos.volumeName (字符串)

      volumeName 是 StorageOS 卷的人类可读名称。卷名称仅在命名空间内唯一。

    • storageos.volumeNamespace (字符串)

      volumeNamespace 指定 StorageOS 中卷的范围。如果未指定命名空间,则将使用 Pod 的命名空间。这允许 Kubernetes 名称范围在 StorageOS 中镜像,以实现更紧密的集成。将 VolumeName 设置为任何名称以覆盖默认行为。如果您没有在 StorageOS 中使用命名空间,请设置为“default”。StorageOS 中不存在的命名空间将被创建。

  • vsphereVolume (VsphereVirtualDiskVolumeSource)

    vsphereVolume 表示附加并挂载在 kubelets 主机上的 vSphere 卷。

    表示 vSphere 卷资源。

    • vsphereVolume.volumePath (字符串),必需

      volumePath 是标识 vSphere 卷 vmdk 的路径。

    • vsphereVolume.fsType (字符串)

      fsType 是要挂载的文件系统类型。必须是主机操作系统支持的文件系统类型。例如 “ext4”、“xfs”、“ntfs”。如果未指定,则隐式推断为“ext4”。

    • vsphereVolume.storagePolicyID (字符串)

      storagePolicyID 是与 StoragePolicyName 关联的存储策略管理 (SPBM) 配置文件 ID。

    • vsphereVolume.storagePolicyName (字符串)

      storagePolicyName 是存储策略管理 (SPBM) 配置文件名称。

已弃用

  • gitRepo (GitRepoVolumeSource)

    gitRepo 表示特定修订版中的 git 存储库。已弃用:GitRepo 已弃用。要使用 git 存储库配置容器,请将 EmptyDir 挂载到使用 git 克隆存储库的 InitContainer 中,然后将 EmptyDir 挂载到 Pod 的容器中。

    *表示使用 git 存储库的内容填充的卷。Git 存储库卷不支持所有权管理。Git 存储库卷支持 SELinux 重新标记。

    已弃用:GitRepo 已弃用。要使用 git 存储库配置容器,请将 EmptyDir 挂载到使用 git 克隆存储库的 InitContainer 中,然后将 EmptyDir 挂载到 Pod 的容器中。*

    • gitRepo.repository (字符串),必需

      repository 是 URL。

    • gitRepo.directory (字符串)

      directory 是目标目录名称。不得包含或以 '..' 开头。如果提供 '.',则卷目录将是 git 存储库。否则,如果指定,则卷将在具有给定名称的子目录中包含 git 存储库。

    • gitRepo.revision (字符串)

      revision 是指定修订版的提交哈希值。

DownwardAPIVolumeFile

DownwardAPIVolumeFile 表示创建包含 Pod 字段的文件的信息。


  • path (字符串),必需

    必需:Path 是要创建的文件的相对路径名。不得是绝对路径或包含 '..' 路径。必须采用 UTF-8 编码。相对路径的第一个项目不得以 '..' 开头。

  • fieldRef (ObjectFieldSelector)

    必需:选择 Pod 的字段:仅支持 annotations、labels、name、namespace 和 uid。

  • mode (int32)

    可选:用于设置此文件权限的模式位,必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。如果未指定,将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

  • resourceFieldRef (ResourceFieldSelector)

    选择容器的资源:当前仅支持资源限制和请求(limits.cpu、limits.memory、requests.cpu 和 requests.memory)。

KeyToPath

将字符串键映射到卷内的路径。


  • key (字符串),必需

    key 是要投影的键。

  • path (字符串),必需

    path 是要将键映射到的文件的相对路径。不能是绝对路径。不能包含路径元素 '..'。不能以字符串 '..' 开头。

  • mode (int32)

    mode 是可选的:用于设置此文件权限的模式位。必须是 0000 到 0777 之间的八进制值或 0 到 511 之间的十进制值。YAML 接受八进制和十进制值,JSON 需要模式位的十进制值。如果未指定,将使用卷 defaultMode。这可能与影响文件模式的其他选项(如 fsGroup)冲突,结果可能是设置了其他模式位。

此页面自动生成。

如果您计划报告此页面的问题,请在问题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目的其他地方进行。

上次修改时间:太平洋标准时间 2024 年 8 月 24 日晚上 10:29:为 v1.31 更新生成的 API 参考 (890b36a496)