全部產品
Search
文件中心

:建立ECI伸縮組

更新時間:Oct 25, 2024

伸縮組是具有相同應用情境、相同執行個體類型(即ECS或ECI執行個體)的一組執行個體集合。使用ECI執行個體來運行容器應用時,可以配合使用Auto Scaling服務,實現根據業務量自動增加或者減少ECI執行個體,在保證業務正常啟動並執行同時節約使用成本。

操作步驟

在操作之前,您需要先明確您建立伸縮組的方式,阿里雲提供多種建立伸縮組的方式。您可以根據您的實際情況,參考以下指引快速建立伸縮組。

方式一:基於現有ECI執行個體的配置建立伸縮組

您期望使用現有執行個體的配置建立ECI伸縮組,可以參考以下步驟完成伸縮組的建立。

  1. 進入建立伸縮組頁面。

    1. 登入Auto Scaling控制台

      說明

      如果您是第一次使用Auto Scaling,請根據介面提示開通Auto Scaling的許可權。具體操作,請參見服務關聯角色

    2. 在頂部功能表列處,選擇地區。
    3. 在左側導覽列中,單擊伸縮組管理
    4. 伸縮組管理頁面,單擊建立伸縮組按鈕進入建立伸縮組頁面。

  2. 單擊頂部通過表單建立頁簽,根據介面提示完成伸縮組的配置。

    您可以參考以下必選配置項說明,快速使用現有ECI執行個體的配置建立ECI伸縮組,更多配置項說明,請參見配置項說明

    必選配置項說明

    配置項

    說明

    伸縮組名稱

    根據介面提示完成伸縮組名稱的配置。

    伸縮群組類型

    選擇建立的伸縮組內的執行個體類型,選擇ECI

    組內執行個體配置資訊來源

    選擇選擇已有執行個體。伸縮組會以該執行個體的配置進行新執行個體的建立。

    組內最小執行個體數

    伸縮組執行個體內執行個體數量的下限,當執行個體數量低於這個邊界時,伸縮組會嘗試自動添加執行個體。

    組內最大執行個體數

    伸縮組執行個體內執行個體數量的上限,當執行個體數量低於這個邊界時,伸縮組會自動移出執行個體。

    預設冷卻時間

    單位為秒,伸縮組發生伸縮活動後的預設冷卻時間。您可以使用預設設定300秒,更多說明,請參見冷卻時間

    專用網路

    您伸縮組下的所有執行個體都將在該專用網路下建立。在您通過已有ECI執行個體建立時,專用網路會根據您選擇的ECI執行個體自動設定,您也可以再次修改。

    警告

    在伸縮組建立後,專用網路不可變更。

    選擇交換器

    在您選擇專用網路後,您可以選擇您專用網路下的交換器。您伸縮組下的所有的執行個體將在該交換器下建立。

    重要

    推薦您選擇多個可用性區域的交換器,單一可用性區域如果庫存不足會產生庫存失敗的情況。

  3. 單擊建立按鈕完成伸縮組的建立。

說明

  • 基於現有ECI執行個體建立伸縮組時,會自動為伸縮組建立一個伸縮配置,如需管理伸縮配置,請參見管理伸縮配置

  • 如果您希望立即使伸縮組開始工作,請啟用伸縮組。具體操作,請參見啟用或停用伸縮組

方式二:從零開始建立ECI伸縮組

您期望稍後建立伸縮組的執行個體配置來源,可以參考以下步驟完成伸縮組的建立。

  1. 進入建立伸縮組頁面。

    1. 登入Auto Scaling控制台

      說明

      如果您是第一次使用Auto Scaling,請根據介面提示開通Auto Scaling的許可權。具體操作,請參見服務關聯角色

    2. 在頂部功能表列處,選擇地區。
    3. 在左側導覽列中,單擊伸縮組管理
    4. 伸縮組管理頁面,單擊建立伸縮組按鈕進入建立伸縮組頁面。

  2. 單擊頂部通過表單建立頁簽,根據介面提示完成伸縮組的配置。

    您可以參考以下必選配置項說明,快速從零建立ECI伸縮組,更多配置項說明,請參見配置項說明

    必選配置項說明

    配置項

    說明

    伸縮組名稱

    根據介面提示完成伸縮組名稱的配置。

    伸縮群組類型

    選擇建立的伸縮組內的執行個體類型,選擇ECI

    說明

    本指南用於建立ECI伸縮組,如需建立ECS伸縮組,請參見建立ECS伸縮組

    組內執行個體配置資訊來源

    選擇從零開始建立。您可以先建立伸縮組,再配置組內執行個體配置資訊來源。具體操作說明,請參見執行個體配置來源概述

    組內最小執行個體數

    伸縮組執行個體內執行個體數量的下限,當執行個體數量低於這個邊界時,伸縮組會嘗試自動添加執行個體。

    組內最大執行個體數

    伸縮組執行個體內執行個體數量的上限,當執行個體數量低於這個邊界時,伸縮組會自動移出執行個體。

    預設冷卻時間

    單位為秒,伸縮組發生伸縮活動後的預設冷卻時間。您可以使用預設設定300秒,更多說明,請參見冷卻時間

    專用網路

    您伸縮組下的所有執行個體都將在該專用網路下建立。在您通過已有ECI執行個體建立時,專用網路會根據您選擇的ECI執行個體自動設定,您也可以再次修改。

    警告

    在伸縮組建立後,專用網路不可變更。

    選擇交換器

    在您選擇專用網路後,您可以選擇您專用網路下的交換器。您伸縮組下的所有的執行個體將在該交換器下建立。

    重要

    推薦您選擇多個可用性區域的交換器,單一可用性區域如果庫存不足會產生庫存失敗的情況。

  3. 單擊建立按鈕完成伸縮組的建立。

說明

在建立伸縮組後,您可以根據介面提示進入建立伸縮配置頁面,也可以稍後為伸縮組建立伸縮配置,具體操作,請參見建立伸縮配置(ECI執行個體)

方式三:通過Kubernetes YAML檔案來建立ECI伸縮組

如果您期望通過類似Kubernetes YAML的方式來快速管理ECI伸縮組,可以參考以下步驟通過YAML檔案完成伸縮組的建立操作。

控制台建立

以使用Nginx:latest鏡像為例,通過控制台使用YAML檔案建立ECI伸縮組的步驟如下。

  1. 進入建立伸縮組頁面。

    1. 登入Auto Scaling控制台

      說明

      如果您是第一次使用Auto Scaling,請根據介面提示開通Auto Scaling的許可權。具體操作,請參見服務關聯角色

    2. 在頂部功能表列處,選擇地區。
    3. 在左側導覽列中,單擊伸縮組管理
    4. 伸縮組管理頁面,單擊建立伸縮組按鈕進入建立伸縮組頁面。

  2. 單擊頂部通過YAML建立頁簽,完成YAML檔案的編寫。

    您可以參考以下YAML檔案完成配置。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-demo
      annotations:
        # 伸縮組名稱
        k8s.aliyun.com/ess-scaling-group-name: use-yaml-create-scaling-group
        # 伸縮組最小執行個體數
        k8s.aliyun.com/ess-scaling-group-min-size: '0'
        # 伸縮組最大執行個體數
        k8s.aliyun.com/ess-scaling-group-max-size: '5'
    spec:
      selector:
        matchLabels:
          app: nginx-demo
      # 伸縮組期望執行個體數
      replicas: 1
      template:
        metadata:
          labels:
              app: nginx-demo
          annotations:
            # 是否自動建立並綁定EIP
            k8s.aliyun.com/eci-with-eip: 'true'
            # 交換器ID,支援配置同一VPC下的至多8個交換器,使用逗號隔開
            k8s.aliyun.com/eci-vswitch: vsw-bp******1,vsw-bp******2,vsw-bp******3,vsw-bp******4
            # 安全性群組ID,支援配置同一VPC下的至多5個安全性群組,使用逗號隔開
            k8s.aliyun.com/eci-security-group: sg-bp******1,sg-bp******2
        spec:
          containers:
            - name: nginx
              # 鏡像
              image: nginx:latest
              ports:
                - containerPort: 80
                  name: http
                - containerPort: 443
                  name: https
              resources:
                requests:
                  memory: 0.05Gi
                  cpu: 50m
                limits:
                  memory: 1Gi
                  cpu: '1'
    

    YAML檔案參數說明如下。更多支援的參數說明,請參見YAML配置項說明

    樣本YAML檔案參數項說明

    參數

    說明

    樣本

    k8s.aliyun.com/ess-scaling-group-name

    伸縮組的名稱。

    use-yaml-create-scaling-group

    k8s.aliyun.com/ess-scaling-group-min-size

    伸縮組最小執行個體數。

    0

    k8s.aliyun.com/ess-scaling-group-max-size

    組內最大執行個體數。

    5

    k8s.aliyun.com/eci-with-eip

    是否自動分配EIP,true代表自動分配EIP。

    true

    k8s.aliyun.com/eci-vswitch

    交換器ID,支援配置同一VPC下的多個交換器,通過逗號隔開,最多支援8個交換器。

    重要

    不指定專用網路和交換器時,ESS會使用或建立預設專用網路與交換器,預設專用網路和交換器

    vsw-bp******1,vsw-bp******2,vsw-bp******3

    k8s.aliyun.com/eci-security-group: sg-bp******

    安全性群組ID,支援配置同一VPC下的多個安全性群組,最多支援5個安全性群組。

    重要

    安全性群組需和交換器在同一VPC下。

    sg-bp******1,sg-bp******2

  3. 單擊建立按鈕完成伸縮組的建立。

阿里雲CLI(命令列)

您可以通過阿里雲CLI使用命令列管理伸縮組。以使用Nginx:latest鏡像為例,通過阿里雲CLI使用YAML檔案建立ECI伸縮組的步驟如下。

重要

在操作前,請確保您已安裝阿里雲CLI,並為阿里雲CLI配置憑證和環境變數。具體操作,請參見什麼是阿里雲CLI

  1. 建立use-yaml-create-scaling-group.yaml檔案,檔案內容如下。

    您可以參考以下YAML檔案完成配置。

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-demo
      annotations:
        # 伸縮組名稱
        k8s.aliyun.com/ess-scaling-group-name: use-yaml-create-scaling-group
        # 伸縮組最小執行個體數
        k8s.aliyun.com/ess-scaling-group-min-size: '0'
        # 伸縮組最大執行個體數
        k8s.aliyun.com/ess-scaling-group-max-size: '5'
    spec:
      selector:
        matchLabels:
          app: nginx-demo
      # 伸縮組期望執行個體數
      replicas: 1
      template:
        metadata:
          labels:
              app: nginx-demo
          annotations:
            # 是否自動建立並綁定EIP
            k8s.aliyun.com/eci-with-eip: 'true'
            # 交換器ID,支援配置同一VPC下的至多8個交換器,使用逗號隔開
            k8s.aliyun.com/eci-vswitch: vsw-bp******1,vsw-bp******2,vsw-bp******3,vsw-bp******4
            # 安全性群組ID,支援配置同一VPC下的至多5個安全性群組,使用逗號隔開
            k8s.aliyun.com/eci-security-group: sg-bp******1,sg-bp******2
        spec:
          containers:
            - name: nginx
              # 鏡像
              image: nginx:latest
              ports:
                - containerPort: 80
                  name: http
                - containerPort: 443
                  name: https
              resources:
                requests:
                  memory: 0.05Gi
                  cpu: 50m
                limits:
                  memory: 1Gi
                  cpu: '1'
    

    YAML檔案參數說明如下。更多支援的參數說明,請參見YAML配置項說明

    樣本YAML檔案參數項說明

    參數

    說明

    樣本

    k8s.aliyun.com/ess-scaling-group-name

    伸縮組的名稱。

    use-yaml-create-scaling-group

    k8s.aliyun.com/ess-scaling-group-min-size

    伸縮組最小執行個體數。

    0

    k8s.aliyun.com/ess-scaling-group-max-size

    組內最大執行個體數。

    5

    k8s.aliyun.com/eci-with-eip

    是否自動分配EIP,true代表自動分配EIP。

    true

    k8s.aliyun.com/eci-vswitch

    交換器ID,支援配置同一VPC下的多個交換器,通過逗號隔開,最多支援8個交換器。

    重要

    不指定專用網路和交換器時,ESS會使用或建立預設專用網路與交換器,預設專用網路和交換器

    vsw-bp******1,vsw-bp******2,vsw-bp******3

    k8s.aliyun.com/eci-security-group: sg-bp******

    安全性群組ID,支援配置同一VPC下的多個安全性群組,最多支援5個安全性群組。

    重要

    安全性群組需和交換器在同一VPC下。

    sg-bp******1,sg-bp******2

  2. 在use-yaml-create-scaling-group.yaml同級目錄下,執行如下命令完成伸縮組的建立。

    重要
    • 本樣本以在杭州地區下建立伸縮組為例,您可以根據您的需求,將參數--RegionId修改為您希望建立伸縮組的地區。

    • 該命令通過調用CLI調用ApplyScalingGroup實現,具體介面說明,請參見ApplyScalingGroup - 基於設定檔管理伸縮組

    aliyun ess ApplyScalingGroup  --RegionId cn-hangzhou --Content "$(cat test-aliyun-cli-create-group.yaml)" --version 2022-02-22 --method POST --force

配置項說明

伸縮組基本資料配置

配置項

說明

伸縮組名稱

2~64個字元,以大小寫字母、數字或中文開頭,可包含半形句號(.)、底線(_)和短劃線(-)。

伸縮群組類型

指定伸縮組內提供計算能力的執行個體的類型,Auto Scaling會根據該配置為伸縮組擴縮容對應的執行個體。

  • ECS:伸縮組內的執行個體都為ECS執行個體。

  • ECI:伸縮組內的執行個體都為ECI執行個體。

組內執行個體配置資訊來源

Auto Scaling使用該配置建立執行個體。伸縮組支援以下執行個體配置資訊來源類型:

  • 啟動模板:包含除了密碼以外的任意配置資訊,如金鑰組、RAM角色、執行個體類型和網路設定等。僅伸縮群組類型ECS時,支援配置該項。

    單一執行個體規格可能會因庫存不足導致擴容失敗,您可以通過設定擴充啟動模板配置選擇多個執行個體規格提升擴容成功率,詳情請參見基於啟動模板實現多規格配置以提升擴容成功率

  • 選擇已有執行個體:您需要選擇已建立的執行個體,Auto Scaling會自動提取該執行個體的基礎配置資訊,建立一個預設伸縮配置。

    重要
    • 從ECS執行個體提取的伸縮配置包括該ECS執行個體的執行個體規格、網路類型、安全性群組、基礎鏡像等基礎配置,不包括登入密碼、標籤。其中,基礎鏡像是已有執行個體使用的基礎鏡像,不包括該執行個體的資料資訊,如應用程式。如果您想使伸縮配置包括該執行個體的所有系統配置和資料資訊,請建立該執行個體的自訂鏡像。

  • 從零開始建立:先不指定自動建立執行個體的模板。等伸縮組建立完成後,再繼續建立伸縮配置或指定啟動模板。伸縮群組類型不同,建立伸縮配置的具體操作不同,更多資訊,請參見建立伸縮配置(ECS執行個體)建立伸縮配置(ECI執行個體)

說明

ECS控制台入口基於執行個體建立伸縮組時,Auto Scaling自動填入組內執行個體配置資訊來源、網路類型相關的資訊,請保持預設,無需修改。

暫停流程

方便您在執行某些操作前主動暫停指定的流程,例如暫停健全狀態檢查流程後再去停止執行個體,避免執行個體被視為不健康而自動移出伸縮組。支援暫停流程如下:

  • 擴容流程:伸縮組拒絕所有擴容動作。

  • 縮容流程:伸縮組拒絕所有縮容動作。

  • 健全狀態檢查:暫停將執行個體標記為不健康狀態,並暫停移出不健康的執行個體。

  • 定時任務:到定時任務的執行時間後,不會觸發關聯的伸縮規則。

  • 警示任務:警示任務進入警示狀態後,不會觸發關聯的伸縮規則。

更多資訊,請參見暫停和恢複伸縮組流程

開啟伸縮組保護

開啟伸縮組保護後,您不能在Auto Scaling控制台或者通過API刪除該伸縮組,有效避免誤刪除伸縮組。

執行個體的健全狀態檢查

開啟健全狀態檢查後,伸縮組會定期檢查執行個體的運行狀態,如果發現一台執行個體未處於運行中狀態,則判定為不健康並移出該執行個體。更多資訊,請參見伸縮組內執行個體的生命週期。支援的配置項如下:

  • 不開啟:選此選項停用此功能。

  • 執行個體狀態檢查:是否對伸縮組內的執行個體狀態做健全狀態檢查。

  • 負載平衡健全狀態檢查:開啟該選項後會根據ALB或NLB的負載平衡健全狀態檢查結果進行健全狀態檢查。(不支援傳統型負載平衡CLB)

執行個體最大生命時間長度(秒)

執行個體在伸縮組中存活的最大時間,當伸縮組中存在超過最大生命時間長度的執行個體時,伸縮組會自動建立新執行個體來替換該執行個體。

說明

伸縮群組類型ECS時,支援設定該參數。

組內執行個體數配置

配置項

說明

組內最小執行個體數

當前執行個體數量低於下限時,伸縮組會自動添加執行個體,使得伸縮組內的執行個體數量等於下限。

組內最大執行個體數

當前執行個體數量超過上限時,伸縮組會自動移出執行個體,使得伸縮組內的執行個體數量等於上限。移出執行個體的策略的說明,請參見設定伸縮組的執行個體終止策略

組內期望執行個體數

填寫組內期望執行個體數即可開啟期望執行個體數功能,伸縮組會自動將執行個體數量維持在期望執行個體數。更多資訊,請參見期望執行個體數

組內執行個體擴縮容設定

重要

ECI伸縮組不支援修改擴縮容策略執行個體移出策略執行個體回收模式,ECI伸縮組預設採用的配置如下:

  • 擴縮容策略優先順序策略

  • 執行個體移出策略:先篩選最早伸縮配置對應的執行個體,再移出最早建立的執行個體

  • 執行個體回收模式釋放模式

配置項

說明

擴縮容策略

伸縮組預設會根據您配置的交換器的順序(優先順序策略),進行伸縮組的伸縮活動,您可以通過修改擴縮容策略來實現其他策略,伸縮組為您預設了幾種伸縮策略,具體策略說明如下。

重要

伸縮群組類型ECS,且網路類型專用網路時,支援修改該配置,當伸縮群組類型ECI時,預設擴縮容策略優先順序策略

  • 優先順序策略(預設策略)。

    根據您定義的虛擬交換器擴縮容。當優先順序較高的虛擬交換器所在可用性區域無法建立執行個體時,自動在下一優先順序的虛擬交換器的可用性區域建立執行個體。

  • 均衡分布策略

    如果您期望在擴縮容後,保持伸縮組在可用性區域之間分布均衡從而達成多可用性區域容災的效果,您可以採用本策略。如果由於庫存不足等原因導致可用性區域之間ECS執行個體的數量不均衡,您可以執行再均衡分布操作來平衡ECS執行個體的分布情況。具體操作,請參見ECS執行個體再均衡分布

  • 成本最佳化策略

    當成本在您的決策中優先順序比較高,您可以使用成本最佳化策略。使用該策略,在伸縮活動發生時,會按照執行個體的vCPU單價從低到高進行嘗試建立,當伸縮配置設定了搶佔式計費方式的多執行個體規格時,優先建立對應搶佔式計費執行個體,當搶佔式計費執行個體規格由於庫存等原因都無法建立時,自動嘗試以隨用隨付的方式建立,在縮容活動發生時,則會優先移出vCPU單價最高的執行個體。

  • 自訂群組合策略

    使用組合方式自訂容量分布策略。您可使用該策略調整伸縮組內按量執行個體和搶佔式執行個體的比例,可用性區域間的容量均衡以及執行個體規格的選擇。

如何配置,請參見配置擴縮容策略

執行個體移出策略

當需要從伸縮組移出執行個體時,會先按照策略篩選執行個體,如果篩選後仍有多台執行個體滿足要求,則隨機移出一台。僅伸縮群組類型ECS時支援該配置,配置項說明如下:

  • 最早伸縮配置對應的執行個體:篩選添加時間最早的伸縮配置對應的執行個體。手動添加的執行個體沒有關聯伸縮配置或啟動模板,因此不會首先選出手動添加的執行個體。如果已移出全部關聯的執行個體,仍需要繼續移出執行個體,則隨機移出手動添加的執行個體。

    重要
    • 此參數中,伸縮配置泛指執行個體配置來源裡的伸縮配置和啟動模板。

    • 該選項中的時間與啟動模板的版本無關,僅與該模板在伸縮組設定的時間有關。例如:

      在伸縮組中先使用了版本2的啟動模板,後來伸縮組將使用的啟動模板版本回退到版本1,此情況下版本2的啟動模板是最早伸縮配置

  • 最早建立的執行個體:篩選建立時間最早的執行個體。

  • 最新建立的執行個體:篩選建立時間最新的執行個體。

  • 自訂策略:使用者自訂執行個體移出策略,根據Function Compute服務名、版本和函數名,篩選出符合自訂策略的執行個體。

執行個體移出策略最早伸縮配置對應的執行個體自訂策略時,可能會出現多個滿足條件的執行個體,您可以通過設定第二段策略來進一步篩選要移出的執行個體。第二段策略說明如下:

  • --無策略--:不進行第二段篩選。

  • 最早建立的執行個體:在第一段篩選出的執行個體中,再篩選建立時間最早的執行個體。

  • 最新建立的執行個體:在第一段篩選出的執行個體中,再篩選建立時間最新的執行個體。

說明

伸縮組移出執行個體還受伸縮組的擴縮容策略影響。相關說明,請參見設定伸縮組的執行個體終止策略

執行個體回收模式

在移出執行個體後,伸縮組會通過該配置來對執行個體進行回收操作。具體回收模式如下:

說明

伸縮群組類型ECS,且網路類型專用網路時,支援配置該項。ECI伸縮組預設回收模式為釋放模式

  • 釋放模式:移出的執行個體被釋放,無資源被保留。在彈性擴張時,Auto Scaling建立新的執行個體加入伸縮組。

  • 停機回收模式:移出的ECS執行個體被停用,並觸發節省停機效果,部分資源被保留並計費。在彈性擴張時,Auto Scaling優先將停用的ECS執行個體加入伸縮組,再根據擴張數量決定是否建立新的ECS執行個體加入伸縮組。該模式可以提高擴縮容的效率,更多資訊,請參見選擇節省停機模式提高擴縮容效率

    重要
    • 請不要在執行個體中保留應用資料、日誌等,避免執行個體回收後資料丟失的風險。

    • 停用的執行個體可能會被釋放:

      • 如果您手動減少伸縮組的最大執行個體數,使現最大執行個體數比伸縮組內各狀態(包括停用中)的執行個體總數小,Auto Scaling優先釋放停用的ECS執行個體。

      • 因為庫存不足或者帳號欠費等原因,停用的執行個體在加入伸縮組時可能會失敗,失敗後該執行個體會被釋放。

    • 停機回收模式的作用受隨用隨付執行個體節省停機模式的影響,更多資訊,請參見節省停機模式的“啟用條件”、“適用資源”和“觸發效果”部分。

  • 強制釋放模式:選擇該回收模式,在彈性收縮活動中,系統會強制釋放處於運行中Running)的執行個體。

    警告

    強制釋放執行個體相當於斷電操作,會導致該執行個體記憶體以及儲存中的臨時資料被擦除,資料無法恢複請您謹慎選擇

  • 強制停機回收模式:選擇該回收模式,在彈性收縮活動時,強制關機處於運行中Running)的執行個體。

    警告

    強制關機相當於斷電操作,會導致該執行個體記憶體以及儲存中的臨時資料被擦除,資料無法恢複請您謹慎選擇

網路設定

重要

組內執行個體配置資訊來源啟動模板選擇已有執行個體時,會自動按照啟動模板或者選擇的執行個體自動填滿網路類型專用網路選擇交換器等配置,您也可以根據需求,重新設定伸縮組網路。

配置項

說明

網路類型

您可以根據您的需求選擇您伸縮組內執行個體的網路類型,支援專用網路傳統網路

警告

在伸縮組建立後,網路類型不可變更。

重要

推薦您選擇專用網路專用網路伸縮組支援更靈活配置伸縮組,如更靈活的伸縮策略、執行個體回收模式、關聯負載平衡器ALB和NLB。更多專用網路的說明,請參見什麼是專用網路

專用網路

網路類型專用網路時,支援此配置,在您選擇專用網路後,您伸縮組下的所有執行個體都將在該專用網路下建立。

警告

在伸縮組建立後,專用網路不可變更。

選擇交換器

在您選擇專用網路後,您可以選擇您專用網路下的交換器。您伸縮組下的所有的執行個體將在該交換器下建立。

重要

推薦您選擇多個可用性區域的交換器,單一可用性區域如果庫存不足會產生庫存失敗的情況,如果您使用ECS伸縮組,您還可以通過切換擴縮容策略來選擇伸縮組中執行個體在不同可用性區域的分布。

關聯其他雲端服務

配置項

說明

關聯RDS、Redis、MongoDB資料庫執行個體

當您伸縮組的執行個體需要訪問RDS、Redis、MongoDB資料庫時,您可能需要自動將伸縮組中的ECS執行個體或ECI執行個體的內網IP加入該資料庫執行個體訪問的白名單,此時,您可以通過該配置來達到此效果。

說明

關聯傳統型負載平衡CLB(原SLB)

伸縮組關聯CLB執行個體後,加入伸縮組的執行個體會自動添加為CLB執行個體的後端伺服器,處理來自CLB執行個體轉寄的訪問請求。

您可以指定執行個體需要加入的伺服器組,支援以下兩種伺服器組:

  • 預設伺服器組:用來接收前端請求的執行個體,如果監聽沒有設定虛擬伺服器組或主備伺服器組,預設將請求轉寄至預設伺服器組中的執行個體。

  • 虛擬伺服器組:當您需要將不同的請求轉寄到不同的後端伺服器上時,或需要通過網域名稱和URL進行請求轉寄時,可以選擇使用虛擬伺服器組。

如果您同時指定了預設伺服器組和多個虛擬伺服器組,執行個體會同時添加至這些伺服器組中。

說明

一個伸縮組支援關聯的CLB執行個體和虛擬伺服器組數量有限。如需查看或手動申請提升配額值,請前往配額中心

關聯負載平衡ALB、NLB伺服器組

重要

網路類型專用網路時,支援配置該項。

伸縮組關聯ALB、NLB伺服器組後,加入伸縮組的執行個體會自動添加為ALB、NLB伺服器組的後端伺服器,處理ALB、NLB執行個體分發的訪問請求。您還需指定後端伺服器的連接埠和權重,權重預設為50。權重越高,執行個體將被分配到越多的訪問請求。如果權重為0,則執行個體不會收到訪問請求。

如果您為伸縮組關聯了多個ALB、NLB伺服器組,加入伸縮組的執行個體會同時添加至這些伺服器組中。

說明

一個伸縮組支援關聯的ALB、NLB伺服器組數量有限。如需查看或手動申請提升配額值,請前往配額中心

其他配置

配置項

說明

標籤

添加標籤便於搜尋和彙總伸縮組,更多資訊,請參見標籤

說明

此處的標籤適用於伸縮組,如果您需要為伸縮組內執行個體添加標籤,請在伸縮配置或啟動模板中設定。

擴容時需要傳播給執行個體的標籤

為伸縮組添加一個或多個標籤後,您可以繼續選擇擴容時需要傳播給伸縮組內執行個體的一個或多個標籤。

添加已有執行個體

如果伸縮群組類型ECS,且組內執行個體配置資訊來源啟動模板選擇已有執行個體時,支援配置該項。

如果同時設定期望執行個體數並添加已有執行個體,期望執行個體數會自動增加。例如,建立伸縮組時設定期望執行個體數為1,並添加2台已有執行個體,伸縮組建立完成後,2台已有執行個體添加至伸縮組,然後期望執行個體數變為3。

您可以將已有執行個體的生命週期託管給伸縮組,選擇將執行個體的生命週期託管給伸縮組複選框即可。

  • 如果託管給伸縮組,添加的已有執行個體因處於不健康狀態等原因被自動移出伸縮組,或者被手動移出伸縮組時,會被自動釋放。

  • 如果未託管給伸縮組,添加的已有執行個體移出伸縮組時,不會被自動釋放。

說明

支援將訂用帳戶執行個體添加至伸縮組,但不支援託管訂用帳戶執行個體。

設定訊息接收通知

在伸縮活動成功、失敗或者被拒絕時,Auto Scaling支援通過簡訊、站內信和郵件發送訊息通知。更多資訊,請參見設定訊息接收通知

資源群組

通過選擇資源群組,對伸縮組資源進行分組管理,實現資源的隔離顯示和許可權控制。更多資訊,請參見通過資源群組精細化管理伸縮組

同步伸縮組警示規則到CloudMonitor

該功能僅支援建立伸縮組時開啟或關閉。開啟該功能後,系統將為伸縮組建立並關聯一個CloudMonitor應用分組,伸縮組上的警示規則將在CloudMonitor控制台同步顯示。

YAML配置項說明

支援的Kubernetes YAML欄位

通過Kubernetes YAML方式部署ECI類型伸縮組時,在配置YAML檔案時僅支援以下Kubernetes Deployment資源類型中的YAML欄位:

說明

您可以參考Kubernetes官網的Deployment樣本瞭解YAML檔案的模板結構,YAML欄位主要包括kindmetadataspec三部分。

支援的Kubernetes YAML欄位

  • kind:資源類型,僅支援Deployment類型。

  • metadata.name:資源名稱,伸縮組未使用該欄位,生效名稱為Annotation中的k8s.aliyun.com/ess-scaling-group-name

  • spec.replicas:Pod副本數,伸縮組中的期望執行個體數。

  • spec.template.spec:定義了Pod配置。具體支援的功能如下:

    功能

    YAML欄位

    說明

    DNS配置

    dnsPolicy

    DNS策略。

    dnsConfig.nameservers

    DNS伺服器的IP地址清單。

    dnsConfig.searches

    DNS搜尋域列表。

    dnsConfig.options.name

    物件變數名。

    dnsConfig.options.value

    物件變數值。

    容器配置

    contaners.name

    容器名稱。

    contaners.image

    容器鏡像。

    contaners.command

    容器啟動命令。

    contaners.args

    容器啟動命令參數。

    contaners.imagePullPolicy

    鏡像拉取策略。

    contaners.stdin

    是否為stdin分配緩衝區。

    contaners.stdinOnce

    是否為stdin分配一次性緩衝區。

    contaners.tty

    是否分配TTY。

    contaners.ports

    containerPort

    連接埠號碼。

    protocol

    TCP、UDP協議。

    contaners.env

    name

    環境變數名。

    value

    環境變數值。

    contaners.resources

    requests.cpu

    請求的CPU。

    requests.memory

    請求的記憶體。

    limits.cpu

    限制的CPU。

    limits.memory

    限制的記憶體。

    limits.nvidia.com/gpu

    可以在Pod metadata中添加Annotation來指定GPU規格。

    指定GPU規格後,需要在Container的resources中添加nvidia.com/gpu欄位聲明容器所需的GPU資源。

    contaners.securityContext

    runAsUser

    設定運行容器的使用者ID。

    readOnlyRootFilesystem

    容器啟動並執行根檔案系統是否為唯讀。

    capabilities.add

    容器內的進程被授予某些特定的許可權。

    contaners.volumeMounts

    name

    此欄位必須與卷的名稱匹配。

    mountPath

    容器內卷的掛載路徑。

    mountPropagation

    確定掛載如何從主機傳播到容器以及如何反向傳播。

    readOnly

    取值範圍:

    • true:以唯讀方式掛載。

    • false:以讀寫方式掛載。

    預設為 false。

    subPath

    卷中的路徑。

    contaners.livenessProbe

    • initialDelaySeconds

    • periodSeconds

    • successThreshold

    • timeoutSeconds

    • failureThreshold

    • exec.command

    • tcpSocket.port

    • httpGet.scheme

    • httpGet.port

    • httpGet.path

    配置存活、就緒和啟動探針

    contaners.readinessProbe

    • initialDelaySeconds

    • periodSeconds

    • successThreshold

    • timeoutSeconds

    • failureThreshold

    • exec.command

    • tcpSocket.port

    • httpGet.scheme

    • httpGet.port

    • httpGet.path

    init容器配置

    initContainers.name

    初始化容器名稱。

    initContainers.image

    初始化容器鏡像。

    initContainers.command

    初始化容器啟動命令。

    initContainers.args

    初始化容器啟動參數。

    initContainers.imagePullPolicy

    初始化容器鏡像拉取策略。

    initContainers.env

    name

    初始化容器環境變數名稱。

    value

    初始化容器環境變數值。

    initContainers.resources

    requests.cpu

    初始化容器請求的CPU。

    requests.memory

    初始化容器請求的記憶體。

    limits.cpu

    初始化容器限制的CPU。

    limits.memory

    初始化容器限制的記憶體。

    limits.nvidia.com/gpu

    初始化容器實用的GPU。

    initContainers.securityContext

    capabilities.add

    初始化容器內的進程授予某些特定的許可權。

    initContainers.volumeMounts

    name

    初始化容器使用的卷名稱,此欄位必須與卷的名稱匹配。

    mountPath

    初始化容器內卷的掛載路徑。

    mountPropagation

    確定掛載如何從主機傳播到初始化容器,以及如何反向傳播。

    readOnly

    取值範圍:

    • true:以唯讀方式掛載。

    • false:以讀寫方式掛載。

    預設為false。

    subPath

    卷中的路徑。

    資料卷配置

    volumes.nfs

    name

    自訂的卷名稱。

    server

    NFS伺服器位址(NAS掛載點)。

    path

    NFS資料卷路徑。

    readOnly

    是否唯讀。

    volumes.emptyDir

    sizeLimit

    臨時目錄EmptyDir資料卷的大小。取值時需要帶上單位,建議使用Gi或Mi。

    medium

    EmptyDirVolume的儲存媒介。取值範圍:

    • 未指定或為空白:表示使用node檔案系統作為儲存媒介。

    • memory:表示使用記憶體作為儲存媒介。

    預設為空白。

    volumes.flexVolume

    driver

    用於FlexVolume的驅動程式名稱。

    options

    FlexVolume對象選項列表。為KV形式,採用JSON傳遞。

    例如:通過FlexVolume掛載雲端硬碟時,Options的格式為{"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}

    優雅中斷容器配置

    terminationGracePeriodSeconds

    程式的緩衝時間,用於處理關閉之前的操作。單位為秒。

擴充的Annotation欄位

通過Kubernetes YAML方式部署ECI類型伸縮組時,在配置YAML檔案時僅支援擴充以下Annotation欄位。

metadata中擴充的Annotation欄位

參數

說明

樣本

k8s.aliyun.com/ess-scaling-group-name

伸縮組名稱。

ess-group-test

k8s.aliyun.com/ess-scaling-group-min-size

伸縮組內執行個體最小數。預設值:0。

0

k8s.aliyun.com/ess-scaling-group-max-size

伸縮組內執行個體最大數。預設值:max(replicas, 30)。

20

spec.template.spec中擴充的Annotation欄位

更多Annotation資訊,請參見ECI Pod Annotation

參數

樣本值

說明

k8s.aliyun.com/eci-ntp-server

100.100.*.*

NTP Server。

k8s.aliyun.com/eci-use-specs

2-4Gi

指定ECI執行個體規格,支援指定多規格。更多資訊,請參見多規格建立Pod

k8s.aliyun.com/eci-vswitch

vsw-bp1xpiowfm5vo8o3c****

指定交換器ID,支援指定多個交換器實現多可用性區域功能。

k8s.aliyun.com/eci-security-group

sg-bp1dktddjsg5nktv****

指定安全性群組ID。要求如下:

  • 支援指定一個或多個安全性群組,最多可以指定5個安全性群組。

  • 指定的安全性群組必須屬於同一VPC。

  • 指定的安全性群組的類型必須相同。

k8s.aliyun.com/eci-sls-enable

"false"

配置為false表示關閉日誌採集功能。通過SLS CRD方式採集日誌時,如果某些Pod不需要採集日誌,可配置該Annotation來關閉日誌採集功能,避免系統自動建立Logtail而造成資源浪費。

k8s.aliyun.com/eci-spot-strategy

SpotAsPriceGo

搶佔式執行個體的出價策略,可根據需要進行配置。

  • SpotWithPriceLimit:自訂設定搶佔執行個體價格上限。此時必須設定k8s.aliyun.com/eci-spot-price-limit

  • SpotAsPriceGo:系統自動出價,跟隨當前市場實際價格。

k8s.aliyun.com/eci-spot-price-limit

"0.5"

搶佔式執行個體的每小時價格上限,最多支援精確到小數點後三位。僅當

k8s.aliyun.com/eci-spot-strategy

設定為

SpotWithPriceLimit

時有效。

k8s.aliyun.com/eci-with-eip

"true"

配置為true表示自動建立並綁定EIP。

k8s.aliyun.com/eci-data-cache-bucket

default

指定DataCache的Bucket。使用DataCache建立Pod時必須配置。

k8s.aliyun.com/eci-data-cache-pl

PL1

基於DataCache建立的雲端硬碟的效能等級。預設使用ESSD雲端硬碟,效能等級預設為PL1。

k8s.aliyun.com/eci-data-cache-provisionedIops

"40000"

ESSD AutoPL雲端硬碟預配置的讀寫IOPS。取值範圍:0~min{50000, 1000 * 容量-基準效能},基準效能=min{1800+50 * 容量, 50000}。更多資訊,請參見ESSD AutoPL雲端硬碟

如果添加了該Annotation,則基於DataCache建立的雲端硬碟類型為ESSD AutoPL雲端硬碟。

k8s.aliyun.com/eci-data-cache-burstingEnabled

"true"

ESSD AutoPL雲端硬碟是否開啟Burst(效能突發)。更多資訊,請參見ESSD AutoPL雲端硬碟

如果添加了該Annotation,則基於DataCache建立的雲端硬碟類型為ESSD AutoPL雲端硬碟。

k8s.aliyun.com/eci-custom-tags

"env:test,name:alice"

綁定的標籤(Tag)字串,最多可以綁定3個標籤。標籤鍵和標籤值之間用半形冒號(:)隔開,多個標籤之間用半形逗號(,)隔開。

更多Annotation資訊,請參見ECI Pod Annotation