ACK的节点池及托管节点池中的节点默认不具备自动伸缩能力,您也可以通过使用Terraform工具创建开启自动伸缩功能的节点池。本文介绍如何通过Terraform创建开启自动伸缩功能的节点池。
前提条件
- 您已安装Terraform工具。具体操作,请参见在本地安装和配置Terraform。
- 自动伸缩功能依赖弹性伸缩(Auto Scaling,旧称ESS)服务。启动节点自动伸缩前,您需要开通弹性伸缩服务,并完成默认角色授权。具体操作,请参见开通弹性伸缩服务。
说明 如果您之前已经使用了alicloud_cs_kubernetes_autoscaler组件,默认已开通弹性伸缩服务。
- 在RAM控制台,为当前集群添加弹性伸缩服务授权策略。关于如何授权的详细信息,请参见授权。
背景信息
Terraform是一种开源工具,通过Provider来支持新的基础架构,用于安全高效地预览,配置和管理云基础架构和资源。更多信息,请参见什么是Terraform。
在Alibaba Cloud Provider的老版本中,ACK提供了一个名为alicloud_cs_kubernetes_autoscaler的组件。alicloud_cs_kubernetes_autoscaler组件可以实现节点的弹性伸缩,但是其能力受限:
- 配置复杂,使用成本高。
- 伸缩的节点都会被放置到默认节点池,自动伸缩的节点未单独维护。
- 部分配置参数不可更改。
Alibaba Terraform Provider从1.111.0版本开始可通过组件alicloud_cs_kubernetes_node_pool创建开启自动伸缩功能的节点池,优势如下:
- 配置简单,您只需要配置伸缩组内节点数的上下限。
- 针对非必须配置,ACK使用默认值的配置,以防误操作带来的基础环境不一致的问题,例如:操作系统镜像。
- 在ACK控制台中可以直观地观察节点池内节点的变化。
使用Terraform创建开启自动伸缩功能的节点池
如果您的集群之前已经使用alicloud_cs_kubernetes_autoscaler组件,在完成上述为当前集群添加弹性伸缩服务授权后,您需要执行以下步骤平滑切换alicloud_cs_kubernetes_autoscaler至alicloud_cs_kubernetes_node_pool,以创建开启自动伸缩功能的节点池。
说明 如果您未在集群中使用alicloud_cs_kubernetes_autoscaler组件,则跳过以下步骤1和步骤2,请直接进行步骤3的操作。
如果您未在集群中使用alicloud_cs_kubernetes_autoscaler组件,请直接进行以下操作。