MinIO 自訂資源定義
MinIO Operator 安裝了描述 MinIO 租戶物件的 自訂資源定義 (CRD)。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
。
儲存貯體
儲存貯體描述預設建立的儲存貯體
欄位 | 描述 |
---|---|
|
|
|
|
|
CertificateConfig
CertificateConfig (certConfig
) 定義與 Operator 自動產生作為租戶建立一部分的任何 TLS 憑證相關聯的控制屬性。如果 spec.autoCert: false
,這些欄位無效。
欄位 | 描述 |
---|---|
|
選用 要與自動產生的 TLS 憑證相關聯的 |
|
選用 指定一個或多個要與自動產生的 TLS 憑證相關聯的 |
|
選用 指定一個或多個要與自動產生的 TLS 憑證相關聯的 x.509 主體別名 (SAN)。MinIO 伺服器 Pod 使用 SNI 來決定根據要求的主機名稱回應哪個憑證。 |
CertificateStatus
CertificateStatus 會追蹤 Operator 管理的所有憑證
欄位 | 描述 |
---|---|
|
AutoCertEnabled 會註冊我們是否知道租戶已啟用自動憑證 |
|
提供手動新增至 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 秘密,其中包含用於使用外部金鑰管理服務 (例如 Hashicorp Vault) 執行 mTLS 驗證的自訂根憑證授權單位和 x.509 憑證。 指定包含以下欄位的物件
|
|
選用
|
|
選用
|
|
選用 如果提供,請將這些註釋用於 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 反親和性。 |
|
選用 指定一或多個 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 Tenant。
欄位 | 描述 |
---|---|
|
|
|
|
|
請參閱 Kubernetes API 文件,了解 |
|
|
|
必要 MinIO Tenant 物件的根欄位。 |
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 Tenant 的 Kubernetes 排程器的物件。
欄位 | 描述 |
---|---|
|
選用 指定要用於排程 Tenant Pod 的 Kubernetes 排程器名稱 |
TenantSpec
TenantSpec (spec
) 定義 MinIO Tenant 物件的組態。
以下參數特定於 Operator CRD v2 參考
MinIO CRD API spec
定義,作為 MinIO Operator v4.0.0 的一部分新增。
如需此物件的更完整文件,請參閱 MinIO Kubernetes 文件。
欄位 | 描述 |
---|---|
|
必要 描述部署在 MinIO Tenant 中每個 MinIO 伺服器池的物件陣列。每個池都由一組 MinIO 伺服器 Pod 組成,這些 Pod「集結」其儲存資源以支援物件儲存和擷取要求。每個伺服器池都獨立於所有其他伺服器池,並且支援 MinIO Tenant 中可用儲存資源的水平擴展。 MinIO Tenant 請參閱 MinIO Operator CRD 參考資料,以取得 |
|
選用 |
|
選用 指定用於從私人 Docker 儲存庫提取映像的密碼金鑰。 |
|
選用 StatefulSet 建立的 Pod 的 Pod 管理原則 |
|
選用 如果提供,MinIO Operator 會在部署 Tenant 資源時新增指定的環境變數。 |
|
選用 在租用戶中的每個 MinIO Pod 上啟用具有 SNI 支援的 TLS。如果省略 指定 Kubernetes TLS 密碼的陣列。MinIO Operator 會將指定的憑證複製到租用戶中的每個 MinIO 伺服器 Pod。當 MinIO Pod/服務回應 TLS 連線要求時,它會使用 SNI 來選取具有相符
請參閱 MinIO Operator CRD 參考資料,以取得有關設定 MinIO Tenant TLS 的範例和更完整的文件。 |
|
選用 允許 MinIO 伺服器 Pod 驗證由 Pod 的信任存放區中沒有的憑證授權單位簽署的用戶端 TLS 憑證。 指定 Kubernetes TLS 密碼的陣列。MinIO Operator 會將指定的憑證複製到租用戶中的每個 MinIO 伺服器 Pod。
請參閱 MinIO Operator CRD 參考資料,以取得有關設定 MinIO Tenant TLS 的範例和更完整的文件。 |
|
選用 啟用 MinIO Tenant Pod 和 MinIO KES 之間的 mTLS 驗證。啟用 MinIO Tenant 和 MinIO KES 之間的連線能力必須。 指定 Kubernetes TLS 密碼。MinIO Operator 會將指定的憑證複製到租用戶中的每個 MinIO 伺服器 Pod。密碼必須包含以下欄位
指定的憑證必須對應到 KES 伺服器上的身分。如需有關 KES 身分的詳細資訊,請參閱 KES Wiki。 如果使用 MinIO Operator 部署 KES,請將憑證的雜湊值納入 請參閱 MinIO Operator CRD 參考資料,以取得有關設定 MinIO Tenant TLS 的範例和更完整的文件。 |
|
選用 支援將額外的用戶端憑證掛載到 MinIO Tenant Pod 中。多個用戶端憑證將使用以下資料夾結構掛載:
指定一個 Kubernetes TLS 機密。MinIO Operator 會將指定的憑證複製到 Tenant 中每個 MinIO 伺服器 Pod,稍後可以使用環境變數引用這些憑證。機密必須包含以下欄位:
|
|
選用 MinIO 磁碟區 (PV) 的掛載路徑。預設值為 |
|
選用 掛載路徑內的子路徑。這是 MinIO 儲存資料的目錄。預設值為 |
|
選用 啟用針對 MinIO Tenant 中的 Pod 和服務使用基於 Kubernetes 的 TLS 憑證產生和簽署。
如果 請參閱 MinIO Operator CRD 參考資料,以取得有關設定 MinIO Tenant TLS 的範例和更完整的文件。 |
|
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 和/或主控台服務。 |
|
選用 指定要附加到 MinIO 服務和/或主控台服務的自訂標籤和註釋。 |
|
選用 要在 Tenant 布建期間用於產生 MinIO 使用者的 Kubernetes 不透明機密陣列。 陣列中的每個元素都是一個由鍵值對 每個引用的 Kubernetes 機密都必須包含以下欄位:
Operator 預設會使用 |
|
選用 建立新 Tenant 時建立儲存貯體。如果已存在具有指定名稱的儲存貯體,則略過。 |
|
選用 啟用 MinIO Tenant 的 JSON、匿名記錄。 |
|
選用 指定一個機密,其中包含用於 MinIO 集區的其他環境變數設定。機密預期有一個名為 config.env 的金鑰,其中包含所有匯出的 MinIO+ 環境變數。 |
|
選用 將自訂 initContainers 新增至 StatefulSet |
|
選用 如果提供,statefulset 將會新增這些磁碟區。您應該設定對應磁碟區和磁碟區掛載的規則。我們不會測試此規則,k8s 將會顯示結果。 |
|
選用 如果提供,statefulset 將會新增這些磁碟區。您應該設定對應磁碟區和磁碟區掛載的規則。我們不會測試此規則,k8s 將會顯示結果。 |
TenantUsage
TenantUsage 是關於 Tenant 使用率和容量的指標
欄位 | 描述 |
---|---|
|
此 Tenant 的使用容量 (以位元組為單位)。 |
|
此 Tenant 的原始容量 (以位元組為單位)。 |
|
Usage 是 MinIO 管理的資料量 (以位元組為單位)。 |
|
Usage 是磁碟上的原始使用量 (以位元組為單位)。 |
|
Tiers 包含 Tenant 中個別層的使用量 |
TierUsage
TierUsage 代表 Tenant 設定的層的使用量
欄位 | 描述 |
---|---|
|
層的名稱 |
|
層的類型 |
|
層的總使用量 |