ca12add7c0d9edcbf1a2b39900f81189.png
容器化的日益普及引发了对高效管理、调度和控制Kubernetes(K8s)集群的需求。市场提供了各种与 K8s 环境交互的工具,但没有多少提供能比 HelmTerraform 更多的功能。

本文是HelmTerraform的主要功能。我们分析了这两种配置工具的优点,解释了它们在管理 K8s 设置方面的能力,并帮助您确定适合您的开发团队的选项。

Terraform:主要功能

Terraform 是一种开源基础架构即代码 (IaC)工具,允许团队管理和自动化基础架构、平台和服务。该工具通过代码帮助构建、更改和版本化基础架构,使工程师能够快速轻松地:

  • 启动虚拟机和容器。

  • 设置服务器。

  • 创建安全方案和控制。

  • 添加或删除用户并设置权限。

  • 管理云资源。

  • 安装和管理Docker 容器。


2017 年,Terraform 的创建者 Hashicorp 宣布发布其 Kubernetes 提供商。因此,该工具能够根据需要跨多个云提供商管理 K8s 集群。
在配置基础设施或管理 Kubernetes 时,Terraform 依赖于声明性语言。工程师不需要定义设置基础设施的每一步。相反,开发人员提供所需的设置最终状态,并且该工具计划如何配置环境。例如,您可以为 VM、K8s 集群、VPC 和特定防火墙编写一组参数,而无需提供配置说明。

声明性配置文件很有帮助,因为团队可以:

  • 无需编辑说明即可轻松调整文件以适应基础架构更改。

  • 保持文件干净和简短。

  • 快速编辑设置。

  • 只需查看配置文件即可了解当前配置。


一旦工程师请求配置,命令terraform plan会指示工具比较现有设置并计划如何设置所需的基础设施。然后该terraform apply命令通过云提供商的 API启动资源。Terraform 是DevOps 团队的热门选择,因为工程师可以使用该工具快速启动和编辑CI/CD 管道中的环境。
c93d7c5810564d95bc952b3b9a9d8113.png

Terraform 的主要特点

  • 一个 Kubernetes 提供商,可以使用单个工具管理基础架构和部署。

  • 使用声明性语言。

  • 一种 IaC 方法,允许工程师像任何其他代码一样描述、处理和版本基础设施。

  • 可以使用云提供商的 API 进行设置,以实现顺畅、有效和安全的配置。

  • Terraform 适用于任何基于云的设置,无论是公共的、内部私有的、混合的还是多云的。

  • 具有替换服务器而不是更改服务器的不可变基础架构(这种方法可以简化操作并减少错误、威胁和配置漂移)。

  • 可以changesets自动应用于基础架构以节省资源并避免错误。

  • 先进的漂移检测功能始终显示当前状态和所需状态之间的差异。

  • 可插拔设计,因此团队可以自定义设置和添加功能。

  • 该工具了解资源之间的关系,这有助于调度并将错误保持在最低限度。您还可以构建所有资源的图表。

Helm:主要功能

Helm是一个 Kubernetes 包管理器,非常适合将可重复的应用程序和服务部署到集群。该工具允许用户通过Helm Charts管理应用程序,简化了 K8s 环境的定义、安装和升级。

Helm Charts是转换成 Kubernetes 清单文件的文件和模板包。图表是可重用的,并且可以包含基于 YAML 的模板:

  • 不同的部署。

  • 配置图。

  • 服务。

此外,您可以将图表定义为依赖关系或嵌套图表以获得更大的灵活性。管理图表通过单个命令行界面 (CLI) 进行,该功能可简化操作。虽然大多数图表对公众开放,但公司经常编写自定义图表供内部使用。

Helm 有很多好处,包括:

  • 在不同环境中部署和管理 K8s 清单。

  • 将复杂的应用程序打包在一起。

  • 一起回滚或升级多个对象。

  • 快速更改设置参数。

  • 使用单个命令部署到多个环境。

Helm 及其模板引擎非常适合依赖 K8s 资源的CI/CD 流程。工程师无需为每个微服务编辑文件,而是可以定义标准蓝图并使用占位符代替动态值。然后,团队可以使用一个命令创建图表并在不同集群上重新部署相同的应用程序。

f7e26b669203357d899eb5163fa4212d.png

Helm 的主要特点

  • 使用 Helm Charts、可重复使用的模板来快速配置和管理 Kubernetes 资源。

  • 简单的集群管理,可以轻松处理应用程序依赖项和部署实例。

  • 使您能够跟踪后续版本。

  • 一起回滚或升级多个对象的能力。

  • 图表的简单升级和卸载过程。

  • 允许用户管理私有云、公共云和混合云上的容器。


推荐下2021最新版本的DevOps工程师学习路径,涵盖核心DevOps工具链实践。详情可以查看 2021 DevOps工程师学习路径, 扫码进入课程。

0b6595e0254839c815cf09959648e415.png

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐