MinIO 全面支持 Kubernetes

客户在 Kubernetes 上运行 MinIO 有三个原因:

01.
部署、管理和保护类似 S3 的基础设施,其中 Kubernetes 提供计算基础设施,MinIO 提供对象存储。
02.
DevOps 工具的全包式多集群部署和管理,提供无锁定或中断的创新自由,同时确保跨位置、云和平台的一致开发人员体验。
03.
在 Kubernetes 上运行 MinIO 可以灵活地控制软件堆栈,避免云锁定,并在混合云和多云中提供一致的对象存储。

MinIO 是与 S3 API 兼容的高性能 Kubernetes 原生对象存储。我们建议您在需要完整的 S3 API 功能的情况下使用 MinIO 来实现 Kubernetes 上的对象存储。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 原生集成,提供:

存储类和分层
存储类和分层
跨 NVMe、HDD 和公共云存储分层。
外部负载平衡
外部负载平衡
使用 NGINX 入口控制器对传入请求进行负载平衡。
加密密钥管理
加密密钥管理
使用HashiCorp Vault管理加密密钥。
身份管理
身份管理
使用OpenID Connect兼容的Keycloak IDP管理身份和策略。
证书管理
证书管理
使用Rancher Certificate Manager和Let's Encrypt配置和管理证书。
监控和警报
监视和警报
跟踪指标并使用牧场主监控或 Grafana 发出警报。
日志记录和审计
日志记录和审计
日志记录和审核

存储类和分层

在 Kubernetes 上大规模部署 MinIO 的关键要求是跨存储类(NVMe、HDD、公共云)的能力层。这使企业能够同时管理成本和性能。

MinIO 支持将老化对象从快速 NVMe 层自动过渡到更具成本效益的 HDD 层,甚至是成本优化的冷公有云存储层。

分层时,MinIO 在各层之间提供统一的命名空间。跨层的移动对应用程序是透明的,并由客户策略触发。

MinIO 和 Kubernetes 通过在源头加密对象,安全可靠地实现混合和多云存储,确保客户保留对数据的完全控制。当部署在公共云中时,Kubernetes 可以跨持久性块存储和更便宜的对象存储层有效地管理数据。

外部负载平衡

MinIO的所有通信都基于HTTP,RESTFUL API,并将支持任何标准的,兼容Kubernetes的入口控制器。这包括基于硬件和软件定义的解决方案。最受欢迎的选择是NGINX。

加密密钥管理

我们建议使用 HashiCorp 保管库将密钥存储在对象存储系统之外。这是云原生应用程序的最佳实践。

我们建议在生产环境中的所有存储桶上默认启用加密。MinIO 使用 AES-256-GCM 或 ChaCha20-Poly1305 加密来保护数据的完整性和机密性,对性能的影响可以忽略不计。

MinIO支持所有三种服务器端加密(SSE-KMS,SSE-S3和SSE-C)模式。SSE-S3 和 SSE-KMS 与服务器端的 KMS 集成,而 SSE-C 使用客户端提供的密钥。MinIO 支持在 KMS 中设置存储桶级默认加密密钥,并支持 亚马逊云-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 操作员自动为 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 标准的支持,强烈建议您升级到现代浏览器。