12. Kubernetes上的存储介绍

本篇文章是《2018年Kubernetes上的PostgreSQL Advent Calendar》的第12天。
昨天我们介绍了一些与Kubernetes和PostgreSQL相关的社群。

我想在搭建PostgreSQL on Kubernetes环境时介绍一下我们考虑的存储方案。

太长没看

    • “Container storage for Dummies”は無償版と思えないクオリティ、是非読もう。

 

    • Kubernetesにストレージの全てを突っ込む、コンテナ・ネイティブストレージがこれからのおすすめ。

 

    NetAppやEMCなどのベンダもKubernetes対応をすすめてるよ。

容器存储入门指南

首先,我想介绍这本电子书。

这本电子书是由Redhat发行的,它解释了一个很多人可能不太熟悉的概念,即”容器本地存储”,从定义、用法到为什么现在需要迁移等方面进行了详细解说。

请一定要阅读详细内容,但我最大的领悟是关于容器外部存储的分类方法。

    • コンテナ対応のストレージには2種類ある。

 

    • stotage for container = container-ready storageと呼ぶべき、従来型のストレージをコンテナ・Kubernetes対応したものが一つ。

 

    storage in container = container-native storageと呼ばれる、SDS(sofgtware-define storage)の全要素をコンテナに内包したものがもう一つ。

这个在之前的LT中用图解说明过的内容如下图所示。

image.png

container-native storage(容器本地存储)作为新一代的解决方案,具有重要的优点,并被解释如下:

通过将存储服务容器化并在一个单一的管理平台(如Kubernetes)下进行管理,管理员可以减少繁琐的杂物任务,从而能够专注于更具价值的任务。
此外,他们可以在同一套基础设施上运行应用程序和存储平台,从而减少基础设施开支。开发人员可以受益于提供具有高度弹性和开发者友好的应用程序存储。

简而言之,它的意思是未来我们将使用Kubernetes,在一个管理控制台上同时管理服务器(及其上运行的应用程序)和存储。

容器原生存储的概览

image.png

最容易理解的是基于Ceph的Rook和基于GlusterFS的Redhat OpenShift Container Storage,这两者都是在Kubernetes上部署的著名且经受实践考验的分布式存储软件。而相反,OpenEBS和StorageOS似乎没有基于的分布式存储软件。

本次的Kubernetes上的PostgreSQL方案中,

    • ブロックストレージとして使えること、実績があること

 

    OSSであること

所以,我们决定使用Rook/Ceph。

顺便说一句,Rook可以在分散存储部分使用Minio或Cockroach DB。关于这方面的内容已经在我们的资料中介绍了,如果您有兴趣,请查看一下。

存储供应商的支持情况

请问一下容器即服务(CaaS)存储的情况如何?每个存储供应商都在积极支持容器和k8s。

    • NetAPpのTrident

 

    EMCのRexlay

让我们简要地看一下今天的这两个产品。

三叉戟

由于@makotow在Kubernetes社区积极推荐,NetApp的产品“Storage Orchestrator”可能由于其知名度上升。如果阁下阅读@makotow的资料,也可以了解该产品的概要。

作为特点,显然是NetApp的高性能和丰富的存储能力通过Kubernetes的API进行处理。它还支持动态供给,应用开发人员可以在几乎不干扰存储管理员的情况下分配PV(永久卷)以满足其要求。

而且,您可以使用Kubernetes的清单文件注解来调用NetApp存储的特有功能,例如FlexClone。

在这个领域,确实商业软件是一种非常有力的选择,尤其对于已经拥有NetApp资产并熟悉使用的人来说。

REX光线

如果NetApp拥有Trident,那么EMC作为另一个强大的竞争对手,正在开发名为REX-Ray的开源软件。
REX-Ray最初是作为Docker的卷插件而开发的,但随着生态系统的重心转向Kubernetes,它也在朝着那个方向进行适配。

而REX-Ray则可以处理各种类型的存储设备,并使用统一的操作来管理它们,这比考虑使用容器中的现有厂商资产更为重要。虽然关于该工具的日文信息非常有限,但是这份资料中包含了一些概述。

EMC曾经有一个名为ViPR的产品。从定位上看,它似乎与这个很接近。

总结

今天我们介绍了两种类型的存储软件,即基于容器的存储和容器就绪的存储软件,用于Kubernetes上的存储。

在这个Kubernetes上的PostgreSQL项目中,我们使用了容器本地存储的Rook。但是如果有机会的话,我也想尝试一下NetApp或EMC的产品。最近,这两者都在GitHub上公开发布了,似乎可以在普通的服务器或虚拟机上使用,而不需要专门的硬件!

请多多关照。

广告
将在 10 秒后关闭
bannerAds