开发者友好型 Kubernetes 存储

Developer Friendly Kubernetes Storage

大多数开发人员并不喜欢管理基础设施,包括存储基础设施。Kubernetes 的一个优点是它可以简化基础设施管理,让开发人员专注于创建应用程序,并让 Kubernetes 处理编排。

Kubernetes 本身并不管理存储基础设施,但将 MinIO 和 Kubernetes 结合使用可以帮助提供应用程序所需的存储,并利用 Kubernetes 在计算方面擅长的声明式语法、可扩展性和资源优化。

MinIO 不会为 Kubernetes 集群创建持久性存储,而是提供应用程序所需的 对象存储。与其他对象存储解决方案不同,MinIO 专为 Kubernetes 量身定制。以下是 MinIO 和 Kubernetes 如何协同工作。

专为 Kubernetes 设计

有三种方法可以在 Kubernetes 中运行 MinIO。

第一种方法是简单地将其作为 **部署** 运行 - 如果您希望手动控制存储的分配方式,可以使用这种方法。第二种方法是运行一个 **有状态集**,其中您使用 Kubernetes 来配置存储。使用 Kubernetes 运行 MinIO 的第三种方法是通过 **MinIO 运算符**。

**MinIO 运算符** 遵循 Kubernetes 的设计模式。它允许开发人员通过 Kubernetes 接口使用声明式语法来控制 MinIO。只需说:“我需要一个 10 节点的 MinIO 实例”,运算符就会负责创建和管理该实例。

MinIO 运算符是将 MinIO 和 Kubernetes 结合使用最简单的方法,原因有两个。首先,它允许不了解如何管理存储的开发人员利用 Kubernetes 的自动化工具和声明式语法来管理存储,而无需向存储管理员寻求帮助或学习存储管理的详细信息。其次,它通过允许开发人员从 Kubernetes 仪表板管理 MinIO 来简化开发人员的工作流程。

将 MinIO 和 Kubernetes 结合使用,可以使 Kubernetes 掌控存储编排,从配置到卷放置再到磁盘重启。大多数开发人员没有处理这些存储管理任务的经验,但通过将 MinIO 和 Kubernetes 结合使用,他们可以依靠 Kubernetes 自动处理基础设施管理。

MinIO 通过 API 连接到 Kubernetes,而不是通过容器存储接口,从而可以更好地动态编排存储节点。

跨设备和环境的一致性

使用 MinIO 是一种创建一致存储体验的方法,无论数据中心中的硬件类型如何。它还可以创建混合云或多云环境中的一致存储。MinIO 不关心您使用的是廉价的、旧的、速度慢的驱动器还是市场上最快的存储设备,或者两者兼而有之,并且来自不同供应商的设备。MinIO 将在该存储基础设施之上运行,并以分布式方式管理卷。这样做可以提供一致性 - 无论设备如何,体验都相同 - 同时通过以分布式方式运行来提高整体性能指标。

S3 兼容性

Kubernetes 需要 S3 兼容的存储。事实上,为了使存储真正成为 云原生,它必须是 S3 兼容的。如果 Kubernetes 在 AWS 上运行,将应用程序连接到 S3 存储没有问题。但是,如果它在另一个云提供商、私有云或跨多个云运行,Kubernetes 需要一个 S3 兼容的对象存储来连接,MinIO 是唯一的选择。

资源优化

作为一个应用程序,MinIO 非常轻量级,它只需要存储基础设施即可工作。它不会占用内存或 CPU。如果您正在构建私有云,您希望 CPU 和内存密集型应用程序获得它们所需的资源,同时使用服务器上的本地连接卷进行存储。这使每个应用程序都可以利用每个服务器优化的资源。有些服务器可能针对 CPU 进行了优化,而另一些服务器可能针对存储进行了优化。这些服务器可以使用同一个 Kubernetes 集群,并通过 Kubernetes 轻松地进行编排。

由于 MinIO 非常轻量级,因此它非常适合部署混合工作负载,这些工作负载使用来自已优化不同的服务器的资源。

使用 MinIO 进行扩展

可扩展性是公司使用 Kubernetes 的另一个原因。在将 MinIO 和 Kubernetes 结合使用时,Kubernetes 可以管理计算资源和存储资源的扩展,同时仍然确保资源使用得到优化。

与传统的 文件和块存储系统不同,对象存储从一开始就被设计为能够以 PB 级规模运行,这是大多数现代企业正在处理的规模。对象存储还被设计为以分布式方式运行,因此它适合 Kubernetes 的架构模式。由于没有集中式元数据服务器,因此可以无限期地简单地添加更多卷、更多节点和更多集群,而不会在集中式元数据服务器周围形成瓶颈。

要点

MinIO 不是唯一可以连接到 Kubernetes 的对象存储解决方案。许多设备供应商都提供插件,用于将硬件与 Kubernetes 连接起来以进行本地部署。此外,Kubernetes 可以直接连接到来自 AWS、Google 和 Azure 的对象存储解决方案。

但是,只有 MinIO 可以提供开发人员使用 Kubernetes 管理存储的能力,并且以 Kubernetes 语言进行交流。MinIO 也是唯一提供跨环境一致性和可移植性的选项。
准备好尝试将 MinIO 和 Kubernetes 结合使用了吗?通过 下载 MinIO 来亲身体验。作为 100% 的开源解决方案,您将获得我们最新的功能,没有任何保留。如果您想先做一些研究,请 查看我们的文档 或者 加入我们的 Slack 频道,看看什么引起了人们的关注。