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

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

Volume 表示 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 命名空间中要使用的 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 的向下 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 (boolean)

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

        • projected.sources.clusterTrustBundle.signerName (string)

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

      • projected.sources.configMap (ConfigMapProjection)

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

        *将 ConfigMap 适配为投影卷。

        目标 ConfigMap 的 Data 字段内容将作为文件呈现在投影卷中,使用 Data 字段中的键作为文件名,除非 items 元素填充了键到路径的特定映射。请注意,这与不带默认模式的 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 数据的信息

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

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

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

          Items 是 DownwardAPIVolume 文件列表

      • projected.sources.podCertificate (PodCertificateProjection)

        投影一个自动轮换的凭证捆绑包(私钥和证书链),Pod 可以将其用作 TLS 客户端或服务器。

        Kubelet 生成一个私钥,并使用它向指定的签名者发送 PodCertificateRequest。一旦签名者批准请求并颁发证书链,Kubelet 会将私钥和证书链写入 Pod 文件系统。Pod 在为其 spec 中每个 podCertificate 投影卷源颁发证书之前不会启动。

        Kubelet 将在签名者使用 PodCertificateRequest.Status.BeginRefreshAt 时间戳指示的时间开始尝试轮换证书。

        Kubelet 可以写入一个文件,由 credentialBundlePath 字段指示,也可以写入单独的文件,由 keyPath 和 certificateChainPath 字段指示。

        凭证捆绑包是一个 PEM 格式的单一文件。第一个 PEM 条目是私钥(PKCS#8 格式),其余的 PEM 条目是签名者颁发的证书链(通常,签名者将按叶到根的顺序返回其证书链)。

        优先使用凭证捆绑包格式,因为您的应用程序代码可以原子地读取它。如果您使用 keyPath 和 certificateChainPath,您的应用程序必须进行两次单独的文件读取。如果这些与证书轮换同时发生,则您读取的私钥和叶证书可能不对应。您的应用程序将需要检查此情况,并重新读取直到它们一致。

        指定的签名者控制选择其颁发的证书的格式;请查阅签名者实现的文档以了解如何使用其颁发的证书。

        PodCertificateProjection 在 Pod 文件系统中提供私钥和 X.509 证书。

        • projected.sources.podCertificate.keyType (string),必需

          Kubelet 将为 Pod 生成的密钥对类型。

          有效值为“RSA3072”、“RSA4096”、“ECDSAP256”、“ECDSAP384”、“ECDSAP521”和“ED25519”。

        • projected.sources.podCertificate.signerName (string),必需

          Kubelet 生成的 CSR 将发送给此签名者。

        • projected.sources.podCertificate.certificateChainPath (string)

          将证书链写入投影卷中的此路径。

          大多数应用程序应使用 credentialBundlePath。当使用 keyPath 和 certificateChainPath 时,您的应用程序需要检查密钥和叶证书是否一致,因为有可能在轮换过程中读取文件。

        • projected.sources.podCertificate.credentialBundlePath (string)

          将凭证捆绑包写入投影卷中的此路径。

          凭证捆绑包是一个包含多个 PEM 块的单一文件。第一个 PEM 块是 PRIVATE KEY 块,包含 PKCS#8 私钥。

          其余块是 CERTIFICATE 块,包含签名者颁发的证书链(叶证书和任何中间证书)。

          使用 credentialBundlePath 允许您的 Pod 应用程序代码进行单个原子读取,以检索一致的密钥和证书链。如果您将它们投影到单独的文件中,您的应用程序代码将需要额外检查叶证书是否已颁发给该密钥。

        • projected.sources.podCertificate.keyPath (string)

          将密钥写入投影卷中的此路径。

          大多数应用程序应使用 credentialBundlePath。当使用 keyPath 和 certificateChainPath 时,您的应用程序需要检查密钥和叶证书是否一致,因为有可能在轮换过程中读取文件。

        • projected.sources.podCertificate.maxExpirationSeconds (int32)

          maxExpirationSeconds 是证书允许的最长生命周期。

          Kubelet 将此值逐字复制到它为此投影生成的 PodCertificateRequests 中。

          如果省略,kube-apiserver 将其设置为 86400(24 小时)。kube-apiserver 将拒绝短于 3600(1 小时)的值。允许的最大值为 7862400(91 天)。

          签名者实现可以自由颁发生命周期**短于** MaxExpirationSeconds 但不短于 3600 秒(1 小时)的证书。此约束由 kube-apiserver 强制执行。kubernetes.io 签名者永远不会颁发生命周期超过 24 小时的证书。

      • projected.sources.secret (SecretProjection)

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

        *将 secret 适配为投影卷。

        目标 Secret 的 Data 字段内容将作为文件呈现在投影卷中,使用 Data 字段中的键作为文件名。请注意,这与不带默认模式的 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 表示一个投影的服务帐户令牌卷。此投影可用于将服务帐户令牌插入 Pod 运行时文件系统,以用于 API(Kubernetes API Server 或其他)。

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

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

        • projected.sources.serviceAccountToken.audience (string)

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

        • projected.sources.serviceAccountToken.expirationSeconds (int64)

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

本地/临时目录

持久卷

  • awsElasticBlockStore (AWSElasticBlockStoreVolumeSource)

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

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

    AWS EBS 磁盘必须在挂载到容器之前存在。磁盘还必须与 kubelet 位于同一 AWS 区域。AWS EBS 磁盘只能挂载为一次读/写。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 表示主机上的 Ceph FS 挂载,它与 Pod 的生命周期共享。已废弃: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 (Container Storage Interface) 表示由某些外部 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) 存储驱动程序通过存储类指定,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。如果此类预创建的 PVC 旨在供 Pod 使用,则一旦 Pod 存在,必须使用指向 Pod 的所有者引用来更新 PVC。通常这应该不是必需的,但在手动重建损坏的集群时可能有用。

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

      必需,不得为 nil。

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

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

        PersistentVolumeClaim 的规范。所有内容将不变地复制到从此模板创建的 PVC 中。PersistentVolumeClaim 中的相同字段在此处也有效。

      • ephemeral.volumeClaimTemplate.metadata (ObjectMeta)

        可能包含在创建 PVC 时将复制到 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 卷全球标识符 (wwids)。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 已废弃,并且不再支持树内 flocker 类型。

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

    • flocker.datasetName (string)

      datasetName 是存储为元数据中数据集名称的名称 -> Flocker 数据集上的名称应被视为已废弃

    • flocker.datasetUUID (string)

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

  • gcePersistentDisk (GCEPersistentDiskVolumeSource)

    gcePersistentDisk 表示附加到 kubelet 主机并暴露给 Pod 的 GCE 磁盘资源。已废弃:GCEPersistentDisk 已废弃。针对树内 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 已废弃,并且不再支持树内 glusterfs 类型。

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

  • iscsi (ISCSIVolumeSource)

    iscsi 表示附加到 kubelet 主机并暴露给 Pod 的 ISCSI 磁盘资源。更多信息:https://kubernetes.ac.cn/docs/concepts/storage/volumes/#iscsi

    表示 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 接口 <目标门户>:<卷名>。

    • 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 表示在 kubelet 主机上拉取并挂载的 OCI 对象(容器镜像或工件)。卷在 Pod 启动时根据提供的 PullPolicy 值解析

    • Always:kubelet 始终尝试拉取引用。如果拉取失败,容器创建将失败。- Never:kubelet 从不拉取引用,只使用本地镜像或工件。如果引用不存在,容器创建将失败。- IfNotPresent:如果引用在磁盘上不存在,kubelet 会拉取。如果引用不存在且拉取失败,容器创建将失败。

    如果 Pod 被删除并重新创建,卷会重新解析,这意味着新的远程内容将在 Pod 重新创建时可用。在 Pod 启动期间无法解析或拉取镜像将阻止容器启动,并可能增加显著的延迟。失败将使用正常的卷回退重试,并将在 Pod 原因和消息中报告。此卷可挂载的对象类型由主机上的容器运行时实现定义,并且至少必须包含容器镜像字段支持的所有有效类型。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 相同。拉取 secret 将以与容器镜像相同的方式组装,通过查找节点凭据、SA 镜像拉取 secret 和 pod spec 镜像拉取 secret。更多信息:https://kubernetes.ac.cn/docs/concepts/containers/images 此字段是可选的,允许更高级别的配置管理在 Deployment 和 StatefulSet 等工作负载控制器中默认或覆盖容器镜像。

  • nfs (NFSVolumeSource)

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

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

  • photonPersistentDisk (PhotonPersistentDiskVolumeSource)

    photonPersistentDisk 表示挂载到 kubelet 主机上的 PhotonController 持久盘。已弃用:PhotonPersistentDisk 已弃用,并且不再支持树内 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 功能门开启时,所有树内 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 表示主机上与 Pod 生命周期相同的 Quobyte 挂载。已弃用:Quobyte 已弃用,并且不再支持树内 quobyte 类型。

    表示一个与 Pod 生命周期相同的 Quobyte 挂载。Quobyte 卷不支持所有权管理或 SELinux 重新标记。

    • quobyte.registry (string),必需

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

    • quobyte.volume (string),必需

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

    • quobyte.group (string)

      将卷访问映射到的组。默认为无组

    • quobyte.readOnly (boolean)

      这里的 readOnly 会强制将 Quobyte 卷挂载为只读权限。默认为 false。

    • quobyte.tenant (string)

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

    • quobyte.user (string)

      将卷访问映射到的用户。默认为服务账户用户

  • rbd (RBDVolumeSource)

    rbd 表示主机上与 Pod 生命周期相同的 Rados 块设备挂载。已弃用:RBD 已弃用,并且不再支持树内 rbd 类型。

    表示一个与 Pod 生命周期相同的 Rados 块设备挂载。RBD 卷支持所有权管理和 SELinux 重新标记。

  • scaleIO (ScaleIOVolumeSource)

    scaleIO 表示挂载到 Kubernetes 节点上的 ScaleIO 持久卷。已弃用:ScaleIO 已弃用,并且不再支持树内 scaleIO 类型。

    ScaleIOVolumeSource 表示一个持久的 ScaleIO 卷

    • scaleIO.gateway (string),必需

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

    • 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 标志启用/禁用与网关的 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 已弃用,并且不再支持树内 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 的命名空间。这允许 Kubernetes 名称范围在 StorageOS 中镜像,以实现更紧密的集成。将 VolumeName 设置为任何名称以覆盖默认行为。如果您未在 StorageOS 中使用命名空间,请设置为 "default"。在 StorageOS 中不存在的命名空间将自动创建。

  • vsphereVolume (VsphereVirtualDiskVolumeSource)

    vsphereVolume 表示挂载到 kubelet 主机上的 vSphere 卷。已弃用:VsphereVolume 已弃用。所有树内 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 挂载到使用 git 克隆存储库的 InitContainer 中,然后将 EmptyDir 挂载到 Pod 的容器中。

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

    已弃用:GitRepo 已弃用。要使用 git 存储库预配容器,请将 EmptyDir 挂载到使用 git 克隆存储库的 InitContainer 中,然后将 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.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 年 9 月 4 日 下午 3:37 PST:更新 v1.34 的 API 资源参考 (3e10e8c195)