MinIO 自定義資源定義
MinIO Operator 安裝了一個 自定義資源定義 (CRD),描述了 MinIO 租戶物件。Operator 使用此 CRD 在 Kubernetes 叢集中佈建和管理租戶資源。
本頁記錄了 CRD 參考,用於自定義 Operator 部署的租戶。本文档假设熟悉所有引用的 Kubernetes 概念、实用程序和流程。
Operator CRD v2 參考
Package v2 - 此頁面為 MinIO Operator Operator CRD v2 參考
CRD 提供快速自動生成的參考。有關 MinIO Operator CRD 的更完整文件,請參閱 MinIO Kubernetes 文件。
Operator CRD v2 參考
API 隨 v4.0.0 MinIO Operator 發布。MinIO Operator 會自動將使用 /v1
API 的現有租戶轉換為 /v2
。
儲存桶
儲存桶描述了預設建立的儲存桶
欄位 | 描述 |
---|---|
|
|
|
|
|
CertificateConfig
CertificateConfig (certConfig
) 定義與 Operator 自動生成的任何 TLS 憑證相關聯的控制屬性,作為租戶建立的一部分。如果 spec.autoCert: false
,則這些欄位無效。
欄位 | 描述 |
---|---|
|
選填 要與自動生成的 TLS 憑證相關聯的 |
|
選填 指定要與自動生成的 TLS 憑證相關聯的一個或多個 |
|
選填 指定要與自動生成的 TLS 憑證相關聯的一個或多個 x.509 主體替代名稱 (SAN)。MinIO 伺服器 Pod 使用 SNI 來判斷要根據請求的主機名稱回應哪個憑證。 |
CertificateStatus
CertificateStatus 追蹤 Operator 管理的所有憑證
欄位 | 描述 |
---|---|
|
AutoCertEnabled 註冊我們是否知道租戶是否已啟用 autocert |
|
提供手動新增至 Operator 的 |
CustomCertificateConfig
CustomCertificateConfig (customCertificateConfig
) 提供與手動新增至 Operator 的 TLS 憑證相關聯的屬性,作為租戶建立的一部分。如果沒有自定義 TLS 憑證,則這些欄位不包含任何資料。
欄位 | 描述 |
---|---|
|
選填 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選填 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選填 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選填 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選填 輸出與手動提供的 TLS 憑證相關聯的一或多個 |
CustomCertificates
CustomCertificates (customCertificates
) 提供租戶建立時手動新增至 Operator 的 TLS 憑證群組。如果沒有自訂 TLS 憑證,這些欄位不包含任何資料。
欄位 | 描述 |
---|---|
|
選填 客戶端 |
|
選填 Minio |
|
選填 憑證授權單位 |
ExposeServices
ExposeServices (exposeServices
) 定義 MinIO 物件儲存和主控台服務的公開方式。
欄位 | 描述 |
---|---|
|
選填 指示 Operator 公開 MinIO 服務。預設值為 |
|
選填 指示 Operator 公開 MinIO 主控台服務。預設值為 |
Features
Features (features
) - 描述要在 MinIO 租戶中啟用/停用哪些 MinIO 功能的物件。
欄位 | 描述 |
---|---|
|
選填 指定 |
|
選填 指定用於存取 MinIO 和主控台的網域清單。 |
|
選填 啟動具有 SFTP 支援的 minio 伺服器 |
HealthStatus (字串)
HealthStatus 表示租戶是否處於健康狀態、服務減少或離線狀態
KESConfig
KESConfig (kes
) 定義部署為 MinIO 租戶一部分的 MinIO 金鑰加密服務 (KES) StatefulSet 的設定。KES 支援使用外部金鑰管理服務 (KMS) 對物件進行伺服器端加密。
欄位 | 描述 |
---|---|
|
選填 指定要在租戶中部署的 KES Pod 複本數。預設值為 |
|
選填 |
|
選填 MinIO Docker 映像的提取原則。指定下列其中一項
有關詳細資訊,請參閱 Kubernetes 文件 https://kubernetes.dev.org.tw/docs/concepts/containers/images#updating-images |
|
選填 用於執行作為租戶一部分建立的 MinIO KES Pod 的Kubernetes 服務帳戶。 |
|
必要 指定一個 Kubernetes 不透明密碼,其中包含用於設定 MinIO KES 服務的環境變數。 如需範例,請參閱 MinIO Operator |
|
選填 在租戶中的每個 MinIO KES Pod 上啟用具有 SNI 支援的 TLS。如果省略 指定一個 Kubernetes TLS 密碼。MinIO Operator 會將指定的憑證複製到租戶中的每個 MinIO Pod。當 MinIO Pod/服務回應 TLS 連線要求時,它會使用 SNI 來選取具有相符 指定包含下列欄位的物件
如需範例和有關為 MinIO 租戶設定 TLS 的更完整文件,請參閱 MinIO Operator CRD 參考。 |
|
選填 指定一個 Kubernetes TLS 密碼,其中包含自訂根憑證授權單位和 x.509 憑證,以用於執行與外部金鑰管理服務 (例如 Hashicorp Vault) 的 mTLS 驗證。 指定包含下列欄位的物件
|
|
選填
|
|
選填
|
|
選填 如果提供,請將這些註解用於 KES 物件中繼資料註解 |
|
選填 如果提供,請將這些標籤用於 KES 物件中繼資料標籤 |
|
選填 用於在 MinIO 租戶中指定 CPU 和記憶體 資源配置或限制的物件規格。 |
|
選填 Operator 在選取要部署 MinIO KES Pod 的節點時套用的篩選器。Operator 僅選取標籤與指定選取器相符的節點。 有關詳細資訊,請參閱 Kubernetes 關於將 Pod 指派給節點的文件。 |
|
選填 指定要套用至 MinIO KES Pod 的一或多個 Kubernetes 容許。 |
|
選填 為 KES Pod 指定節點親和性、Pod 親和性和 Pod 反親和性。 |
|
選填 指定要套用至在 MinIO 集區中部署的 Pod 的一或多個 Kubernetes 拓撲散佈條件約束。 |
|
選填 如果提供,請將此用作 KES 在 KMS 後端上建立的金鑰名稱 |
|
指定 MinIO KES Pod 的 安全性內容。Operator 僅支援下列 Pod 安全性欄位
|
|
指定 MinIO KES Pod 的 安全性內容。 |
|
選填 如果提供,MinIO Operator 會在部署 KES 資源時新增指定的環境變數。 |
LocalCertificateReference
LocalCertificateReference (externalCertSecret
、externalCaCertSecret
、clientCertSecret
) 包含一個 Kubernetes 密碼,其中包含 TLS 憑證或憑證授權單位檔案,以用於在 MinIO 租戶中啟用 TLS。
欄位 | 描述 |
---|---|
|
必要 包含 TLS 憑證或憑證授權單位檔案的 Kubernetes 密碼名稱。 |
|
必要 Kubernetes 密碼的類型。指定 |
Logging
Logging 描述 MinIO 租戶的記錄。
欄位 | 描述 |
---|---|
|
|
|
|
|
Pool
Pool (pools
) 在租戶上定義 MinIO 伺服器集區。每個集區由一組 MinIO 伺服器 Pod 組成,這些 Pod 將其儲存資源「集區」起來,以支援物件儲存和擷取要求。每個伺服器集區都獨立於所有其他集區,並支援 MinIO 租戶中可用儲存資源的水平擴展。
如需範例和更完整的文件,請參閱 MinIO Operator CRD 參考中的 pools
物件。
欄位 | 描述 |
---|---|
|
必要 指定集區名稱。如果省略此欄位,Operator 會自動產生集區名稱。 |
|
必要 要在集區中部署的 MinIO 伺服器 Pod 數量。最小值為 MinIO Operator 每個集區至少需要 |
|
必要 要為集區中的每個 MinIO 伺服器 Pod 產生的永續性磁碟區宣告數量。 MinIO Operator 每個集區至少需要 |
|
必要 指定 MinIO Operator 在為 MinIO 租戶產生永續性磁碟區宣告時要使用的設定選項。 |
|
選填 用於在 MinIO 租戶中指定 CPU 和記憶體 資源配置或限制的物件規格。 |
|
選填 Operator 在選取要部署集區中 Pod 的節點時套用的篩選器。Operator 僅選取標籤與指定選取器相符的節點。 有關詳細資訊,請參閱 Kubernetes 關於將 Pod 指派給節點的文件。 |
|
選填 為 MinIO 集區中的 Pod 指定節點親和性、Pod 親和性和 Pod 反親和性。 |
|
選填 指定要套用至在 MinIO 集區中部署的 Pod 的一或多個 Kubernetes 容許。 |
|
選填 指定要套用至在 MinIO 集區中部署的 Pod 的一或多個 Kubernetes 拓撲散佈條件約束。 |
|
選填 指定集區中 Pod 的 安全性內容。Operator 僅支援下列 Pod 安全性欄位
|
|
指定集區中容器的 安全性內容。Operator 僅支援下列容器安全性欄位
|
|
選填 指定要附加到集區的自訂標籤和註解。選用 如果提供,請將這些註解用於集區物件中繼資料註解 (Statefulset 和 Pod 範本) |
|
選填 如果提供,請將這些標籤用於集區物件中繼資料註解 (Statefulset 和 Pod 範本) |
|
選填 如果提供,Statefulset 上的每個 Pod 都將使用指定的 RuntimeClassName 執行,如需更多資訊,請參閱 https://kubernetes.dev.org.tw/docs/concepts/containers/runtime-class/ |
PoolState (字串)
PoolState 表示集區的狀態
PoolStatus
PoolStatus 追蹤所有 Pool 及其目前狀態
欄位 | 描述 |
---|---|
|
|
|
|
|
LegacySecurityContext 代表舊版安全上下文。它表示這些 Pool 是在 v4.2.3 之前建立的,當時我們引入了預設的安全上下文為非 root 用戶,因此我們應該在沒有安全上下文的情況下繼續執行此 Pool |
ServiceMetadata
ServiceMetadata (serviceMetadata
) 定義 MinIO 物件儲存服務和/或 MinIO Console 服務的自訂標籤和註解。
欄位 | 描述 |
---|---|
|
選填 如果提供,將這些標籤附加到 MinIO 服務 |
|
選填 如果提供,將這些註解附加到 MinIO 服務 |
|
選填 如果提供,將這些標籤附加到 Console 服務 |
|
選填 如果提供,將這些註解附加到 Console 服務 |
SideCars
SideCars (sidecars
) 定義 Operator 附加到 pool
中每個 MinIO 伺服器 Pod 的容器清單。
欄位 | 描述 |
---|---|
|
選填 在 Pod 內執行的容器清單 |
|
選填 volumeClaimTemplates 是 Pod 可以參考的請求清單。StatefulSet 控制器負責將網路身分對應到請求,以保持 Pod 的身分。此清單中的每個請求必須在範本中的一個容器中至少有一個相符(依名稱)的 volumeMount。此清單中的請求優先於範本中具有相同名稱的任何磁碟區。 |
|
選填 可由屬於 Pod 的容器掛載的磁碟區清單。更多資訊:https://kubernetes.dev.org.tw/docs/concepts/storage/volumes |
|
選填 Sidecar 的資源,如果設定,initcontainer 將使用該資源。 |
Tenant
Tenant 是一個 Kubernetes 物件,描述一個 MinIO Tenant。
欄位 | 描述 |
---|---|
|
|
|
|
|
請參閱 Kubernetes API 文件以了解 |
|
|
|
必要 MinIO Tenant 物件的根欄位。 |
TenantDomains
TenantDomains (domains
) - 用於從 Kubernetes 叢集外部存取 Tenant 的網域清單。這只會為列出的網域設定 MinIO,但仍然需要外部 DNS 設定。列出的網域應包含協定和連接埠(如果有的話),例如 https://minio.domain.com:8123
欄位 | 描述 |
---|---|
|
MinIO 使用的網域清單。這將啟用對物件儲存的 DNS 樣式存取,其中儲存桶名稱是從網域中的子網域推斷的。 |
|
用於公開 MinIO Console 的網域,這將在從瀏覽器訪問時設定 MinIO 上的重新導向。如果 Console 是透過子路徑公開的,則網域應包含它,例如 https://console.domain.com:8123/subpath/ |
TenantScheduler
TenantScheduler (scheduler
) - 描述用於部署 MinIO Tenant 的 Kubernetes 排程器的物件。
欄位 | 描述 |
---|---|
|
選填 指定要用於排程 Tenant Pod 的 Kubernetes 排程器 的名稱 |
TenantSpec
TenantSpec (spec
) 定義 MinIO Tenant 物件的組態。
以下參數是 Operator CRD v2 Reference
MinIO CRD API spec
定義所特有的,該定義是作為 MinIO Operator v4.0.0 的一部分新增的。
有關此物件的更完整文件,請參閱 MinIO Kubernetes 文件。
欄位 | 描述 |
---|---|
|
必要 一個物件陣列,描述部署在 MinIO Tenant 中的每個 MinIO 伺服器 Pool。每個 Pool 由一組 MinIO 伺服器 Pod 組成,這些 Pod「匯集」其儲存資源以支援物件儲存和擷取請求。每個伺服器 Pool 都獨立於所有其他 Pool,並支援 MinIO Tenant 中可用儲存資源的水平擴展。 MinIO Tenant 有關 |
|
選填 |
|
選填 指定用於從私有 Docker 儲存庫拉取映像的密鑰。 |
|
選填 由 StatefulSet 建立的 Pod 的 Pod 管理原則 |
|
選填 如果提供,MinIO Operator 會在部署 Tenant 資源時新增指定的環境變數。 |
|
選填 在 Tenant 中的每個 MinIO Pod 上啟用帶有 SNI 支援的 TLS。如果省略 指定 Kubernetes TLS 密鑰的陣列。MinIO Operator 會將指定的憑證複製到 Tenant 中的每個 MinIO 伺服器 Pod。當 MinIO Pod/服務回應 TLS 連線請求時,它會使用 SNI 選取具有相符
有關為 MinIO Tenant 設定 TLS 的範例和更完整的文件,請參閱 MinIO Operator CRD 參考。 |
|
選填 允許 MinIO 伺服器 Pod 驗證由不在 Pod 信任儲存中的憑證授權單位簽署的用戶端 TLS 憑證。 指定 Kubernetes TLS 密鑰的陣列。MinIO Operator 會將指定的憑證複製到 Tenant 中的每個 MinIO 伺服器 Pod。
有關為 MinIO Tenant 設定 TLS 的範例和更完整的文件,請參閱 MinIO Operator CRD 參考。 |
|
選填 啟用 MinIO Tenant Pod 與 MinIO KES 之間的 mTLS 驗證。啟用 MinIO Tenant 與 MinIO KES 之間連線的必要條件。 指定一個 Kubernetes TLS 密鑰。MinIO Operator 會將指定的憑證複製到 Tenant 中的每個 MinIO 伺服器 Pod。密鑰必須包含以下欄位
指定的憑證必須對應於 KES 伺服器上的身分。有關 KES 身分的更多資訊,請參閱 KES Wiki。 如果使用 MinIO Operator 部署 KES,請將憑證的雜湊值包含在 有關為 MinIO Tenant 設定 TLS 的範例和更完整的文件,請參閱 MinIO Operator CRD 參考。 |
|
選填 提供將其他用戶端憑證掛載到 MinIO Tenant Pod 中的支援。多個用戶端憑證將使用以下資料夾結構掛載
指定一個 Kubernetes TLS 密鑰。MinIO Operator 會將指定的憑證複製到 Tenant 中的每個 MinIO 伺服器 Pod,稍後可以使用環境變數參考該憑證。密鑰必須包含以下欄位
|
|
選填 MinIO 磁碟區 (PV) 的掛載路徑。預設為 |
|
選填 掛載路徑內的子路徑。這是 MinIO 儲存資料的目錄。預設為 |
|
選填 啟用使用 基於 Kubernetes 的 TLS 憑證產生和簽署,用於 MinIO Tenant 中的 Pod 和服務。
如果 有關為 MinIO Tenant 設定 TLS 的範例和更完整的文件,請參閱 MinIO Operator CRD 參考。 |
|
CertExpiryAlertThreshold 是觸發憑證過期警示之前,憑證剩餘的最小到期天數。 |
|
容器存活探針。如果探針失敗,容器將會重新啟動。 |
|
容器就緒探針。如果探針失敗,容器將會從服務端點移除。 |
|
啟動探針允許設定 Pod 在開始接收路由流量之前,啟動的最大寬限期。 |
|
容器的生命週期鉤子。 |
|
可啟用或停用 S3 相關功能,例如 |
|
選填 啟用設定 Operator 自動產生所有 TLS 憑證的 |
選填 指示 MinIO Operator 使用指定的配置部署 MinIO 金鑰加密服務 (KES)。MinIO KES 支援對 MiNIO Tenant 上的物件執行伺服器端加密。 |
|
|
選填 指示 MinIO Operator 使用 Prometheus Operator。 Tenant 抓取配置將會新增至由 Prometheus Operator 管理的 Prometheus。 |
|
選填 用於運行作為 Tenant 一部分創建的 MinIO Pod 的 Kubernetes 服務帳號。 |
|
選填 指示 Pod 的優先順序,以及 Pod 相對於叢集中其他 Pod 的重要性。這僅適用於 MinIO Pod。 請參閱 Kubernetes 優先順序類別文件 以獲取更完整的資訊。 |
|
選填 MinIO Docker 映像的提取原則。指定下列其中一項
有關詳細資訊,請參閱 Kubernetes 文件 https://kubernetes.dev.org.tw/docs/concepts/containers/images#updating-images |
|
選填 一個容器列表,會作為邊車容器與 Tenant 中部署的每個 MinIO Pod 一起運行。 |
|
選填 指示 Operator 公開 MinIO 和/或控制台服務。 |
|
選填 指定要附加到 MinIO 服務和/或控制台服務的自定義標籤和註釋。 |
|
選填 一個 Kubernetes 不透明密鑰的陣列,用於在 Tenant 配置期間生成 MinIO 用戶。 陣列中的每個元素都是一個包含鍵值對 每個引用的 Kubernetes 密鑰必須包含以下欄位
Operator 預設會使用 |
|
選填 在創建新 Tenant 時創建儲存桶。如果已存在具有指定名稱的儲存桶,則跳過。 |
|
選填 為 MinIO Tenant 啟用 JSON、匿名日誌。 |
|
選填 指定一個密鑰,其中包含要用於 MinIO 池的額外環境變數配置。密鑰預期有一個名為 config.env 的鍵,其中包含 MinIO+ 的所有匯出的環境變數。 |
|
選填 將自定義 initContainers 新增至 StatefulSet |
|
選填 如果提供,StatefulSet 將會新增這些磁碟區。您應該設定相應磁碟區和磁碟區掛載的規則。我們不會測試此規則,k8s 將顯示結果。 |
|
選填 如果提供,StatefulSet 將會新增這些磁碟區。您應該設定相應磁碟區和磁碟區掛載的規則。我們不會測試此規則,k8s 將顯示結果。 |
TenantUsage
TenantUsage 是有關 Tenant 的使用率和容量的指標
欄位 | 描述 |
---|---|
|
以位元組為單位表示此 Tenant 的使用容量。 |
|
以位元組為單位表示此 Tenant 的原始容量。 |
|
以位元組為單位表示 MinIO 管理的數據量。 |
|
以位元組為單位表示磁碟上的原始使用量。 |
|
Tiers 包含 Tenant 中個別層的使用量 |
TierUsage
TierUsage 表示 Tenant 設定的層的使用量
欄位 | 描述 |
---|---|
|
層的名稱 |
|
層的類型 |
|
層的總使用量 |