Terraform 概览

HashiCorp Terraform 是一种基础设施即代码 (IaC) 工具,可让您预配和管理云基础设施。Terraform 提供了称为提供程序的插件,可让您与云服务提供商和其他 API 进行交互。对于 Google Distributed Cloud (GDC) 空气隔离环境,您必须使用 Kubernetes 提供程序来预配资源,因为没有适用于 Terraform 的特定 GDC 空气隔离环境提供程序。

GDC 资源可由 Kubernetes 提供程序管理,并实现 Kubernetes 资源的完整生命周期管理。

操作 Terraform 提供程序
创建

Kubernetes 提供商
读取
更新
删除 不适用,请使用 terraform destroy

Terraform 的工作原理

Terraform 具有面向配置的声明性语法,您可以使用它来描述要在 GDC 项目中预配的基础架构。在一个或多个 Terraform 配置文件中编写此配置后,您可以使用 Terraform CLI 将此配置应用于您的 GDC 资源。

以下步骤介绍了 Terraform 的工作原理:

  1. Terraform 配置文件中描述您要预配的基础设施。您无需编写代码来描述如何预配基础设施。Terraform 会为您预配基础设施。

  2. 运行 terraform plan 命令,以评估配置并生成执行计划。您可以查看计划并根据需要进行更改。

  3. 运行 terraform apply 命令以执行以下操作:

    1. 在后台调用相应的 GDC 空气隔离 API,以根据您的执行计划预配基础设施。

    2. 创建一个 Terraform 状态文件,该状态文件是一个 JSON 文件,用于将配置文件中的资源映射到实际基础设施中的资源。Terraform 使用此文件来记录基础设施的最新状态,并确定何时创建、更新和销毁资源。

    3. 当您运行 terraform apply 时,Terraform 会使用状态文件中的映射将现有基础设施与代码进行比较,并根据需要进行更新:

      • 如果配置文件中定义了资源对象,但状态文件中不存在,则 Terraform 会创建该资源对象。

      • 如果状态文件中存在资源对象,但其配置与配置文件不同,则 Terraform 会更新该资源以与配置文件匹配。

      • 如果状态文件中的资源对象与配置文件匹配,则 Terraform 会使该资源保持不变。

适用于 GDC 网闸隔离配置的 Terraform 资源

资源是 Terraform 语言中的基本元素。每个资源块描述一个或多个基础设施对象。

GDC air-gapped 基于 Kubernetes 构建。除了 NodePersistentVolumeService 等核心 Kubernetes API 之外,它还支持 CustomResourceDefinition API。通过使用自定义资源定义,可以构建特定于 GDC 的 API 来表示 GDC 气隙基础设施。

下表列出了适用于 GDC 气隙环境的 Terraform 资源:

Terraform 资源 数据源
kubernetes_manifest

后续步骤