MinIO 自訂資源定義
MinIO Operator 安裝一個 自訂資源定義 (CRD),用於描述 MinIO Tenant 物件。Operator 使用此 CRD 來佈建和管理 Kubernetes 叢集中的 Tenant 資源。
此頁面記錄了用於自訂 Operator 部署的 Tenant 的 CRD 參考。此文件假設熟悉所有引用的 Kubernetes 概念、實用程式和程序。
Operator CRD v2 參考
Package v2 - 此頁面提供了 MinIO Operator Operator CRD v2 Reference
CRD 的快速自動產生參考。有關 MinIO Operator CRD 的更完整文件,請參閱 MinIO Kubernetes 文件。
Operator CRD v2 Reference
API 隨 v4.0.0 MinIO Operator 發布。MinIO Operator 會自動使用 /v1
API 將現有租戶轉換為 /v2
。
Bucket
Bucket 描述了預設建立的 Bucket
欄位 | 描述 |
---|---|
|
|
|
|
|
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 物件儲存和 Console 服務的公開方式。
欄位 | 描述 |
---|---|
|
選填 指示 Operator 公開 MinIO 服務。預設值為 |
|
選填 指示 Operator 公開 MinIO Console 服務。預設值為 |
Features
Features (features
) - 物件,描述在 MinIO 租戶中啟用/停用哪些 MinIO 功能。
欄位 | 描述 |
---|---|
|
選填 指定 |
|
選填 指定用於存取 MinIO 和 Console 的網域清單。 |
|
選填 啟動具備 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 toleration。 |
|
選填 指定 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
儲存池 (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 僅支援以下容器安全欄位
|
|
選填 指定要附加到儲存池的自訂標籤和註解。選用 如果提供,請將這些註解用於儲存池物件 Meta 註解 (Statefulset 和 Pod 範本) |
|
選填 如果提供,請將這些標籤用於儲存池物件 Meta 註解 (Statefulset 和 Pod 範本) |
|
選填 如果提供,Statefulset 上的每個 Pod 都會使用指定的 RuntimeClassName 執行,如需詳細資訊,請參閱 https://kubernetes.dev.org.tw/docs/concepts/containers/runtime-class/ |
PoolState (字串)
PoolState 代表儲存池的狀態
PoolStatus
PoolStatus 會追蹤所有儲存池及其目前狀態
欄位 | 描述 |
---|---|
|
|
|
|
|
LegacySecurityContext 代表舊版安全內容。它表示這些儲存池是在 v4.2.3 之前建立的,當時我們引入了預設安全內容作為非 root 使用者,因此我們應該在沒有安全內容的情況下繼續執行此儲存池 |
ServiceMetadata
ServiceMetadata (serviceMetadata
) 定義 MinIO 物件儲存服務和/或 MinIO 主控台服務的自訂標籤和註解。
欄位 | 描述 |
---|---|
|
選填 如果提供,請將這些標籤附加到 MinIO 服務 |
|
選填 如果提供,請將這些註解附加到 MinIO 服務 |
|
選填 如果提供,請將這些標籤附加到主控台服務 |
|
選填 如果提供,請將這些註解附加到主控台服務 |
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 是描述 MinIO 租戶的 Kubernetes 物件。
欄位 | 描述 |
---|---|
|
|
|
|
|
有關 |
|
|
|
必要 MinIO 租戶物件的根欄位。 |
TenantDomains
TenantDomains (domains
) - 用於從 Kubernetes 叢集外部存取租戶的網域名稱清單。這僅會針對列出的網域名稱設定 MinIO,但仍需要外部 DNS 設定。列出的網域名稱應包含結構描述和連接埠 (如果有的話),例如 https://minio.domain.com:8123
欄位 | 描述 |
---|---|
|
MinIO 使用的網域名稱清單。這將啟用對物件儲存的 DNS 樣式存取,其中儲存貯體名稱是從網域名稱中的子網域名稱推斷出來的。 |
|
用於公開 MinIO 主控台的網域名稱,這將在從瀏覽器訪問時設定 MinIO 上的重新導向。如果主控台透過子路徑公開,則網域名稱應包含它,例如 https://console.domain.com:8123/subpath/ |
TenantScheduler
TenantScheduler (scheduler
) - 描述用於部署 MinIO 租戶的 Kubernetes 排程器的物件。
欄位 | 描述 |
---|---|
|
選填 指定要用於排程租戶 Pod 的 Kubernetes 排程器名稱 |
TenantSpec
TenantSpec (spec
) 定義 MinIO 租戶物件的組態。
以下參數特定於作為 MinIO Operator v4.0.0 一部分新增的 Operator CRD v2 Reference
MinIO CRD API spec
定義。
有關此物件的更完整文檔,請參閱MinIO Kubernetes 文檔。
欄位 | 描述 |
---|---|
|
必要 描述在 MinIO 租戶中部署的每個 MinIO 伺服器儲存池的物件陣列。每個儲存池由一組 MinIO 伺服器 Pod 組成,這些 Pod「彙集」其儲存資源,以支援物件儲存和擷取請求。每個伺服器儲存池都獨立於其他儲存池,並支援 MinIO 租戶中可用儲存資源的水平擴展。 MinIO 租戶 有關範例和更完整的文檔,請參閱MinIO Operator CRD 參考中的 |
|
選填 |
|
選填 指定用於從私有 Docker 儲存庫提取映像檔的密鑰。 |
|
選填 由 StatefulSet 建立的 Pod 的 Pod 管理原則 |
|
選填 如果提供,MinIO Operator 在部署租戶資源時會新增指定的環境變數。 |
|
選填 在租戶中的每個 MinIO Pod 上啟用具有 SNI 支援的 TLS。如果省略 指定 Kubernetes TLS 密鑰的陣列。MinIO Operator 會將指定的憑證複製到租戶中的每個 MinIO 伺服器 Pod。當 MinIO Pod/服務回應 TLS 連線請求時,它會使用 SNI 來選取具有相符
有關 MinIO 租戶 TLS 設定的範例和更完整文檔,請參閱MinIO Operator CRD 參考。 |
|
選填 允許 MinIO 伺服器 Pod 驗證由 Pod 信任存放區中沒有的憑證授權單位簽署的用戶端 TLS 憑證。 指定 Kubernetes TLS 密鑰的陣列。MinIO Operator 會將指定的憑證複製到租戶中的每個 MinIO 伺服器 Pod。
有關 MinIO 租戶 TLS 設定的範例和更完整文檔,請參閱MinIO Operator CRD 參考。 |
|
選填 在 MinIO 租戶 Pod 和 MinIO KES 之間啟用 mTLS 驗證。啟用 MinIO 租戶和 MinIO KES 之間的連線必要。 指定 Kubernetes TLS 密鑰。MinIO Operator 會將指定的憑證複製到租戶中的每個 MinIO 伺服器 Pod。密鑰必須包含以下欄位
指定的憑證必須對應到 KES 伺服器上的身分。請參閱 KES Wiki 以取得關於 KES 身分的更多資訊。 若使用 MinIO Operator 部署 KES,請將憑證的雜湊值包含在 有關 MinIO 租戶 TLS 設定的範例和更完整文檔,請參閱MinIO Operator CRD 參考。 |
|
選填 提供將額外的用戶端憑證掛載到 MinIO Tenant Pod 中的支援。多個用戶端憑證將使用以下資料夾結構掛載:
指定一個 Kubernetes TLS secrets。MinIO Operator 會將指定的憑證複製到 Tenant 中每個 MinIO 伺服器 Pod,之後可以使用環境變數引用。此 secret 必須包含以下欄位:
|
|
選填 MinIO 磁碟區 (PV) 的掛載路徑。預設為 |
|
選填 掛載路徑內的子路徑。這是 MinIO 儲存資料的目錄。預設為 |
|
選填 啟用為 MinIO Tenant 中的 Pod 和服務使用 基於 Kubernetes 的 TLS 憑證產生和簽署。
如果 有關 MinIO 租戶 TLS 設定的範例和更完整文檔,請參閱MinIO Operator CRD 參考。 |
|
CertExpiryAlertThreshold 是憑證到期前觸發過期憑證警示的最短天數。 |
|
容器存活度探測。若探測失敗,容器將重新啟動。 |
|
容器就緒探測。若探測失敗,容器將從服務端點中移除。 |
|
啟動探測允許設定 Pod 在接收流量前的最長寬限期。 |
|
容器的生命週期 Hook。 |
|
可以停用或啟用與 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 一起作為 sidecar 執行的容器清單。 |
|
選填 指示 Operator 公開 MinIO 和/或 Console 服務。 |
|
選填 指定要附加到 MinIO 服務和/或 Console 服務的自訂標籤和註釋。 |
|
選填 用於在 Tenant 佈建期間產生 MinIO 使用者的 Kubernetes 不透明 secret 陣列。 陣列中的每個元素都是由鍵值對 每個參考的 Kubernetes secret 必須包含以下欄位:
預設情況下,Operator 會使用 |
|
選填 在建立新 Tenant 時建立儲存貯體。如果已存在具有指定名稱的儲存貯體,則跳過。 |
|
選填 啟用 MinIO Tenant 的 JSON、匿名記錄。 |
|
選填 指定包含要用於 MinIO 集區的其他環境變數配置的 secret。該 secret 預期有一個名為 config.env 的鍵,其中包含所有導出的 MinIO+ 環境變數。 |
|
選填 將自訂 initContainers 新增至 StatefulSet |
|
選填 如果提供,statefulset 將新增這些磁碟區。您應該設定對應磁碟區和磁碟區掛載的規則。我們不會測試此規則,k8s 會顯示結果。 |
|
選填 如果提供,statefulset 將新增這些磁碟區。您應該設定對應磁碟區和磁碟區掛載的規則。我們不會測試此規則,k8s 會顯示結果。 |
TenantUsage
TenantUsage 是關於 Tenant 使用情況和容量的指標
欄位 | 描述 |
---|---|
|
此 Tenant 的使用容量 (以位元組為單位)。 |
|
此 Tenant 的原始容量 (以位元組為單位)。 |
|
Usage 是 MinIO 管理的資料量 (以位元組為單位)。 |
|
Usage 是磁碟上的原始使用量 (以位元組為單位)。 |
|
Tiers 包括 Tenant 中個別層的使用情況 |
TierUsage
TierUsage 代表 Tenant 設定的層的使用情況
欄位 | 描述 |
---|---|
|
層的名稱 |
|
層的類型 |
|
層的總使用量 |