Volume 表示 Pod 中一个命名卷,该卷可被 Pod 中的任何容器访问。

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

Volume 表示 Pod 中一个命名卷,该卷可被 Pod 中的任何容器访问。


将持久卷暴露给 Pod

投射卷

  • configMap (ConfigMapVolumeSource)

    configMap 代表一个应填充此卷的 ConfigMap

    *将 ConfigMap 改编为卷。

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

    • configMap.name (string)

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

    • configMap.optional (boolean)

      optional 指定 ConfigMap 或其键是否必须存在

    • configMap.defaultMode (int32)

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

    • configMap.items ([]KeyToPath)

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

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

  • secret (SecretVolumeSource)

    secret 代表一个应填充此卷的 Secret。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

    *将 Secret 改编为卷。

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

    • secret.secretName (string)

      secretName 是 Pod 所在的 Namespace 中要使用的 Secret 的名称。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#secret

    • secret.optional (boolean)

      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 的 downward API 信息

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

    • downwardAPI.defaultMode (int32)

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

    • downwardAPI.items ([]DownwardAPIVolumeFile)

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

      Items 是 downward API 卷文件的列表

  • projected (ProjectedVolumeSource)

    投射卷中的项目,用于整合 Secret、ConfigMap 和 downward 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 Feature Gate 控制。

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

        Kubelet 对写入 Pod 文件系统的 PEM 内容执行严格的规范化。剥离了诸如块间注释和块头等深奥的 PEM 特性。证书是去重后的。文件中的证书顺序是任意的,Kubelet 可能会随时间改变顺序。

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

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

          从卷根目录到写入 bundle 的相对路径。

        • projected.sources.clusterTrustBundle.labelSelector (LabelSelector)

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

        • projected.sources.clusterTrustBundle.name (string)

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

        • projected.sources.clusterTrustBundle.optional (boolean)

          如果为 true,则在引用的 ClusterTrustBundle 不可用时不会阻止 Pod 启动。如果使用 name,则允许指定的 ClusterTrustBundle 不存在。如果使用 signerName,则允许 signerName 和 labelSelector 的组合匹配零个 ClusterTrustBundle。

        • projected.sources.clusterTrustBundle.signerName (string)

          选择所有与此签名者名称匹配的 ClusterTrustBundle。与 name 互斥。所有选定的 ClusterTrustBundle 的内容将被合并和去重。

      • projected.sources.configMap (ConfigMapProjection)

        configMap 提供关于要投射的 ConfigMap 数据的信息

        *将 ConfigMap 改编为投射卷。

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

        • projected.sources.configMap.name (string)

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

        • projected.sources.configMap.optional (boolean)

          optional 指定 ConfigMap 或其键是否必须存在

        • projected.sources.configMap.items ([]KeyToPath)

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

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

      • projected.sources.downwardAPI (DownwardAPIProjection)

        downwardAPI 提供关于要投射的 downwardAPI 数据的信息

        表示用于投射到投射卷中的 downward API 信息。注意,这与没有 default mode 的 downwardAPI 卷源相同。

        • projected.sources.downwardAPI.items ([]DownwardAPIVolumeFile)

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

          Items 是 DownwardAPIVolume 文件的列表

      • projected.sources.secret (SecretProjection)

        secret 提供关于要投射的 Secret 数据的信息

        *将 Secret 改编为投射卷。

        目标 Secret 的 Data 字段内容将以文件的形式呈现在投射卷中,文件名称使用 Data 字段中的键。注意,这与没有 default mode 的 secret 卷源相同。*

        • projected.sources.secret.name (string)

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

        • projected.sources.secret.optional (boolean)

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

        • projected.sources.secret.items ([]KeyToPath)

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

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

      • projected.sources.serviceAccountToken (ServiceAccountTokenProjection)

        serviceAccountToken 提供关于要投射的 serviceAccountToken 数据的信息

        ServiceAccountTokenProjection 表示一个投射的 Service Account 令牌卷。此投射可用于将 Service Account 令牌插入 Pod 的运行时文件系统,以便用于访问 API(Kubernetes API Server 或其他)。

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

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

        • projected.sources.serviceAccountToken.audience (string)

          audience 是令牌的预期接收者。令牌的接收者必须使用令牌的 audience 中指定的标识符来标识自己,否则应该拒绝该令牌。audience 默认为 apiserver 的标识符。

        • projected.sources.serviceAccountToken.expirationSeconds (int64)

          expirationSeconds 是请求的 Service Account 令牌的有效期。当令牌接近过期时,kubelet 卷插件将主动轮换 Service Account 令牌。如果令牌的生命周期超过其生存时间的 80% 或令牌已存在超过 24 小时,kubelet 将开始尝试轮换令牌。默认为 1 小时,且必须至少为 10 分钟。

本地/临时目录

持久卷

  • awsElasticBlockStore (AWSElasticBlockStoreVolumeSource)

    awsElasticBlockStore 表示附加到 kubelet 主机然后暴露给 Pod 的 AWS Disk 资源。已弃用:AWSElasticBlockStore 已弃用。针对树内 awsElasticBlockStore 类型的所有操作都重定向到 ebs.csi.aws.com CSI 驱动。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#awselasticblockstore

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

    AWS EBS 盘在挂载到容器之前必须存在。该盘还必须与 kubelet 位于同一 AWS 区域。AWS EBS 盘只能作为 read/write once 模式挂载。AWS EBS 卷支持所有权管理和 SELinux 重新标记。*

  • azureDisk (AzureDiskVolumeSource)

    azureDisk 表示在主机上挂载 Azure 数据盘并绑定挂载到 Pod。已弃用:AzureDisk 已弃用。针对树内 azureDisk 类型的所有操作都重定向到 disk.csi.azure.com CSI 驱动。

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

    • azureDisk.diskName (string),必填

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

    • azureDisk.diskURI (string),必填

      diskURI 是 blob 存储中数据盘的 URI

    • azureDisk.cachingMode (string)

      cachingMode 是主机缓存模式:None, Read Only, Read Write。

    • azureDisk.fsType (string)

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

    • azureDisk.kind (string)

      kind 预期值包括 Shared:每个存储帐户多个 blob 盘;Dedicated:每个存储帐户单个 blob 盘;Managed:Azure 托管数据盘(仅在托管可用性集中)。默认为 shared。

    • azureDisk.readOnly (boolean)

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

  • azureFile (AzureFileVolumeSource)

    azureFile 表示在主机上挂载 Azure 文件服务并绑定挂载到 Pod。已弃用:AzureFile 已弃用。针对树内 azureFile 类型的所有操作都重定向到 file.csi.azure.com CSI 驱动。

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

    • azureFile.secretName (string),必填

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

    • azureFile.shareName (string),必填

      shareName 是 Azure 共享名称

    • azureFile.readOnly (boolean)

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

  • cephfs (CephFSVolumeSource)

    cephFS 表示在主机上挂载一个与 Pod 生命周期共享的 Ceph FS。已弃用:CephFS 已弃用,树内 cephfs 类型不再支持。

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

  • cinder (CinderVolumeSource)

    cinder 表示附加并挂载到 kubelet 主机上的 Cinder 卷。已弃用:Cinder 已弃用。针对树内 cinder 类型的所有操作都重定向到 cinder.csi.openstack.org CSI 驱动。更多信息:https://examples.k8s.io/mysql-cinder-pd/README.md

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

  • csi (CSIVolumeSource)

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

    代表一个由外部 CSI 驱动程序管理的、要挂载的卷的源位置

    • csi.driver (string),必需

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

    • csi.fsType (string)

      要挂载的 fsType。示例:"ext4"、"xfs"、"ntfs"。如果未提供,空值将传递给相关的 CSI 驱动程序,由其确定要应用的默认文件系统。

    • csi.nodePublishSecretRef (LocalObjectReference)

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

    • csi.readOnly (boolean)

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

    • csi.volumeAttributes (map[string]string)

      volumeAttributes 存储传递给 CSI 驱动程序的驱动程序特定属性。请查阅驱动程序的文档以了解支持的值。

  • ephemeral (EphemeralVolumeSource)

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

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

    对于生命周期长于单个 Pod 的卷,请使用 PersistentVolumeClaim 或供应商特定的 API 之一。

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

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

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

    • ephemeral.volumeClaimTemplate (PersistentVolumeClaimTemplate)

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

      一个已存在但非由该 Pod 拥有的同名 PVC 将不会被该 Pod 使用,以避免误用无关的卷。在这种情况下,Pod 的启动将被阻塞,直到该无关的 PVC 被移除。如果打算让 Pod 使用此类预创建的 PVC,则在该 Pod 存在后,需要更新该 PVC,为其添加指向该 Pod 的 owner reference。通常情况下不需要这样做,但在手动重建损坏的集群时可能有用。

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

      必需,不能为 nil。

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

      • ephemeral.volumeClaimTemplate.spec (PersistentVolumeClaimSpec),必需

        PersistentVolumeClaim 的规范。全部内容将原样复制到由此模板创建的 PVC 中。与 PersistentVolumeClaim 中的字段相同。

      • ephemeral.volumeClaimTemplate.metadata (ObjectMeta)

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

  • fc (FCVolumeSource)

    fc 代表一个连接到 kubelet 主机并随后暴露给 Pod 的光纤通道资源。

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

    • fc.fsType (string)

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

    • fc.lun (int32)

      lun 是可选的:FC 目标 LUN 号码

    • fc.readOnly (boolean)

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

    • fc.targetWWNs ([]string)

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

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

    • fc.wwids ([]string)

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

      wwids 是可选的:FC 卷全球标识符 (WWID)。wwids 或 targetWWNs 和 lun 的组合必须设置一个,但不能同时设置两个。

  • flexVolume (FlexVolumeSource)

    flexVolume 代表一个通用卷资源,使用基于 exec 的插件进行供应/附加。已弃用:FlexVolume 已被弃用。考虑使用 CSIDriver。

    FlexVolume 代表一个使用基于 exec 的插件进行供应/附加的通用卷资源。

    • flexVolume.driver (string),必需

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

    • flexVolume.fsType (string)

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

    • flexVolume.options (map[string]string)

      options 是可选的:此字段包含任何额外的命令选项。

    • flexVolume.readOnly (boolean)

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

    • flexVolume.secretRef (LocalObjectReference)

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

  • flocker (FlockerVolumeSource)

    flocker 代表一个连接到 kubelet 主机上的 Flocker 卷。这取决于 Flocker 控制服务是否正在运行。已弃用:Flocker 已被弃用,不再支持 in-tree 的 flocker 类型。

    代表一个由 Flocker 代理挂载的 Flocker 卷。datasetName 和 datasetUUID 必须且只能设置一个。Flocker 卷不支持所有权管理或 SELinux 重新标记。

    • flocker.datasetName (string)

      datasetName 是作为数据集元数据 -> name 存储的数据集的名称。对于 Flocker 而言,此字段应被视为已弃用

    • flocker.datasetUUID (string)

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

  • gcePersistentDisk (GCEPersistentDiskVolumeSource)

    gcePersistentDisk 代表一个连接到 kubelet 主机并随后暴露给 Pod 的 GCE Disk 资源。已弃用:GCEPersistentDisk 已被弃用。in-tree 的 gcePersistentDisk 类型的所有操作都将重定向到 pd.csi.storage.gke.io CSI 驱动程序。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes#gcepersistentdisk

    *代表 Google Compute Engine 中的持久盘资源。

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

  • glusterfs (GlusterfsVolumeSource)

    glusterfs 代表主机上的 Glusterfs 挂载,与 Pod 的生命周期共享。已弃用:Glusterfs 已被弃用,不再支持 in-tree 的 glusterfs 类型。更多信息:https://examples.k8s.io/volumes/glusterfs/README.md

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

  • iscsi (ISCSIVolumeSource)

    iscsi 代表一个连接到 kubelet 主机并随后暴露给 Pod 的 ISCSI Disk 资源。更多信息:https://examples.k8s.io/volumes/iscsi/README.md

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

    • iscsi.iqn (string),必需

      iqn 是目标 iSCSI 限定名称。

    • iscsi.lun (int32),必需

      lun 代表 iSCSI 目标 LUN 号码。

    • iscsi.targetPortal (string),必需

      targetPortal 是 iSCSI 目标门户。如果端口不是默认端口(通常是 TCP 端口 860 和 3260),门户可以是 IP 或 ip_addr:port 的形式。

    • iscsi.chapAuthDiscovery (boolean)

      chapAuthDiscovery 定义是否支持 iSCSI 发现 CHAP 认证

    • iscsi.chapAuthSession (boolean)

      chapAuthSession 定义是否支持 iSCSI 会话 CHAP 认证

    • iscsi.fsType (string)

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

    • iscsi.initiatorName (string)

      initiatorName 是自定义的 iSCSI 发起者名称。如果同时指定 initiatorName 和 iscsiInterface,则将为连接创建一个新的 iSCSI 接口 <target portal>:<volume name>。

    • iscsi.iscsiInterface (string)

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

    • iscsi.portals ([]string)

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

      portals 是 iSCSI 目标门户列表。如果端口不是默认端口(通常是 TCP 端口 860 和 3260),门户可以是 IP 或 ip_addr:port 的形式。

    • iscsi.readOnly (boolean)

      此处的 readOnly 将强制 VolumeMounts 中的 ReadOnly 设置。默认为 false。

    • iscsi.secretRef (LocalObjectReference)

      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) 的方式挂载。在 1.33 版本之前,不支持容器的子路径挂载 (spec.containers[].volumeMounts.subpath)。字段 spec.securityContext.fsGroupChangePolicy 对此卷类型无效。

    ImageVolumeSource 代表一个镜像卷资源。

    • image.pullPolicy (string)

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

    • image.reference (string)

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

  • nfs (NFSVolumeSource)

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

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

  • photonPersistentDisk (PhotonPersistentDiskVolumeSource)

    photonPersistentDisk 代表连接并挂载到 kubelet 主机上的 PhotonController 持久盘。已弃用:PhotonPersistentDisk 已被弃用,不再支持 in-tree 的 photonPersistentDisk 类型。

    代表一个 Photon Controller 持久盘资源。

    • photonPersistentDisk.pdID (string),必需

      pdID 是标识 Photon Controller 持久盘的 ID

    • photonPersistentDisk.fsType (string)

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

  • portworxVolume (PortworxVolumeSource)

    portworxVolume 代表连接并挂载到 kubelet 主机上的 Portworx 卷。已弃用:PortworxVolume 已被弃用。当 CSIMigrationPortworx 特性门打开时,in-tree 的 portworxVolume 类型的所有操作将重定向到 pxd.portworx.com CSI 驱动程序。

    PortworxVolumeSource 代表一个 Portworx 卷资源。

    • portworxVolume.volumeID (string),必需

      volumeID 唯一标识一个 Portworx 卷

    • portworxVolume.fsType (string)

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

    • portworxVolume.readOnly (boolean)

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

  • quobyte (QuobyteVolumeSource)

    quobyte 代表主机上的 Quobyte 挂载,与 Pod 的生命周期共享。已弃用:Quobyte 已被弃用,不再支持 in-tree 的 quobyte 类型。

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

    • quobyte.registry (string),必需

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

    • quobyte.volume (string),必需

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

    • quobyte.group (string)

      用于将卷访问映射到组。默认为不设置组

    • quobyte.readOnly (boolean)

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

    • quobyte.tenant (string)

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

    • quobyte.user (string)

      用于将卷访问映射到用户。默认为 serviceaccount 用户

  • rbd (RBDVolumeSource)

    rbd 代表主机上的 Rados 块设备挂载,与 Pod 的生命周期共享。已弃用:RBD 已被弃用,不再支持 in-tree 的 rbd 类型。更多信息:https://examples.k8s.io/volumes/rbd/README.md

    代表持续整个 Pod 生命周期的 Rados 块设备挂载。RBD 卷支持所有权管理和 SELinux 重新标记。

  • scaleIO (ScaleIOVolumeSource)

    scaleIO 代表连接并挂载到 Kubernetes 节点上的 ScaleIO 持久卷。已弃用:ScaleIO 已被弃用,不再支持 in-tree 的 scaleIO 类型。

    ScaleIOVolumeSource 代表一个持久的 ScaleIO 卷

    • scaleIO.gateway (string),必需

      gateway 是 ScaleIO API Gateway 的主机地址。

    • scaleIO.secretRef (LocalObjectReference),必需

      secretRef 引用包含 ScaleIO 用户及其他敏感信息的 Secret。如果未提供,登录操作将失败。

    • scaleIO.system (string),必需

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

    • scaleIO.fsType (string)

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

    • scaleIO.protectionDomain (string)

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

    • scaleIO.readOnly (boolean)

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

    • scaleIO.sslEnabled (boolean)

      sslEnabled 标志用于启用/禁用与 Gateway 的 SSL 通信,默认为 false

    • scaleIO.storageMode (string)

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

    • scaleIO.storagePool (string)

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

    • scaleIO.volumeName (string)

      volumeName 是在此卷源关联的 ScaleIO 系统中已创建的卷的名称。

  • storageos (StorageOSVolumeSource)

    storageOS 代表连接并挂载到 Kubernetes 节点上的 StorageOS 卷。已弃用:StorageOS 已被弃用,不再支持 in-tree 的 storageos 类型。

    代表一个 StorageOS 持久卷资源。

    • storageos.fsType (string)

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

    • storageos.readOnly (boolean)

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

    • storageos.secretRef (LocalObjectReference)

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

    • storageos.volumeName (string)

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

    • storageos.volumeNamespace (string)

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

  • vsphereVolume (VsphereVirtualDiskVolumeSource)

    vsphereVolume 代表连接并挂载到 kubelet 主机上的 vSphere 卷。已弃用:VsphereVolume 已被弃用。in-tree 的 vsphereVolume 类型的所有操作都将重定向到 csi.vsphere.vmware.com CSI 驱动程序。

    代表一个 vSphere 卷资源。

    • vsphereVolume.volumePath (string),必需

      volumePath 是标识 vSphere 卷 vmdk 的路径

    • vsphereVolume.fsType (string)

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

    • vsphereVolume.storagePolicyID (string)

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

    • vsphereVolume.storagePolicyName (string)

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

已弃用

  • gitRepo (GitRepoVolumeSource)

    gitRepo 代表特定修订版本的 Git 仓库。已弃用:GitRepo 已被弃用。要使用 Git 仓库供应容器,请将 EmptyDir 挂载到 InitContainer 中,InitContainer 使用 Git 克隆仓库,然后将 EmptyDir 挂载到 Pod 的容器中。

    *代表一个用 Git 仓库内容填充的卷。Git 仓库卷不支持所有权管理。Git 仓库卷支持 SELinux 重新标记。

    已弃用:GitRepo 已被弃用。要使用 Git 仓库供应容器,请将 EmptyDir 挂载到 InitContainer 中,InitContainer 使用 Git 克隆仓库,然后将 EmptyDir 挂载到 Pod 的容器中。*

    • gitRepo.repository (string),必需

      repository 是 URL

    • gitRepo.directory (string)

      directory 是目标目录名称。不能包含或以 '..' 开头。如果提供 '.',卷目录将是 Git 仓库。否则,如果指定,卷将包含在给定名称的子目录中的 Git 仓库。

    • gitRepo.revision (string)

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

DownwardAPIVolumeFile

DownwardAPIVolumeFile 代表用于创建包含 Pod 字段的文件信息


  • path (string),必需

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

  • fieldRef (ObjectFieldSelector)

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

  • mode (int32)

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

  • resourceFieldRef (ResourceFieldSelector)

    选择容器的资源:目前仅支持资源 limits 和 requests (limits.cpu, limits.memory, requests.cpu 和 requests.memory)。

KeyToPath

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


  • key (string),必需

    key 是要投射的键。

  • path (string),必需

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

  • mode (int32)

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

此页面自动生成。

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

最后修改于 2025 年 4 月 24 日 上午 9:14 PST: v1.33 的 Markdown API 参考 (b84ec30bbb)