ACK的節點池及託管節點池中的節點預設不具備自動調整能力,您也可以通過使用Terraform工具建立開啟自動調整功能的節點池。本文介紹如何通過Terraform建立開啟自動調整功能的節點池。
前提條件
已安裝Terraform工具。具體操作,請參見在本地安裝和配置Terraform。
自動調整功能依賴Auto Scaling(Auto Scaling,舊稱ESS)服務。啟動節點自動調整前,您需要開通Auto Scaling服務,並完成預設角色授權。具體操作,請參見開通Auto Scaling服務。
說明如果您之前已經使用了alicloud_cs_kubernetes_autoscaler組件,預設已開通Auto Scaling服務。
在RAM控制台,為當前叢集添加Auto Scaling服務的授權策略。關於如何授權的詳細資料,請參見授權。
已為CloudOps Orchestration Service (OOS)服務授權。您可以通過建立AliyunOOSLifecycleHook4CSRole角色,為OOS服務授權。
單擊AliyunOOSLifecycleHook4CSRole。
說明如果當前帳號是阿里雲帳號,單擊AliyunOOSLifecycleHook4CSRole即可授權。
如果當前帳號是RAM使用者,請先確保對應的阿里雲帳號已授權AliyunOOSLifecycleHook4CSRole,並為RAM使用者授予AliyunRAMReadOnlyAccess系統策略。具體操作,請參見為RAM使用者授權。
在雲資源訪問授權頁面,單擊同意授權。
配置阿里雲帳號資訊。
執行如下命令,建立環境變數,用於存放身份認證資訊。
Linux 環境
export ALICLOUD_ACCESS_KEY="************" #替換為阿里雲帳號的AK資訊。 export ALICLOUD_SECRET_KEY="************" #替換為阿里雲帳號的SK資訊。 export ALICLOUD_REGION="cn-beijing" #替換為您叢集所在的地區。
Windows 環境
set ALICLOUD_ACCESS_KEY="************" #替換為阿里雲帳號的AK資訊。 set ALICLOUD_SECRET_KEY="************" #替換為阿里雲帳號的SK資訊。 set ALICLOUD_REGION="cn-beijing" #替換為您叢集所在的地區。
背景資訊
Terraform是一種開源工具,通過Provider來支援新的基礎架構,用於安全高效地預覽、配置和管理雲基礎架構和資源。更多資訊,請參見什麼是Terraform。
在Alibaba Cloud Provider的老版本中,ACK提供了一個名為alicloud_cs_kubernetes_autoscaler的組件。alicloud_cs_kubernetes_autoscaler組件可以實現節點的Auto Scaling,但是其能力受限:
配置複雜,使用成本高。
伸縮的節點都會被放置到預設節點池,自動調整的節點未單獨維護。
部分配置參數不可更改。
Alibaba Terraform Provider從1.111.0版本開始可通過組件alicloud_cs_kubernetes_node_pool建立開啟自動調整功能的節點池,優勢如下:
配置簡單,您只需要配置伸縮組內節點數的上下限。
針對非必須配置,ACK使用預設值的配置,以防誤操作帶來的基礎環境不一致的問題,例如:作業系統鏡像。
在ACK控制台中可以直觀地觀察節點池內節點的變化。
使用Terraform建立開啟自動調整功能的節點池
如果您的叢集之前已經使用alicloud_cs_kubernetes_autoscaler組件,在完成上述為當前叢集添加Auto Scaling服務授權後,您需要執行以下步驟平滑切換alicloud_cs_kubernetes_autoscaler至alicloud_cs_kubernetes_node_pool,以建立開啟自動調整功能的節點池。
如果您未在叢集中使用alicloud_cs_kubernetes_autoscaler組件,則跳過以下步驟1和步驟2,請直接進行步驟3的操作。
修改叢集的autoscaler-meta配置項。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在配置項頁面左上方的命名空間下拉框中,選擇kube-system,然後在autoscaler-meta配置項右側操作列下,單擊編輯。
在編輯面板中,修改autoscaler-meta配置項的值。
您需將
taints
值的String類型改成數群組類型,即在值文字框中,修改"taints":""
為"taints":[]
。單擊確定。
同步節點池。
在叢集管理頁左側導覽列,選擇 。
在節點池頁面右上方,單擊同步節點池。
如果您未在叢集中使用alicloud_cs_kubernetes_autoscaler組件,請直接進行以下操作。
使用Terraform建立開啟自動調整功能的節點池。
建立節點池的設定檔。
在已有叢集中建立開啟自動調整功能的節點池,配置樣本如下。
如果未建立叢集,建立節點池的配置樣本如下,需要先建立叢集,然後才能建立節點池。
執行
terraform apply
命令完成建立。
完成建立節點池後,在節點池列表中可以看到建立的節點池,該節點池名稱下會標註已開啟自動調整。