COSI:对象存储也可以通过 K8S API 管理了!
关注公众号并添加到“星标⭐”,防止错过消息
后台回复【资料包】获取学习资料
本文介绍了容器对象存储接口 (COSI),它是在 Kubernetes 中供应和使用对象存储的标准。它是 Kubernetes v1.25 中的一个 alpha 功能。
文件和块存储通过容器存储接口 CSI 在 Kubernetes 生态系统中被视为一等公民。使用 CSI 卷的工作负载可以享受跨供应商和跨 Kubernetes 集群的可移植性优势,而无需更改应用程序清单。对象存储不存在等效标准。
COSI
Kubernetes Native:使用 Kubernetes API 来配置、配置和管理存储桶 自助服务:管理和运营 (DevOps) 之间的明确划分,为 DevOps 人员启用自助服务能力 可移植性:通过跨 Kubernetes 集群和跨对象存储供应商的可移植性实现供应商中立性
跨供应商的可移植性只有在两家供应商都支持通用数据路径 API 时才有可能。例如。可以从 AWS S3 移植到 Ceph,或从 AWS S3 移植到 MinIO,反之亦然,因为它们都使用 S3 API。相反,无法从 AWS S3 和 Google Cloud 的 GCS 移植,反之亦然。
Architecture
COSI Controller Manager 充当处理 COSI API 对象更改的主控制器。它负责处理存储桶创建、更新、删除和访问管理的请求。每个 Kubernetes 集群都需要一个控制器管理器实例。即使集群中使用了多个对象存储提供程序,也只需要一个。
COSI Sidecar 充当 COSI API 请求和供应商特定 COSI 驱动程序之间的转换器。该组件使用供应商驱动程序应满足的标准化 gRPC 协议。
COSI Driver 是供应商特定组件,它接收来自 sidecar 的请求并调用适当的供应商 API 以创建存储桶、管理其生命周期并管理对它们的访问。
API
COSI API 以桶为中心,因为桶是对象存储的单元抽象。COSI 定义了三个旨在管理它们的 Kubernetes API
此外,还定义了另外两个用于管理对存储桶的访问的 API:
由于对象存储始终通过网络进行身份验证,因此需要访问凭证才能访问存储桶。BucketAccess 和 BucketAccessClass 这两个 API 用于表示访问凭证和身份验证策略。有关这些 API 的更多信息可以在官方 COSI 提案中找到:
https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1979-object-storage-support
Self-Service
除了提供 kubernetes-API 驱动的存储桶管理之外,COSI 还旨在使 DevOps 人员能够自行配置和管理存储桶,而无需管理员干预。这进一步使开发团队能够实现更快的周转时间和更快的上市时间。
COSI 通过在两个不同的利益相关者(即管理员 admin 和集群操作员)之间划分存储桶配置步骤来实现这一点。管理员将负责就如何配置存储桶以及如何获取存储桶的访问权限设置广泛的策略和限制。集群操作员可以在管理员设置的限制内自由创建和使用存储桶。
可移植性
COSI 的第三个目标是实现存储桶管理的供应商中立性。COSI 支持两种可移植性:
跨集群可移植性允许在一个集群中配置的存储桶在另一个集群中可用。这仅在对象存储后端本身可以从两个集群访问时才有效。
跨提供商可移植性是指允许组织或团队无缝地从一个对象存储提供商迁移到另一个对象存储提供商,而无需更改应用程序定义(PodTemplates、StatefulSets、部署等)。这只有在源和目标提供者使用相同的数据时才有可能。
COSI 不处理数据迁移,因为它超出了其范围。如果提供商之间的移植也需要迁移数据,则需要采取其他措施来确保数据可用性。
下一步
令人惊叹的 sig-storage-cosi
社区一直在努力将 COSI 标准带入 alpha 状态。我们期待很多供应商加入编写 COSI 驱动程序并与 COSI 兼容!
我们希望为 COSI 存储桶添加更多身份验证机制,我们正在设计高级存储桶共享原语、多集群存储桶管理等等。未来有很多伟大的想法和机会!
作者:Sidhartha Mani
出处:https://kubernetes.io/blog/2022/09/02/cosi-kubernetes-object-storage-management/
- END -
推荐阅读
K8S 1.25 中的重大更改和删除K8S 1.25 针对 Pod 又有了新的变化
史诗级整理 Jenkins 流水线详解
Helm 进阶到骨灰玩家,收藏版!
2.4W 字 Helm 从入门到专家
Docker 镜像构建保姆级入门实战指南
K8S 运维开发调试神器 Telepresence 实践指南
重新定义软件架构的三个新兴技术
Harbor 对接 MinIO 和 NFS ,详细教程
7 张图解 CrashLoopBackOff,如何发现问题并解决它?Containerd ctr、crictl、nerdctl 客户端命令介绍与实战操作12 图入门高性能分布式对象存储 MinIO
32 张配图详解 K8S 1.24 高可用部署,保姆级详细版!
Kubernetes 1.25 正式发布,所有变化都在这儿了
17 张图实战 + 理清 K8S 网络排错思路,硬核!16 张图硬核讲解 Kubernetes 网络模型K8S 的 TCP 数据包流量可视化超详细分布式对象存储 MinIO 实战教程