Kubernetes对象存储的最佳实践
与Kubernetes本身一样,底层对象存储应该是分布式的、解耦的、声明式的和不可变的。
Kubernetes是在分布式系统上部署和协调容器化工作负载的最常用技术。然而,Kubernetes远不止是容器协调。它正迅速成为企业的一个主要管理和控制点。为什么?因为它有能力把基础设施当作代码来处理。
Kubernetes诞生于自动化应用部署、扩展和管理的需要,它为分布式应用和服务提供了一个基础设施层,将硬件作为一套抽象概念提供给这些应用和服务。然后在Kubernetes的统一界面中管理这些抽象概念。
作为软件控制的基础设施,Kubernetes不仅简化了应用和服务的部署和管理,还可以抵消底层硬件带来的风险。这种工作模式消除了硬件这个症结。当硬件出现故障时,软件可以简单地转移到其他地方。
应用程序作为容器中的微服务运行,被设计为可移植和独立部署。Devops团队宣布工作负载的理想状态,Kubernetes确保实际状态与理想状态相匹配,自动排除故障并补救故障,通常只需重新启动无响应的容器。这意味着容器必须是不可变和无状态的,以防止崩溃和重启时的数据丢失或应用程序损坏。为了跟踪状态,不可变的容器将数据和配置信息保存在容器之外。
为什么Kubernetes需要对象存储
Kubernetes通过运行与底层硬件和软件要求脱钩的可移植容器来实现超大规模。为了使容器真正具有可移植性,它不能依赖本地存储硬件,而根据其定义,本地存储硬件是不可移植的。通过利用快速的数据中心网络来解耦计算容器和本地存储,可以很容易地克服这一挑战。
虽然这些要求看起来很简单,但要实现这些要求并不容易。事实上,Kubernetes对于通常在SAN和NAS设备上运行的文件和块等传统存储格式将是一个问题。这些存储类型依赖于POSIX,这是一个标准的系统调用接口,用于访问本地存储的数据。当数据量以及现代分析应用程序分析这些数据的要求成倍增长时,POSIX就会碰壁。即使在本地,POSIX元数据的争夺和损坏也会在太多并发的并行文件操作中发生。这些都不是一个超大规模存储系统的行为。
相比之下,分布式对象存储并不面临这种限制。通过不允许编辑,对象存储获得了顺序I/O和更简单的锁定机制的好处。当与快速的数据中心网络相结合时,分布式对象存储系统将超越传统的符合POSIX标准的文件系统解决方案,特别是在处理并发的并行请求时。
现在,当面临与外部文件和块存储以及Kubernetes合作的限制和复杂性时,Devops团队几乎完全采用对象存储。最好的对象存储,就像Kubernetes本身,是分布式的、解耦的、声明式的和不可改变的。
Kubernetes原生对象存储通过现有的Kubernetes机制和集成进行管理、安全和自动化,为开发人员提供丰富的功能和高效率,因为它可以跨内部、多云、混合云和公共云环境的工作负载。
使用MinIO的Kubernetes原生对象存储
考虑到所有这些,我们看到了一个设计机会,将MinIO移到Kubernetes框架内,以简化和自动配置、保护以及通过Kubernetes持续管理桶和对象。同时,我们增加了一套功能来简化Kubernetes原生对象存储的采用和部署,特别是对于多租户环境。
MinIO Kubernetes Operator将所有关键的开发任务封装成软件,企业IT部门可以很容易地使用,以创建和管理独立于底层硬件的大型对象存储基础设施。MinIO Kubernetes插件扩展了熟悉的kubectl 命令集,增加了一套简单明了的子命令,以在Kubernetes上创建、配置和管理MinIO群集。
MinIO操作员控制台使Kubernetes对象存储更加容易。这个图形用户界面非常简单,组织中的任何人都可以创建、部署和管理作为服务的对象存储。多年来,开发团队一直在乞求IT团队提供自助服务的对象存储,现在它来了。
MinIO操作员控制台
MinIO控制台以我们的mc CLI为基础,在一个基于浏览器的GUI中提供同样的简单性和力量,让企业IT管理员感觉很直观。仪表板通过Prometheus和MinIO指标终端可视化行业标准监测。

MinIO 控制台
我们建立了MinIO控制台,为IT管理员提供了一个简化的、点选式的体验,通过Kubernetes管理对象存储,而不需要了解Helm图表或YAML。基于浏览器的界面节省了时间,简化了配置和管理桶、用户和组及其策略和设置等过程。新的用户和存储桶可以通过OpenID连接和活动目录或LDAP手动添加或点击几下即可。
在MinIO Console中创建一个存储桶
本着真正的Kubernetes自动化精神,我们最近在SUBNET商业引擎和支持平台上增加了SUBNET Health。SUBNET Health是一款GUI驱动的支持软件,可以自动在驱动器、网络、CPU、内存、操作系统、容器和MinIO软件组件之间进行数十次检查,确保它们以最佳状态运行。诊断程序可以与MinIO共享,以利用我们24/7/365的直接工程师支持。解决根本原因的速度变得非常快,节省了管理时间,提高了可靠性和可用性。

MinIO SUBNET健康
MinIO的高性能、Kubernetes原生对象存储套件为企业IT和开发团队在所有Kubernetes发行版和服务中提供了一致的体验,包括红帽OpenShift、VMware Tanzu、SUSE、惠普Ezmeral、Azure AKS、谷歌GKE、亚马逊EKS和库存上游Kubernetes。财富500强中超过58%的企业以某种形式依赖MinIO,在公有云、私有云、多云、混合云和边缘地区提供对象存储层。