MinIO 自訂資源定義
MinIO Operator 安裝一個 自訂資源定義 (CRD),用於描述 MinIO 租戶物件。Operator 使用此 CRD 來佈建和管理 Kubernetes 叢集中的租戶資源。
本頁記載了用於自訂 Operator 部署的租戶的 CRD 參考。本文件假設熟悉所有參考的 Kubernetes 概念、實用程式和程序。
Operator CRD v2 參考
套件 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 憑證關聯的 |
|
選用 指定一個或多個 |
|
選用 指定一個或多個 x.509 主體別名 (SAN),以關聯至自動產生的 TLS 憑證。MinIO 伺服器 Pod 會使用 SNI 來根據請求的主機名稱判斷要回應哪個憑證。 |
CertificateStatus
CertificateStatus 會追蹤運算子管理的所有憑證
欄位 | 描述 |
---|---|
|
AutoCertEnabled 註冊我們是否知道租戶已啟用 autocert |
|
提供手動新增至運算子的 |
CustomCertificateConfig
CustomCertificateConfig (customCertificateConfig
) 提供與手動新增至運算子的 TLS 憑證相關聯的屬性,作為租戶建立的一部分。如果沒有自訂 TLS 憑證,這些欄位就不包含任何資料。
欄位 | 描述 |
---|---|
|
選用 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選用 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選用 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選用 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
|
選用 輸出與手動提供的 TLS 憑證相關聯的一個或多個 |
CustomCertificates
CustomCertificates (customCertificates
) 提供手動新增至運算子的 TLS 憑證分組,作為租戶建立的一部分。如果沒有自訂 TLS 憑證,這些欄位就不包含任何資料。
欄位 | 描述 |
---|---|
|
選用 用戶端 |
|
選用 Minio |
|
選用 憑證授權單位 |
ExposeServices
ExposeServices (exposeServices
) 定義 MinIO 物件儲存和主控台服務的公開方式。
欄位 | 描述 |
---|---|
|
選用 指示運算子公開 MinIO 服務。預設值為 |
|
選用 指示運算子公開 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 運算子會將指定的憑證複製到租戶中的每個 MinIO Pod。當 MinIO Pod/服務回應 TLS 連線請求時,它會使用 SNI 選取具有相符 指定包含下列欄位的物件
如需範例和有關為 MinIO 租戶設定 TLS 的更完整文件,請參閱 MinIO Operator CRD 參考。 |
|
選用 指定一個 Kubernetes TLS 密碼,其中包含自訂根憑證授權單位和 x.509 憑證,以用於使用外部金鑰管理服務 (例如 Hashicorp Vault) 執行 mTLS 驗證。 指定包含下列欄位的物件
|
|
選用
|
|
選用
|
|
選用 如果提供,則將這些註解用於 KES 物件中繼資料註解 |
|
選用 如果提供,則將這些標籤用於 KES 物件中繼資料標籤 |
|
選用 用於在 MinIO 租戶中指定 CPU 和記憶體 資源配置 或限制的物件規格。 |
|
選用 運算子在選取要部署 MinIO KES Pod 的節點時要套用的篩選器。運算子只會選取其標籤符合指定選取器的節點。 如需詳細資訊,請參閱 Kubernetes 文件中的 將 Pod 指派給節點。 |
|
選用 指定一個或多個要套用至 MinIO KES Pod 的 Kubernetes 容許度。 |
|
選用 指定 KES Pod 的節點親和性、Pod 親和性和 Pod 反親和性。 |
|
選用 指定一個或多個要套用至部署在 MinIO 集區中的 Pod 的 Kubernetes 拓撲分散限制。 |
|
選用 如果提供,則將此名稱用作 KES 在 KMS 後端上建立的金鑰名稱 |
|
指定 MinIO KES Pod 的 安全性內容。運算子僅支援下列 Pod 安全性欄位
|
|
指定 MinIO KES Pod 的 安全性內容。 |
|
選用 如果提供,則 MinIO 運算子會在部署 KES 資源時新增指定的環境變數。 |
LocalCertificateReference
LocalCertificateReference (externalCertSecret
、externalCaCertSecret
、clientCertSecret
) 包含 Kubernetes 密碼,其中包含 TLS 憑證或憑證授權單位檔案,以用於在 MinIO 租戶中啟用 TLS。
欄位 | 描述 |
---|---|
|
必要 包含 TLS 憑證或憑證授權單位檔案的 Kubernetes 密碼名稱。 |
|
必要 Kubernetes 密碼的類型。指定 |
Logging
Logging 描述 MinIO 租戶的記錄。
欄位 | 描述 |
---|---|
|
|
|
|
|
Pool
Pool (pools
) 定義租戶上的 MinIO 伺服器集區。每個集區都由一組 MinIO 伺服器 Pod 組成,這些 Pod 會「彙集」其儲存資源,以支援物件儲存和擷取請求。每個伺服器集區都獨立於所有其他集區,並支援在 MinIO 租戶中水平擴展可用儲存資源。
如需範例和有關 pools
物件的更完整文件,請參閱 MinIO Operator CRD 參考。
欄位 | 描述 |
---|---|
|
必要 指定集區的名稱。如果省略此欄位,運算子會自動產生集區名稱。 |
|
必要 要在集區中部署的 MinIO 伺服器 Pod 數。最小值為 MinIO Operator 每個池 (pool) 至少需要 |
|
必要 為池中每個 MinIO 伺服器 Pod 生成的持久磁碟區聲明 (Persistent Volume Claim) 數量。 MinIO Operator 每個池 (pool) 至少需要 |
|
必要 指定 MinIO Operator 在為 MinIO 租戶 (tenant) 生成持久磁碟區聲明時要使用的配置選項。 |
|
選用 用於在 MinIO 租戶中指定 CPU 和記憶體 資源配置 或限制的物件規格。 |
|
選用 Operator 在選擇部署池中 Pod 的節點時套用的篩選器。Operator 只會選擇標籤與指定選擇器相符的節點。 如需詳細資訊,請參閱 Kubernetes 文件中的 將 Pod 指派給節點。 |
|
選用 為 MinIO 池中的 Pod 指定節點親和性 (node affinity)、Pod 親和性 (pod affinity) 和 Pod 反親和性 (pod anti-affinity)。 |
|
選用 指定一個或多個 Kubernetes 容忍度 (tolerations),以套用至部署在 MinIO 池中的 Pod。 |
|
選用 指定一個或多個要套用至部署在 MinIO 集區中的 Pod 的 Kubernetes 拓撲分散限制。 |
|
選用 指定池中 Pod 的 安全上下文 (Security Context)。Operator 僅支援以下 Pod 安全欄位
|
|
指定池中容器的 安全上下文 (Security Context)。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 是一個 Kubernetes 物件,描述 MinIO 租戶。
欄位 | 描述 |
---|---|
|
|
|
|
|
請參閱 Kubernetes API 文件以瞭解 |
|
|
|
必要 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 租戶物件的組態。
以下參數是 Operator CRD v2 Reference
MinIO CRD API spec
定義特有的,作為 MinIO Operator v4.0.0 的一部分新增。
如需有關此物件的更完整文件,請參閱 MinIO Kubernetes 文件。
欄位 | 描述 |
---|---|
|
必要 描述部署在 MinIO 租戶中每個 MinIO 伺服器池的物件陣列。每個池都由一組 MinIO 伺服器 Pod 組成,這些 Pod「匯集」其儲存資源,以支援物件儲存和擷取要求。每個伺服器池都獨立於所有其他池,並支援 MinIO 租戶中可用儲存資源的水平擴展。 MinIO 租戶 如需範例和有關 |
|
選用 |
|
選用 指定用於從私人 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 身分的更多資訊,請參閱 KES Wiki。 如果使用 MinIO Operator 部署 KES,請在 如需範例和有關為 MinIO 租戶設定 TLS 的更完整文件,請參閱 MinIO Operator CRD 參考資料。 |
|
選用 提供將額外的用戶端憑證掛載到 MinIO Tenant Pod 的支援。多個用戶端憑證將使用以下資料夾結構掛載:
指定 Kubernetes TLS secret。MinIO Operator 會將指定的憑證複製到 Tenant 中每個 MinIO 伺服器 Pod,稍後可以使用環境變數來參考這些憑證。此 secret 必須包含以下欄位:
|
|
選用 MinIO 磁碟區 (PV) 的掛載路徑。預設為 |
|
選用 掛載路徑內的子路徑。這是 MinIO 儲存資料的目錄。預設為 |
|
選用 啟用 基於 Kubernetes 的 TLS 憑證產生和 MinIO Tenant 中 Pod 和服務的簽署。
如果 如需範例和有關為 MinIO 租戶設定 TLS 的更完整文件,請參閱 MinIO Operator CRD 參考資料。 |
|
CertExpiryAlertThreshold 是觸發憑證即將過期警示的最小剩餘有效天數。 |
|
用於容器存活度的存活探針。如果探針失敗,容器將會重新啟動。 |
|
用於容器準備就緒的準備就緒探針。如果探針失敗,容器將會從服務端點移除。 |
|
啟動探針允許為 Pod 設定最大寬限期,以便在流量路由到 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 的 Sidecar 執行的容器清單。 |
|
選用 指示 Operator 公開 MinIO 和/或 Console 服務。 |
|
選用 指定要附加到 MinIO 服務和/或 Console 服務的自訂標籤和註釋。 |
|
選用 用於在 Tenant 佈建期間產生 MinIO 使用者的 Kubernetes 不透明 secret 陣列。 陣列中的每個元素都是一個包含鍵值對 每個參考的 Kubernetes secret 必須包含以下欄位:
Operator 預設會使用 |
|
選用 在建立新 Tenant 時建立儲存貯體。如果已存在具有指定名稱的儲存貯體,則略過。 |
|
選用 啟用 MinIO Tenant 的 JSON、匿名記錄。 |
|
選用 指定一個 secret,其中包含要用於 MinIO 集區的其他環境變數組態。此 secret 應具有一個名為 config.env 的鍵,其中包含 MinIO+ 的所有匯出環境變數。 |
|
選用 將自訂 initContainers 新增到 StatefulSet |
|
選用 如果提供,statefulset 將會新增這些磁碟區。您應該為對應的磁碟區和磁碟區掛載設定規則。我們將不會測試此規則,k8s 將會顯示結果。 |
|
選用 如果提供,statefulset 將會新增這些磁碟區。您應該為對應的磁碟區和磁碟區掛載設定規則。我們將不會測試此規則,k8s 將會顯示結果。 |
TenantUsage
TenantUsage 是關於 Tenant 使用量和容量的指標
欄位 | 描述 |
---|---|
|
此 Tenant 的使用容量,以位元組為單位。 |
|
此 Tenant 的原始容量,以位元組為單位。 |
|
Usage 是 MinIO 管理的資料量,以位元組為單位。 |
|
Usage 是磁碟上的原始使用量,以位元組為單位。 |
|
Tiers 包括 Tenant 中個別層的使用量 |
TierUsage
TierUsage 代表 Tenant 設定的層的使用量
欄位 | 描述 |
---|---|
|
層的名稱 |
|
層的類型 |
|
層的 TotalSize 使用量 |