MinIO 自訂資源定義
MinIO Operator 安裝一個 自訂資源定義 (CRD),描述 MinIO 租戶物件。Operator 使用此 CRD 在 Kubernetes 叢集中佈建和管理租戶資源。
此頁面記錄了 CRD 參考,用於自訂 Operator 部署的租戶。本文件假設熟悉所有參考的 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
。
Bucket
Bucket 描述預設建立的儲存桶
欄位 | 描述 |
---|---|
|
|
|
|
|
CertificateConfig
CertificateConfig (certConfig
) 定義與 Operator 作為租戶建立的一部分自動產生的任何 TLS 憑證相關聯的控制屬性。如果 spec.autoCert: false
,則這些欄位無效。
欄位 | 描述 |
---|---|
|
選用 要與自動產生的 TLS 憑證關聯的 |
|
選用 指定一個或多個 |
|
選用 指定一個或多個 x.509 主體替代名稱 (SAN) 以與自動產生的 TLS 憑證關聯。MinIO 伺服器 Pod 使用 SNI 根據請求的主機名稱判斷要回應哪個憑證。 |
CertificateStatus
CertificateStatus 追蹤運營商管理的所有憑證。
欄位 | 描述 |
---|---|
|
AutoCertEnabled 註冊我們是否知道租戶已啟用自動憑證功能。 |
|
提供手動新增至運營商的 |
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 運營商 |
|
選用 在租戶中的每個 MinIO KES Pod 上啟用具有 SNI 支援的 TLS。如果省略 指定 Kubernetes TLS 密碼。MinIO 運營商將指定的憑證複製到租戶中的每個 MinIO Pod。當 MinIO Pod/服務回應 TLS 連線請求時,它會使用 SNI 來選取具有符合 指定包含下列欄位的物件
如需範例以及有關為 MinIO 租戶設定 TLS 的更完整文件,請參閱 MinIO 運營商 CRD 參考。 |
|
選用 指定 Kubernetes TLS 密碼,其中包含用於使用外部金鑰管理服務(例如 Hashicorp Vault)執行 mTLS 驗證的自訂根憑證授權單位和 x.509 憑證。 指定包含下列欄位的物件
|
|
選用
|
|
選用
|
|
選用 如果提供,請將這些註釋用於 KES 物件中繼資料註釋 |
|
選用 如果提供,請將這些標籤用於 KES 物件中繼資料標籤 |
|
選用 用於在 MinIO 租戶中指定 CPU 和記憶體 資源配置或限制的物件規格。 |
|
選用 運營商在選擇要在其上部署 MinIO KES Pod 的節點時套用的篩選器。運營商僅選擇標籤與指定的選取器相符的節點。 如需更多資訊,請參閱有關 將 Pod 指派給節點的 Kubernetes 文件。 |
|
選用 指定要套用至 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 運營商 CRD 參考。
欄位 | 描述 |
---|---|
|
必要 指定集區的名稱。如果省略此欄位,運營商會自動產生集區名稱。 |
|
必要 要在集區中部署的 MinIO 伺服器 Pod 數。最小值為 MinIO 運營商每個集區至少需要 |
|
必要 要為集區中的每個 MinIO 伺服器 Pod 產生的持續磁碟區宣告數。 MinIO 運營商每個集區至少需要 |
|
必要 指定 MinIO Operator 在為 MinIO 租戶產生 Persistent Volume Claims 時要使用的組態選項。 |
|
選用 用於在 MinIO 租戶中指定 CPU 和記憶體 資源配置或限制的物件規格。 |
|
選用 Operator 在選擇要將 Pod 部署在集區中的哪些節點時要應用的篩選器。Operator 只會選擇標籤符合指定選取器的節點。 如需更多資訊,請參閱有關 將 Pod 指派給節點的 Kubernetes 文件。 |
|
選用 指定 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 之前建立的,當時我們引入了預設的非根安全性內容,因此我們應該在沒有安全性內容的情況下繼續執行此集區 |
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 |
|
選用 邊車的資源,如果已設定,initcontainer 將會使用。 |
Tenant
Tenant 是一個 Kubernetes 物件,描述 MinIO 租戶。
欄位 | 描述 |
---|---|
|
|
|
|
|
有關 |
|
|
|
必要 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 租戶 Pod 的支援。多個用戶端憑證將使用以下資料夾結構掛載
指定一個 Kubernetes TLS 密鑰。MinIO Operator 會將指定的憑證複製到租戶中每個 MinIO 伺服器 Pod,之後可以使用環境變數引用這些憑證。此密鑰必須包含以下欄位:
|
|
選用 MinIO 磁碟區 (PV) 的掛載路徑。預設值為 |
|
選用 掛載路徑內的子路徑。這是 MinIO 儲存資料的目錄。預設值為 |
|
選用 啟用為 MinIO 租戶中的 Pod 和服務使用基於 Kubernetes 的 TLS 憑證產生和簽署。
如果 如需有關為 MinIO 租戶設定 TLS 的範例和更完整文件,請參閱 MinIO Operator CRD 參考。 |
|
CertExpiryAlertThreshold 是在憑證過期前,觸發過期憑證警報的最少天數。 |
|
容器存活探針。如果探針失敗,容器將會重新啟動。 |
|
容器就緒探針。如果探針失敗,容器將會從服務端點中移除。 |
|
啟動探針允許設定 Pod 在開始接收流量前啟動的最大寬限期。 |
|
容器的生命週期鉤子。 |
|
可以停用或啟用 S3 相關的功能,例如 |
|
選用 啟用為 Operator 自動產生的所有 TLS 憑證設定 |
|
選用 指示 MinIO Operator 使用指定的組態部署 MinIO 金鑰加密服務 (KES)。MinIO KES 支援在 MinIO 租戶上執行物件的伺服器端加密。 |
|
選用 指示 MinIO Operator 使用 prometheus operator。 租戶抓取組態將會加入由 prometheus-operator 管理的 prometheus。 |
|
選用 用於執行作為租戶一部分建立的 MinIO Pod 的 Kubernetes 服務帳戶。 |
|
選用 指示 Pod 的優先順序,以及 Pod 相對於叢集中其他 Pod 的重要性。這僅適用於 MinIO Pod。 請參閱 Kubernetes 優先順序類別文件以取得更完整的文件。 |
|
選用 MinIO Docker 映像的提取原則。指定下列其中一個
請參閱 Kubernetes 文件以取得詳細資訊 https://kubernetes.dev.org.tw/docs/concepts/containers/images#updating-images |
|
選用 一個容器列表,作為租戶中部署的每個 MinIO Pod 的 sidecar 執行。 |
|
選用 指示 Operator 公開 MinIO 和/或 Console 服務。 |
|
選用 指定要附加到 MinIO 服務和/或 Console 服務的自訂標籤和註解。 |
|
選用 一個 Kubernetes 不透明密鑰陣列,用於在租戶佈建期間產生 MinIO 使用者。 陣列中的每個元素都是一個物件,包含一個鍵值對 每個引用的 Kubernetes 密鑰必須包含以下欄位:
Operator 預設會使用 |
|
選用 在建立新租戶時建立儲存貯體。如果具有給定名稱的儲存貯體已存在,則跳過。 |
|
選用 啟用 MinIO 租戶的 JSON、匿名記錄。 |
|
選用 指定一個密鑰,其中包含要用於 MinIO 集區的其他環境變數組態。此密鑰預期有一個名為 config.env 的鍵,其中包含 MinIO+ 的所有匯出環境變數。 |
|
選用 將自訂 initContainers 新增至 StatefulSet |
|
選用 如果提供,statefulset 將會新增這些磁碟區。您應該為相應的磁碟區和磁碟區掛載設定規則。我們不會測試此規則,k8s 將會顯示結果。 |
|
選用 如果提供,statefulset 將會新增這些磁碟區。您應該為相應的磁碟區和磁碟區掛載設定規則。我們不會測試此規則,k8s 將會顯示結果。 |
TenantUsage
TenantUsage 是關於租戶使用情況和容量的指標
欄位 | 描述 |
---|---|
|
此租戶的使用容量,以位元組為單位。 |
|
此租戶的原始容量,以位元組為單位。 |
|
使用量是指 MinIO 管理的資料量,以位元組為單位。 |
|
使用量是指磁碟上的原始使用量,以位元組為單位。 |
|
Tiers 包括租戶中個別層的使用量 |
TierUsage
TierUsage 代表租戶設定的層的使用量
欄位 | 描述 |
---|---|
|
層的名稱 |
|
層的類型 |
|
層的總使用量 |