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.club.tw/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.club.tw/docs/concepts/storage/volumes#secret

    *將 Secret 適配為卷。

    目標 Secret 的 Data 欄位內容將作為檔案呈現在卷中,使用 Data 欄位中的鍵作為檔名。Secret 卷支援所有權管理和 SELinux 重新標記。*

    • secret.secretName (string)

      secretName 是 Pod 名稱空間中要使用的 secret 的名稱。更多資訊:https://kubernetes.club.tw/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.club.tw/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.club.tw/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.club.tw/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.club.tw/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.club.tw/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.club.tw/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.club.tw/docs/concepts/containers/images 此欄位是可選的,允許更高級別的配置管理在 Deployment 和 StatefulSet 等工作負載控制器中預設或覆蓋容器映象。

  • nfs (NFSVolumeSource)

    nfs 表示主機上的 NFS 掛載,它與 Pod 的生命週期共享。更多資訊:https://kubernetes.club.tw/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)