【翻译】Terraform和Kubernetes的交集

韶和璧
2023-12-01

原文发表于Morpheus的博客,作者Martez Reed。

无论在哪个行业或市场,全球的企业都处于云计算旅程的某个阶段--以数字化转型为目标。使用云计算(包括私有云和公共云)是加快应用开发和实现业务目标战略的核心部分。

在这一切中,IT组织和专业人员正受到来自工具方面的冲击,并为如何做出正确的选择而挣扎,然后成功地管理这一切。想一想那个经典的画面:一个人试图让太多的盘子同时转起来。这就是你所看到的。

这里就是Terraform和Kubernetes发挥作用的地方。

让我们先看看这些工具的能力,然后再研究两者的重叠之处,以及它们如何能够最好地衔接。

快速了解Terraform

Terraform是一个开源的基础设施即代码的软件工具,它提供了一个一致的命令行界面(CLI)工作流程,管理着数百个云服务。Terraform用于配置和管理云资源,无论是公共云(如AWS、Azure或谷歌云平台)还是内部云(如VMware vSphere、Nutanix或OpenStack)。它帮助开发者和IT运营团队管理他们的资源,无论是虚拟机、数据库即服务还是无服务器应用程序。

通过利用声明性语言和第三方技术供应商的广泛生态系统,Terraform可以从代码的角度利用软件开发过程的所有好处。适应GitOps等实践,利用基础设施即代码和软件开发的最佳实践来实现IT基础设施的自动化,有利于云资源管理--而不是管理员需要手动访问用户界面或触发CLI命令。

再来看看Kubernetes的情况

Kubernetes是一个可移植、可扩展的开源平台,用于管理容器化工作负载和服务,可以促进声明式配置和自动化。Kubernetes主要被认为是一个容器协调平台,旨在帮助应用开发团队加速开发,以及提高应用的弹性。

Kubernetes通常利用所谓的清单来配置资源或将应用程序部署到Kubernetes集群中。这些都是使用YAML(另一种标记语言的缩写)文件定义的。这使得开发人员和运营团队能够将容器化的应用程序部署到一个强大的平台上,以促进容器化应用程序的调度和弹性。

在Terraform和Kubernetes的交叉点上

Terraform和Kubernetes都使用配置文件或代码进行编排。这两个工具在范围上有一些重叠,一个不能替代另一个。但它们可以一起工作,提供一个全栈的部署解决方案。我将看一下几种不同的范式。

一种范式。使用Terraform配置Kubernetes集群来运行容器化工作负载

Terraform可以用来配置Kubernetes集群,无论是在内部,还是在公共云中,或者是公共云供应商提供的Kubernetes管理产品。这个方案利用了使用Terraform来管理云资源的好处和价值。这只是Terraform非常好的一个延伸。

从应用的角度来看,这就是交接的地方。集群已经准备好了。现在是时候从交互和管理的角度开始使用Kubernetes结构了。这就是YAML清单发挥作用的地方--将应用程序部署到由Terraform配置的Kubernetes集群上。

第二种范式。使用Terraform Kubernetes提供商进行管理和应用部署

当你使用Terraform与Kubernetes集群进行交互,将应用程序部署到该集群时,界限就会开始变得模糊,复杂性也会随之而来。当你这样做时,你正在使用Terraform来管理你的云资源,配置Kubernetes集群,并部署Kubernetes应用程序。通常情况下,Terraform Kubernetes供应商被用于一些更基本的应用部署场景,因为它是一个专门为另一套功能而设计的工具,而不是一个纯粹的Kubernetes工具。

第三种范式。使用Terraform Kubernetes操作员从Kubernetes配置和管理云资源

Terraform Kubernetes操作员使开发者和IT运营团队能够使用Kubernetes清单用Terraform部署云基础设施,这使得界限更加模糊。与Terraform Kubernetes供应商模式类似,这种方法旨在通过使用Kubernetes清单作为主要界面来巩固互动点。这种模式对于那些已经开始将Kubernetes API作为其IT环境的核心API的团队或组织来说是有意义的。

简化管理推动工具选择

大多数组织总是在寻找简化管理的方法--而不需要挖掘和学习50种不同的工具。想想看,选择一个可调节的扳手来充分和有效地处理各种不同的任务--而不是从一大堆扳手中选择,每个扳手都是专门为特定规模的任务而设计的。

在使用Terraform与Kubernetes集群对接和互动时,简化工具箱就是这样的比喻。不幸的是,在实践中,企业往往必须利用各种工具和操作模式的组合来实现他们的预期结果。 当你把支持工作负载的目标端点叠加在一起时,这种对话会变得更加复杂;通常是私有云和公共云的混合。

让复杂的事情变得不那么复杂

数字化转型是一个热门词汇,在这一点上最好避免;但它意味着使用软件开发实践和程序来帮助企业以新的方式竞争和增加收入。 实现这一结果可能是一个复杂的话题,会引发IT组织的一些复杂讨论和选择。

Morpheus的亮点在于能够与各种工具、模型和应用部署范式进行互动和对接,包括对Terraform和Kubernetes的最佳使用。

CTA

要了解Morpheus如何使复杂的事情变得更简单、更容易,请今天就获得一个演示

 类似资料: