適用於 Kubernetes 的 MinIO

客戶在 Kubernetes 上執行 MinIO 有三個原因

01.

部署、管理和保護類似 S3 的基礎架構,其中 MinIO 提供物件儲存,而 Kubernetes 提供運算基礎架構。

02.

DevOps 工具的統包式多叢集部署和管理,提供創新自由,而不會造成鎖定或中斷,同時確保跨位置、雲端和平台的一致開發人員體驗。

03.

使用 MinIO 進行 Kubernetes 儲存,可以控制軟體堆疊,並具有避免雲端鎖定和跨混合雲和多雲提供一致的物件儲存的靈活性。

MinIO 是一個高效能的 Kubernetes 原生物件儲存,與 S3 API 相容。我們建議您在需要 Kubernetes 上物件儲存的完整 S3 API 功能時,使用 MinIO。MinIO 提供單一全域命名空間和跨多個雲端供應商、內部部署和邊緣的一致物件儲存介面。

MinIO 原生與 Kubernetes 整合,以簡化跨多個雲端和邊緣的大規模多租戶物件儲存即服務的操作。MinIO 可以透過多種工具進行管理。在 Kubernetes 環境中,MinIO Operator 和 kubectl 外掛程式簡化了 DevOps 和基礎架構團隊的部署和管理。

以 Kubernetes 作為其引擎,MinIO 可以在 Kubernetes 執行的任何地方執行,在現代的雲原生世界中,基本上是無處不在。請參閱以下由 Kubernetes 驅動的環境,其中包含關於整合的詳細資訊

VMware Tanzu OpenShift SUSE Rancher EKS AKS GKE

雖然 MinIO 與其他 Kubernetes 環境整合,但我們一直支援有興趣使用 Kubernetes 建立客戶架構的開發人員。我們的現成 Kubernetes 架構如下

Architecture

MinIO 為任何 Kubernetes 發行版提供一致、高效能且可擴展的物件儲存。MinIO 從設計上來說是 Kubernetes 原生的,並且從一開始就與 S3 相容。開發人員可以快速為其所有雲原生應用程式部署持久物件儲存。MinIO 和 Kubernetes 的結合提供了一個強大的平台,允許應用程式跨任何多雲和混合雲基礎架構擴展,並且仍然可以集中管理和保護,避免公有雲鎖定。

MinIO Operator 原生與 Kubernetes 整合,以提供

Storage Classes and Tiering
儲存類別和分層
跨 NVMe、HDD 和公有雲儲存分層。
External Load Balancing
外部負載平衡
使用 NGINX Ingress 控制器平衡傳入請求的負載。
Encryption Key Management
加密金鑰管理
使用 HashiCorp Vault 管理加密金鑰。
Identity Management
身分管理
使用與 OpenID Connect 相容的 Keycloak IDP 管理身分和政策。
Certificate Management
憑證管理
使用 Rancher Certificate Manager 和 Let's Encrypt 設定和管理憑證。
Monitoring and Alerting
監控和警示
使用 Rancher Monitoring 或 Grafana 追蹤指標並發出警示。
Logging and Auditing
記錄和稽核
將記錄輸出到 Elastic Stack 進行分析。

Kubernetes 儲存類別和分層

大規模部署 MinIO 的關鍵要求是能夠跨 Kubernetes 儲存類別 (NVMe、HDD、公有雲) 分層。這使企業能夠管理成本和效能。

MinIO 支援將老化的物件從快速 NVMe 層自動轉換到更具成本效益的 HDD 層,甚至更具成本效益的冷公有雲儲存層。

分層時,MinIO 會在各層之間呈現統一的命名空間。各層之間的移動對應用程式是透明的,並由客戶政策觸發。

MinIO 和 Kubernetes 透過在來源加密物件,安全可靠地實現混合雲和多雲儲存 - 確保客戶保留對資料的完全控制權。當部署在公有雲內部時,Kubernetes 可以有效地管理跨持久區塊儲存和較便宜的物件儲存層的資料。

外部負載平衡

MinIO 的所有通訊都基於 HTTPs、RESTFUL API,並將支援任何標準、與 Kubernetes 相容的 Ingress 控制器。這包括基於硬體和軟體定義的解決方案。最受歡迎的選擇是 NGINX。

加密金鑰管理

我們建議使用 HashiCorp Vault 將金鑰儲存在物件儲存系統之外。這是雲原生應用程式的最佳實務。

我們建議在生產環境中的所有儲存貯體上預設啟用加密。MinIO 使用 AES-256-GCM 或 ChaCha20-Poly1305 加密來保護資料的完整性和機密性,且效能影響可忽略不計。

MinIO 支援所有三種伺服器端加密 (SSE-KMS、SSE-S3 和 SSE-C) 模式。SSE-S3 和 SSE-KMS 與伺服器端的 KMS 整合,而 SSE-C 使用客戶提供的金鑰。MinIO 支援在 KMS 中設定儲存貯體層級的預設加密金鑰,並支援 AWS-S3 語意 (SSE-S3)。客戶也可以使用 SSE-KMS 請求標頭在 KMS 上指定一個單獨的金鑰。

MinIO 依賴外部 KMS 來引導其內部金鑰加密伺服器 (KES 服務),以實現高效能的每個物件加密。每個租戶都在隔離的命名空間中執行自己的 KES 伺服器。

身分管理

透過第三方與 OpenID Connect/LDAP 相容的身分提供者 (例如 Keycloak、Okta/Auth0、Google、Facebook、ActiveDirectory 和 OpenLDAP) 管理 Kubernetes 和 MinIO 的單一登入 (SSO)。MinIO 建議使用與 OpenID Connect 相容的 Keycloak IDP。

管理員可以使用外部 IDP 集中管理使用者/應用程式身分。MinIO 強化了 IDP,提供 AWS IAM 風格的使用者、群組、角色、政策和權杖服務 API。企業可透過一個獨立於基礎架構且統一的身分和存取管理 (IAM) 層,獲得顯著的架構彈性。

憑證管理

TLS 用於加密所有流量,包括應用程式和 MinIO 之間的節點間流量。TLS 憑證確立網路連線資源的身分,例如 MinIO 伺服器網域,並保護網路通訊。

MinIO Operator 會自動設定、佈建、管理和更新 MinIO 租戶的憑證。這些租戶在各自的 Kubernetes 命名空間中完全隔離,並擁有自己的憑證以提高安全性。

監控和警示

MinIO 建議在 Kubernetes 上執行時,使用與 Prometheus 相容的系統進行監控和警報。MinIO 發布了所有可以想像到的與物件儲存相關的 Prometheus 指標,從儲存桶容量到存取指標。這些指標可以在任何與 Prometheus 相容的工具或 MinIO 主控台中收集和視覺化。

外部監控解決方案會定期抓取 MinIO Prometheus 端點。MinIO 建議使用 Grafana 來監控 MinIO 中的 Prometheus 饋送。管理員可以建立基準並設定通知警報閾值,然後可以透過 Alertmanager 將通知路由到通知平台,例如 PagerDuty、Freshservice 甚至 SNMP。

記錄和稽核

啟用 MinIO 稽核會為物件儲存叢集上的每個操作產生日誌。除了稽核日誌外,MinIO 還會記錄主控台錯誤以進行操作疑難排解。

MinIO 支援將日誌輸出到 Elastic Stack(或第三方)以進行分析和警報。為了簡化操作,我們建議 Kubernetes 和 MinIO 使用相同的日誌記錄和稽核工具。

MinIO 是 Kubernetes 儲存

Kubernetes 依賴物件儲存。從建立 MinIO 的工程師那裡了解 Kubernetes 原生物件儲存的來龍去脈。

MinIO 與頂級 Kubernetes 服務整合

了解更多

您正在使用 Internet Explorer 11 或更低版本。由於安全性問題且缺乏對 Web 標準的支援,強烈建議您升級到現代瀏覽器。