在 VPC 基础结构上创建 IBM Cloud Kubernetes Service 集群
使用其中一个 IBM® 提供的模板在 Virtual Private Cloud (VPC) 中创建 IBM Cloud® Kubernetes Service 集群。 然后,将集群绑定到 IBM Cloud® Object Storage 服务实例。
描述
在本教程中,您将使用 IBM® 提供的 vpc-gen2-cluster
Terraform 模板 来创建虚拟私有云 (VPC),并在 Virtual Servers
for VPC上供应 IBM Cloud Kubernetes Service 集群。 然后,将 IBM Cloud Object Storage 服务实例的服务凭证作为 Kubernetes 私钥添加到集群中。 您可以更改此模板中的缺省值,以跨多个子网和区域分布集群。 但是,本教程中的步骤使用模板中提供的缺省值。
下图显示了在本教程中供应的云体系结构组件。

组件 | 描述 |
---|---|
Region |
区域通过跨区域的多个专区复制来提高集群的主节点及其节点的可用性。 |
VPC |
VPC 为您提供私有云环境的安全性和公共云的动态可扩展性。 |
zones |
群集中的每个区域必须有一个 VPC 子网。 可用区域取决于您在 VPC 中创建的都会位置。 |
subnet |
VPC 子网用于为集群中的工作程序节点和负载均衡器服务提供专用 IP 地址。 不能更改 VPC 子网的 IP 地址数。 |
master node |
控制和管理一组工作程序节点 (工作负载运行时),并类似于 Kubernetes中的集群。 |
cluster |
集群包含一个控制平面和一个或多个计算机器或节点。 节点运行应用程序和工作负载。 |
worker node |
将专区添加到工作程序池。 将专区添加到工作程序池时,工作程序池中定义的工作程序节点将在专区中供应,并考虑用于未来的工作负载安排。 |
您可以使用 ibm_container_vpc_worker_pool
提供者资源将工作程序节点和池添加到 VPC 集群。
这些成本是根据您的资源使用情况产生的。 有关 VPC 定价的更多信息,请参阅 VPC 定价。
目标
在本教程中,您可以执行以下操作。
- 了解如何使用 IBM提供的 Terraform 模板来创建虚拟私有云 (VPC) 并供应在 Virtual Servers for VPC上运行的 IBM Cloud Kubernetes Service 集群。
- 创建 IBM Cloud Object Storage 服务实例,并将该服务绑定到 IBM Cloud Kubernetes Service 集群。
- 探索如何创建 IBM Cloud Schematics 工作空间。
- 在 IBM Cloud中创建 Terraform 执行计划并应用 Terraform 模板。
- 查看您创建的 IBM Cloud® 资源。
所需时间
1 小时
受众
本教程面向希望了解如何使用 Terraform 模板通过 IBM Cloud Schematics来创建和管理云基础架构服务的开发者和系统管理员。
先决条件
在开始之前,请完成以下先决条件。
- 创建 IBM Cloud 现收现付或预订 IBM Cloud 帐户。
- 安装 IBM Cloud CLI 和 Schematics CLI 插件。
- 确保为
IBMCLOUD_API_KEY
设置环境变量。 - 确保在 Cloud Identity and Access Management 中为您分配了 Schematics 的 管理者 服务访问角色,以创建和使用 Schematics 工作空间。
- 确保为您分配了创建 VPC 基础结构资源所需的 许可权。
- 执行 步骤 以获取创建 IBM Cloud Kubernetes Service 集群以及为集群设置准备帐户所需的许可权。
- 确保您具有创建 IBM® Key Protect 和 IBM Cloud Object Storage 实例所需的许可权。
创建 Schematics 工作空间
使用 IBM提供的 Terraform 模板来创建和配置 Schematics 工作空间。
- 查看 IBM提供的模板,以在 VPC 基础结构上创建 IBM Cloud Kubernetes Service 集群。
- main.tf: 此文件包含在 Schematics中运行的 Terraform 代码。 Terraform 代码包含数据源和资源,用于在两个不同专区中使用子网创建 VPC,创建 IBM Cloud Kubernetes Service 集群,以及配置集群以绑定 IBM Cloud Object Storage 服务实例。
- output.tf: 此文件包含在 Schematics 应用 Terraform 模板后要返回的内容。 在这种情况下,您将在存储集群配置和证书的本地机器上获取文件路径。 稍后可使用这些文件来访问集群。
- variables.tf: 此文件包含运行 Terraform 模板所需的所有变量。 您可以使用提供的缺省值,或者在创建 Schematics 工作空间时覆盖这些值。
- versions.tf: 此文件包含此模板所需的 Terraform 版本。
- 创建用于存储 Schematics 工作空间配置的 JSON 文件。
创建 IBM Cloud Schematics 工作空间
-
通过复制以下工作空间 JSON 文件并将其另存为本地计算机上的
cluster_payload.json
,指定 Schematics 工作空间设置。 有关有效内容参数的更多信息,请参阅 Schematics 工作空间新建 命令。示例 cluster_payload.json:
{ "name": "mytest1_cluster", "type": [ "terraform_v1.4" ], "description": "", "template_repo": { "url":"https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-cluster/vpc-gen2-cluster" }, "template_data": [ { "folder": ".", "type": "terraform_v1.4", "variablestore": [ { "name": "worker_pool_name", "value": "workerpool", "type": "string" }, { "name": "service_instance_name", "value": "myservice", "type": "string" }, { "name": "flavor", "value": "cx2.2x4", "type": "string" }, { "name": "cluster_name", "value": "cluster", "type": "string" }, { "name": "region", "value": "us-south", "type": "string" }, { "name": "worker_count", "value": "1", "type": "string" }, { "name": "resource_group", "value": "Default", "type": "string" } ] } ], "githubtoken": "<provide your githubtoken>" }
您可以编辑该变量的有效内容值,如表中所述:
有效内容详细信息 变量 值 name
指定您的唯一名称。 type
Terraform v1.0 githubtoken
指定 GitHub 令牌。 variablestore
指定资源组及其详细信息。 输入您在 Terraform 配置文件中声明的输入变量,例如名称,类型和值。 有关变量存储的更多信息,请参阅 变量存储参数。 -
使用命令行界面中的 JSON 文件创建工作空间。
ibmcloud schematics workspace new --file <fully qualified path of cluster_payload.JSON file>
有关创建工作空间的更多信息,请参阅 命令行命令和语法。
样本示例输出
Creation Time Mon Feb 15 19:18:55 Description Frozen false ID mytest1_cluster-62183a6b-fbed-43 Name mytest1_cluster Status DRAFT Template Variables for: examples-d3d10ae5-76ef-47 Name Value worker_pool_name workerpool service_instance_name myservice flavor cx2.2x4 cluster_name cluster region us-south worker_count 1 resource_group Default OK
您还可以在 IBM Cloud 仪表板中查看新工作空间
mytest1_cluster
。 -
使用
list
命令验证是否已创建工作空间。ibmcloud schematics workspace list
样本示例输出
Name ID Description Status Frozen mytest1_cluster mytest1_cluster-62183a6b-fbed-43 ACTIVE False OK
规划和应用 Terraform 模板
创建 Schematics 执行计划。 执行计划显示了为实现 Terraform 模板中描述的状态而必须添加、修改或删除的云资源。
工作空间必须处于 Active
状态才能执行 Schematics 计划操作。 有关工作空间状态的更多信息,请参阅 工作空间状态。
在创建 Terraform 执行计划期间,不允许您对工作空间进行任何更改。
-
执行 Schematics 计划命令。 此命令提示输入
kube_version
,运行ibmcloud ks versions
命令以列出要供应的受支持 Kubernetes 版本。 计划命令将返回活动标识。ibmcloud schematics plan --id mytest1_cluster-62183a6b-fbed-43
样本示例输出
Activity ID 3886e3752a0a83b04732b6666533b464 OK
活动标识用于检索执行计划的日志。
-
查看执行计划,查看云资源。 要检索具有活动标识的日志,请使用步骤 1 中生成的活动标识。
ibmcloud schematics logs --id mytest1_cluster-62183a6b-fbed-4
您可以从工作目录或 IBM Cloud 仪表板查看输出以查看工作空间状态。
-
在 IBM Cloud中应用 Terraform 模板。 当您应用Terraform模板时,模板中指定的所有云资源都会在您的 IBM Cloud 账户中创建。
此过程需要一分钟才能完成。 在此过程中,您不能对工作区进行任何更改。
ibmcloud schematics apply --id <workspace_ID>
样本示例输出
Do you really want to perform this action? [y/N]> y Activity ID 5676e3752a0a84565667666533b4345 OK
-
查看工作区日志。 请参阅步骤 2 以查看具有工作空间标识或活动标识的日志。
-
请确认您的 IBM Cloud 中已成功创建云资源。
ibmcloud schematics workspace get --id <WORKSPACE_ID>
或者,通过 IBM Cloud 仪表板,可以查看工作空间的状态。 从 IBM Cloud中,选择 导航菜单-> Schematics-> 工作空间-> 资源 以观察工作空间中资源的应用状态。
-
用于查看日志以及分析工作空间和资源创建状态的命令。
ibmcloud schematics logs --id mytest1_cluster-62183a6b-fbed-43
您可以从工作目录或 IBM Cloud 仪表板工作空间作业状态查看输出。
后续步骤?
太棒了! 您已使用 IBM Cloud Schematics成功供应 VPC 集群。 现在,您可以了解如何配置集群参数以连接密钥管理服务和负载均衡器。 有关密钥管理服务和 IBM Cloud Kubernetes 工作程序池的更多信息,请参阅 密钥管理服务 和 IBM Cloud Kubernetes 工作程序池。