Kubernetes存储兴趣小组主席有关K8s状态的问答

栏目: IT技术 · 发布时间: 6年前

Kubernetes存储兴趣小组主席有关K8s状态的问答

这篇文章是一个为期三个月的系列文章的一部分,该系列研究了2020年Kubernetes面临的挑战。本周,我们将研究在Kubernetes上运行有状态(stateful)工作负载的挑战。

Kubernetes存储兴趣小组主席有关K8s状态的问答

在Kubernetes中运行有状态(stateful)的工作负载到底有多困难?正如我们和Kubernetes的开发人员在讨论经验时所发现的,最大的挑战并不一定是缺乏技术解决方案,而是每个相关人员的学习曲线,从应用开发人员到集群管理员以及传统存储管理员。当然,还有一些 工具 上的空缺,以及生态系统尚不成熟、尚未经过实战检验的地方。

我们与Google的软件工程师、云原生计算基金会(Cloud Native Computing Foundation)Kubernetes存储特别兴趣小组(Kubernetes Storage Special Interest Group )的主席Saad Ali讨论了Kubernetes如何简化有状态工作负载,现存的挑战以及未来的展望。

您能介绍一下Kubernetes状态管理的一些背景吗?

Ali:在较低层的存储有很多创新,同时处在高层的应用也有很多创新,但中间层的创新却并不多。要知道,在工作负载移动的同时能够动态提供存储这个问题,并没有得到真正的解决。

在Kubernetes出现之前,如果你的工作负载部署在虚拟机上,那么你必须创建一些卷,并将它们划分到存储阵列或云产品中,同时确保它们被附加到用于工作负载的正确的VM上,还确保其被正确格式化。你必须手动或使用DevOps团队预先编写的一些自定义脚本来完成这些工作。然而,如果需要将工作负载转移到另一个VM,这肯定就是一个手动的过程。

Kubernetes简化了这一过程,引入了动态卷供应的概念,这样,你不需要提前提供卷,而是先将Kubernetes凭证交给你的存储系统,再让它自动负责供应。现在容器存储接口(Container Storage Interface – CSI)允许Kubernetes与任意存储系统直接交互。

在Kubernetes中,与处理状态相关的一些关键挑战是什么?

Ali:我认为对大多数人来说,理解整个生态系统就是一个挑战。有很多做移动任务的部分也是。你必须了解我们的集群将提供什么样的存储,用户会满足这样的安排吗?如何将该存储与我的Kubernetes集群集成?我需要使用CSI驱动吗?或者还有其他选择吗?为了让最终用户满意,到底如何设置存储类?

应用开发人员作为我们的最终用户,我们将重点放在他们身上,让他们的工作变得更加轻松。但是,如果你是集群管理员,我认为在设置和运行所有内容方面仍然存在一些挑战。有50多种CSI驱动,但他们并不都是很成熟。存储供应商仍在进行测试,并试图确定CSI驱动是否能够在集群扩展时处理它。虽然,一切都朝着正确的方向在发展,但这肯定需要大量的学习成本。

我确实认为大多数的基本类型已经在那了,这可以让你成功地在Kubernetes上运行绝大多数有状态工作负载。但,学习如何使用方面肯定有问题。我也认为有大量的复杂性的存在也是一种挑战。比如,如何将虚拟机上运行的传统应用程序移植到Kubernetes?这就一项需要巨大投入,且让人望而生畏的事情。

总的来说,Kubernetes生态系统肯定是有改进空间的。软件定义存储使用低级磁盘,以及Kubernetes中对本地存储的支持都是可以简化的领域。但是,一般来说,只要这些基本类型被容器化,它们就可以处理Kubernetes中绝大多数有状态的工作负载。

您觉得,在Kubernetes中处理有状态工作负载的最常见方式是什么?

Ali:首先,存储有很多方面,我们通常远离应用层存储,而是关注块和文件。应用程序可以依赖于某种托管的数据服务,这意味着你已经将这部分工作交给了其他人,所以这就不再是你的难题了,例如你已经有了一个SDK。但是,如果希望运行自己的数据库或某种有状态的服务,它们需要写入文件和块存储。我们可以看到三种基本模式。它们是单写入块存储、多写入文件存储和某种非常快速的本地存储。如果你选择自己管理数据库并将其部署到Kubernetes上,那么你可以使用我们为Kubernetes中的块和文件存储接口所提供的基本类型。

Kubernetes存储特别兴趣小组(SIG)现在在做什么项目?

Ali:我们的下一个要做的事情是使企业和生产继续按部就班,并着眼于第二天、第三天的问题。我们正在研究数据保护以及如何进行卷的快照和备份。我们已经启动了一个新的工作组,专注于数据保护,这是Kubernetes存储兴趣小组和应用兴趣小组之间的协作,因为当你开始讨论备份工作负载时,会有很多交集。这不是只针对存储,也不是仅仅针对应用的事情。

Kubernetes中的有状态工作负载未来会是什么样子?

Ali:我们的一部分大项目将在Kubernetes 1.18的发行版中发布,我对此感到非常兴奋。同时,我们已经为增加对Windows的支持工作了一段时间,Windows CSI将在下一个版本中发布。原始块卷(Raw Block Volumes)是另一个项目,经过几年的准备,它终用可以问世了。运行在Kubernetes上的绝大多数工作负载都将存储用作文件系统,最终作为容器内的某种挂载目录。但是有些人还是喜欢访问原始磁盘,而原始块卷使这成为可能。

我们也在为CSI的容量健康检查寻找更好接口。在这一点上,一旦Kubernetes为一个工作负载提供了一个可用的卷,它就变得非常独立,你不会有太多的信息。我们正在建立一种机制,允许存储系统不断地向Kubernetes显示有关容量的健康信息。最初,它只是用来提醒用户,但最终,我们希望Kubernetes能够以编程方式响应存储系统正在显示的事件,或者最终用户可以编写自己的工具来响应信息。

为了清晰起见,答案经过了编辑和压缩。

图片由Unsplash的Jen Theodore提供。

原文链接: https://thenewstack.io/qa-kube ... -k8s/


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Programming Python

Programming Python

Mark Lutz / O'Reilly Media / 2006-8-30 / USD 59.99

Already the industry standard for Python users, "Programming Python" from O'Reilly just got even better. This third edition has been updated to reflect current best practices and the abundance of chan......一起来看看 《Programming Python》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具