日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用Terraform創建具備自動伸縮功能的節點池

ACK的節點池及托管節點池中的節點默認不具備自動伸縮能力,您也可以通過使用Terraform工具創建開啟自動伸縮功能的節點池。本文介紹如何通過Terraform創建開啟自動伸縮功能的節點池。

前提條件

  • 已安裝Terraform工具。具體操作,請參見在本地安裝和配置Terraform

  • 自動伸縮功能依賴彈性伸縮(Auto Scaling,舊稱ESS)服務。啟動節點自動伸縮前,您需要開通彈性伸縮服務,并完成默認角色授權。具體操作,請參見開通彈性伸縮服務

    說明

    如果您之前已經使用了alicloud_cs_kubernetes_autoscaler組件,默認已開通彈性伸縮服務。

  • 在RAM控制臺,為當前集群添加彈性伸縮服務的授權策略。關于如何授權的詳細信息,請參見授權

  • 已為系統運維管理 OOS(CloudOps Orchestration Service)服務授權。您可以通過創建AliyunOOSLifecycleHook4CSRole角色,為OOS服務授權。

    1. 單擊AliyunOOSLifecycleHook4CSRole

      說明
      • 如果當前賬號是阿里云賬號,單擊AliyunOOSLifecycleHook4CSRole即可授權。

      • 如果當前賬號是RAM用戶,請先確保對應的阿里云賬號已授權AliyunOOSLifecycleHook4CSRole,并為RAM用戶授予AliyunRAMReadOnlyAccess系統策略。具體操作,請參見為RAM用戶授權

    2. 云資源訪問授權頁面,單擊同意授權

  • 配置阿里云賬號信息。

    執行如下命令,創建環境變量,用于存放身份認證信息。

    • 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的RAM用戶,并為該RAM用戶創建AccessKey和授權。具體操作,請參見創建RAM用戶為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的操作。

  1. 修改集群的autoscaler-meta配置項。

    1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

    2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇配置管理 > 配置項

    3. 配置項頁面左上角的命名空間下拉框中,選擇kube-system,然后在autoscaler-meta配置項右側操作列下,單擊編輯

    4. 編輯面板中,修改autoscaler-meta配置項的值。

      您需將taints值的String類型改成數組類型,即在文本框中,修改"taints":"""taints":[]

    5. 單擊確定

  2. 同步節點池。

    1. 在集群管理頁左側導航欄,選擇節點管理 > 節點池

    2. 節點池頁面右上方,單擊同步節點池

如果您未在集群中使用alicloud_cs_kubernetes_autoscaler組件,請直接進行以下操作。

  1. 使用Terraform創建開啟自動伸縮功能的節點池。

    1. 創建節點池的配置文件。

      • 在已有集群中創建開啟自動伸縮功能的節點池,配置示例如下。

        展開查看配置示例

        provider "alicloud" {
        }
        # 為已有集群創建開啟自動伸縮功能的節點池。
        resource "alicloud_cs_kubernetes_node_pool" "at1" {
          # 目標集群ID。
          cluster_id           = ""
          name                 = "np-test"
          # 節點池內節點使用的vswitch,至少提供一個。
          vswitch_ids          = ["vsw-bp1mdigyhmilu2h4v****"]
          instance_types       = ["ecs.e3.medium"]
          password             = "Hello1234"
         
          scaling_config {
            # 最小節點數。
            min_size     = 1
            # 最大節點數。
            max_size     = 5
          }
        
        }
      • 如果未創建集群,創建節點池的配置示例如下,需要先創建集群,然后才能創建節點池。

        展開查看配置示例

        provider "alicloud" {
        }
        
        variable "name" {
          default    = "tf-test"
        }
        
        data "alicloud_zones" default {
          available_resource_creation  = "VSwitch"
        }
        data "alicloud_instance_types" "default" {
          availability_zone            = data.alicloud_zones.default.zones.0.id
          cpu_core_count               = 2
          memory_size                  = 4
          kubernetes_node_role         = "Worker"
        }
        
        resource "alicloud_vpc" "default" {
          name                         = var.name
          cidr_block                   = "10.1.0.0/21"
        }
        resource "alicloud_vswitch" "default" {
          name                         = var.name
          vpc_id                       = alicloud_vpc.default.id
          cidr_block                   = "10.1.1.0/24"
          availability_zone            = data.alicloud_zones.default.zones.0.id
        }
        resource "alicloud_key_pair" "default" {
          key_name                     = var.name
        }
        
        # 創建托管版集群。
        resource "alicloud_cs_managed_kubernetes" "default" {
          name                         = var.name
          count                        = 1
          cluster_spec                 = "ack.pro.small"
          is_enterprise_security_group = true
          worker_number                = 2
          password                     = "Hello1234"
          pod_cidr                     = "172.20.0.0/16"
          service_cidr                 = "172.21.0.0/20"
          worker_vswitch_ids           = [alicloud_vswitch.default.id]
          worker_instance_types        = [data.alicloud_instance_types.default.instance_types.0.id]
        }
        
        # 為集群創建一個開啟自動伸縮功能的節點池。
        resource "alicloud_cs_kubernetes_node_pool" "at1" {
          cluster_id                   = alicloud_cs_managed_kubernetes.default.0.id
          name                         = var.name
          vswitch_ids                  = [alicloud_vswitch.default.id]
          instance_types               = [data.alicloud_instance_types.default.instance_types.0.id]
          key_name                     = alicloud_key_pair.default.key_name
         
          scaling_config {
            min_size     = 1
            max_size     = 5
          }
        
        }

    2. 執行terraform apply命令完成創建。

    完成創建節點池后,在節點池列表中可以看到新建的節點池,該節點池名稱下會標注已開啟自動伸縮nodepool