全部產品
Search
文件中心

:設定有序且唯一的執行個體名稱或主機名稱規則

更新時間:Jun 30, 2024

本文介紹在伸縮配置中設定執行個體名稱或主機名稱的規則,以便擴容時為擴容的ECS執行個體產生有序且唯一的執行個體名稱或主機名稱,有助於您更好地管理ECS執行個體。

背景資訊

  • 根據伸縮規則,伸縮組支援一次擴容一台或者多台ECS執行個體,也可以多次擴容產生多台ECS執行個體。您可以在伸縮配置或者啟動模板中設定執行個體名稱或主機名稱的規則。

  • 不同情境下,設定執行個體名稱或主機名稱規則的方案有所差異(如下表所示),本文介紹的設定方案僅適用於情境一

    情境描述

    方案

    相關連結

    情境一:要求伸縮組內所有擴容的ECS執行個體的執行個體名稱或主機名稱有序且唯一。

    必須在伸縮配置中按照規則設定執行個體名稱或主機名稱,不能選擇啟動模板方式進行設定。

    重要

    伸縮組的執行個體名稱或主機名稱會有序遞增,但不一定保證連續遞增。例如,擴容的主機名稱分別為ess-node-0999、ess-node-1000、ess-node-1002,說明主機名稱為ess-node-1001的ECS執行個體未正常啟動,伸縮組將此ECS執行個體視為不健康執行個體,移除此ECS執行個體後,伸縮組重新擴容一台ECS執行個體,且主機名稱為ess-node-1002。

    情境二:僅關注單次擴容的ECS執行個體的執行個體名稱或主機名稱唯一且有序,不需要伸縮組內所有的ECS執行個體的執行個體名稱或主機名稱唯一。

    推薦按照指定定序的方法進行配置。

    大量設定有序的執行個體名稱或主機名稱

    情境三:對擴容的ECS執行個體的執行個體名稱或主機名稱沒有要求。

    您無需按照情境一或情境二中的命名規則配置,設定普通名稱即可。

    例如,設定主機名稱為hostname,則擴容的所有ECS執行個體中主機名稱全部為hostname。

方式一:在控制台配置有序且唯一的執行個體名稱或主機名稱

  1. 建立伸縮組。

    具體操作,請參見建立伸縮組

  2. 建立伸縮配置,並在建立成功後啟用伸縮配置。

    具體操作,請參見建立伸縮配置(ECS執行個體)。其中,在進階設定地區的執行個體名稱主機名稱處,您需要指定命名規則。

    例如,執行個體名稱後輸入ess-node-(AUTO_INCREMENT)[0,3]主機名稱處輸入ess-node-(AUTO_INCREMENT)[0,3]-ecshost

    說明

    本例中選用的命名規則是固定增長排序,更多資訊,請參見(推薦)固定增長排序。如果您希望產生的執行個體名稱或主機名稱按照動態排序的規則呈現,更多資訊,請參見動態擴充排序

  3. 啟用伸縮組。

    具體操作,請參見啟用伸縮組

  4. 建立並執行伸縮規則。

    1. 建立伸縮規則。

      具體操作,請參見建立伸縮規則

      本步驟以簡單規則為例。例如,執行該伸縮規則後,伸縮組內ECS執行個體數量會增加3台。

    2. 執行伸縮規則。

      具體操作,請參見執行伸縮規則

      伸縮活動執行成功後,增加的3台ECS執行個體中的執行個體名稱和主機名稱顯示如下:

      • 執行個體名稱:ess-node-000、ess-node-001、ess-node-002

      • 主機名稱:ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost

方式二:調用API配置有序且唯一的執行個體名稱或主機名稱

  1. 調用API CreateScalingGroup介面建立伸縮組。

    具體操作,請參見CreateScalingGroup - 建立一個伸縮組

  2. 調用API CreateScalingConfiguration介面建立伸縮配置。

    具體操作,請參見CreateScalingConfiguration - 建立一個ECS類型伸縮配置。其中,在請求參數中,您需要設定InstanceNameHostName參數值。

    例如,設定InstanceNameess-node-(AUTO_INCREMENT)[0,3]HostNameess-node-(AUTO_INCREMENT)[0,3]-ecshost

    說明

    本例中選用的命名規則是固定增長排序,更多資訊,請參見(推薦)固定增長排序。如果您希望產生的執行個體名稱或主機名稱按照動態排序的規則呈現,更多資訊,請參見動態擴充排序

  3. 調用API EnableScalingGroup介面啟動伸縮組。

    具體操作,請參見EnableScalingGroup - 啟用一個伸縮組

  4. 建立並執行伸縮規則。

    1. 調用API CreateScalingRule介面建立伸縮規則。

      具體操作,請參見CreateScalingRule - 建立一條伸縮規則

      本步驟以建立簡單規則為例。例如,執行該伸縮規則後,伸縮組內ECS執行個體數量會增加3台。

    2. 調用API ExcuteScalingRule介面執行伸縮規則。

      具體操作,請參見ExecuteScalingRule - 執行一條伸縮規則

      執行完成後,增加的3台ECS執行個體中的執行個體名稱和主機名稱顯示如下所示:

      • 執行個體名稱:ess-node-000、ess-node-001、ess-node-002

      • 主機名稱:ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost

(推薦)固定增長排序

參數格式為name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix

說明

由於執行個體名稱或主機名稱的設定規則和邏輯是一樣的,以下內容均以主機名稱規則說明為例。

表 1. 參數說明表

欄位名稱

是否必選

配置說明

樣本

name_prefix

指定主機名稱的首碼。

ess-node-

(AUTO_INCREMENT)

固定取值,用來標識此排序方式。

(AUTO_INCREMENT)

[begin_number,bits]

指定主機名稱的有序數值。設定後,主機名稱的有序數值遞增。

重要

[begin_number,bits]欄位中不能有空格,且系統預設依次遞增,但是如果存在擴容的ECS執行個體無法啟動,會被伸縮組移除後再擴容一台新的ECS執行個體,所以伸縮組內ECS執行個體的主機名稱可能斷續遞增。

  • begin_number:有序數值的起始值,取值範圍:[0,999999]。

    • 首次擴容時,您設定的起始值生效。如果未設定起始值時,起始值預設為0

    • 非首次擴容時,起始值在伸縮組內已有主機名稱中有序數值的最大值上遞增。

  • bits:有序數值所佔的位元,取值範圍:[1,6],當指定的begin_number位元大於bits的取值時,bits預設為6

說明

bits建議最少為3,否則容易達到有序數值的上限。在達到上限後,若還有擴容需求,伸縮活動會報錯,並停止擴容。此時,您需要重新設定產生主機名稱的規則。

[0,6]

name_suffix

指定主機名稱的尾碼。

-ecshost

表 2. 參數樣本表

命名樣本

伸縮組現有主機名稱中最大序數值

主機名稱(以擴容3台ECS執行個體為例)

說明

ess-node-(AUTO_INCREMENT)[0,3]-ecshost

ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost

首次擴容時,有序數值的位元為bits的值,有序數值從begin_number開始,然後根據擴容ECS的台數依次遞增。

  • ess-node-(AUTO_INCREMENT)[]-ecshost

  • ess-node-(AUTO_INCREMENT)[,]-ecshost

ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost

未配置begin_number或者bits時,begin_number預設為0bits預設為6

ess-node-(AUTO_INCREMENT)[99,1]-ecshost

ess-node-000099-ecshost

ess-node-000100-ecshost、ess-node-000101-ecshost、ess-node-000102-ecshost

  • 非首次擴容時,有序數值從伸縮組內已有主機名稱中有序數值的最大值開始增加。

  • 當指定的begin_number位元大於bits的取值時,bits預設為6

ess-node-(AUTO_INCREMENT)[0,2]-ecshost

ess-node-99-ecshost

伸縮活動報錯並停止擴容

  • 非首次擴容時,有序數值從伸縮組內已有主機名稱中有序數值的最大值開始增加。

  • 在達到有序數值的上限後,若還有擴容需求,伸縮活動會報錯,並停止擴容。此時,您需要重新設定產生主機名稱的規則。

ess-node-(AUTO_INCREMENT)[0,4]

ess-node-0998-ecshost

ess-node-0999、ess-node-1000、ess-node-1002

  • 非首次擴容時,有序數值從伸縮組內已有主機名稱中有序數值的最大值開始增加。

  • 系統預設依次遞增,但是如果存在擴容的ECS執行個體無法啟動(此例主機名稱為ess-node-1001),會被伸縮組移除後再擴容一台新的ECS執行個體,所以伸縮組內主機名稱可能斷續遞增。

動態擴充排序

參數格式為name_prefix(ess_extend_begin,ess_extend_bits)[begin_number,bits]name_suffix

說明

由於執行個體名稱或主機名稱的設定規則和邏輯是一樣的,以下內容均以主機名稱規則說明為例。

表 3. 參數說明表

欄位名稱

是否必選

配置說明

樣本

name_prefix

指定主機名稱的首碼。

ess-node-

(ess_extend_begin,ess_extend_bits)

指定主機名稱的擴充有序數值。當伸縮組內已有主機名稱中基礎有序數值等於最大值時,本參數增加一個值,基礎有序數值重新從0開始遞增,迴圈增加直至上限。

  • ess_extend_begin:擴充有序數值的起始值,取值範圍為[0,ZZZ]。每一位值的取值範圍為0~9、a~z和A~Z,例如,9增加一個值變成a,z增加一個值變成A。

    • 首次擴容時,您設定的起始值生效,未設定時,起始值預設為0

    • 非首次擴容時,起始值為伸縮組內已有主機名稱中擴充有序數值的最大值。

  • ess_extend_bits:擴充有序數值所佔的位元,取值範圍:[1,3],預設值為3

重要

若擴充有序數值和基礎有序數值都達到上限後,伸縮組還有擴容需求,伸縮活動會報錯,並停止執行伸縮活動。此時,您需要重新設定產生主機名稱的規則。

(ess_extend_begin,ess_extend_bits)欄位中不能有空格。當指定的ess_extend_begin位元大於bits的取值時,bits預設為3

(0,3)

[begin_number,bits]

指定主機名稱的基礎有序數值。設定後,本參數會遞增至最大值,再擴容時,擴充參數增加一個值,本參數從0開始遞增,迴圈增加直至上限。

重要

系統預設依次遞增,但是如果存在擴容的ECS執行個體無法啟動,會被伸縮組移除後再擴容一台新的ECS執行個體,所以伸縮組內ECS執行個體的主機名稱可能斷續遞增。

  • begin_number:基礎有序數值的起始值,取值範圍:[0,999999]。

    • 首次擴容時,您設定的起始值生效,未設定時,起始值預設為0

    • 非首次擴容時,起始值在伸縮組內已有主機名稱中基礎有序數值的最大值上遞增。

  • bits:基礎有序數值所佔的位元,取值範圍:[1,6],預設值為6

重要
  • 當伸縮組內已有主機名稱的最大有序數值中的基礎有序數值與即將擴容的ECS執行個體數量之和,大於等於基礎有序數值的最大值,會出現ECS主機名稱非連續(即斷續)增長情況。為避免發生此情況,建議基礎有序數值的位元最少配置為3。

  • 若擴充有序數值和基礎有序數值都達到上限後,伸縮組還有擴容需求,伸縮活動會報錯,並停止執行擴容。此時,您需要重新設定產生主機名稱的規則。

[begin_number,bits]欄位中不能有空格。當指定的begin_number位元大於bits的取值時,bits預設為6

[0,6]

name_suffix

指定主機名稱的尾碼。

-ecshost

表 4. 參數樣本表

命名樣本

伸縮組現有最大命名主機

主機名稱(以擴容3台ECS執行個體為例)

說明

ess-node-(0,3)[0,3]-ecshost

ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost

首次擴容時:

  • 擴充有序數值:位元為ess_extend_bits的值,起始值為ess_extend_begin。若基礎有序數值達到最大值,擴充有序數值再增加一個值,基礎有序數值重新從0開始遞增。

  • 基礎有序數值:位元為bits的值,基礎有序數值從begin_number開始,然後根據擴容ECS的台數依次遞增。若基礎有序數值達到最大值,擴充有序數值再增加一個值,基礎有序數值重新從0開始遞增。

  • ess-node-()[]-ecshost

  • ess-node-(,)[,]-ecshost

ess-node-000000000-ecshost、ess-node-000000001-ecshost、ess-node-000000002-ecshost

  • 擴充有序數值:未配置ess_extend_begin或者ess_extend_bits時,ess_extend_begin預設為0ess_extend_bits預設為3

  • 基礎有序數值:未配置begin_number或者bits時,begin_number預設為0bits預設為6

ess-node-(0,1)[0,1]-ecshost

ess-node-08-ecshost

ess-node-10-ecshost、ess-node-11-ecshost、ess-node-12-ecshost

  • 非首次擴容時,基礎有序數值從伸縮組內已有主機名稱中基礎有序數值的最大值開始增加。

  • 當伸縮組內已有主機名稱的最大有序數值中的基礎有序數值與即將擴容的ECS執行個體數量之和,大於等於基礎有序數值的最大值,會出現ECS主機名稱非連續(即斷續)增長情況。為避免發生此情況,建議基礎有序數值的位元最少配置為3。

ess-node-(0,1)[0,1]-ecshost

ess-node-Z9-ecshost

伸縮活動報錯並停止擴容

  • 非首次擴容時,基礎有序數值從伸縮組內已有主機名稱中基礎有序數值的最大值開始增加。

  • 在擴充有序數值和基礎有序數值都達到上限後,若還有擴容需求,伸縮活動會報錯,並停止擴容。此時,您需要重新設定產生主機名稱的規則。

ess-node-(0,1)[0,3]

ess-node-0099-ecshost

ess-node-0100、ess-node-0101、ess-node-0103

  • 非首次擴容時,基礎有序數值從伸縮組內已有主機名稱中基礎有序數值的最大值開始增加。

  • 系統預設依次遞增,但是如果存在擴容的ECS執行個體無法啟動(此例主機名稱為ess-node-0102),會被伸縮組移除後再擴容一台新的ECS執行個體,所以伸縮組內主機名稱可能斷續遞增。

ess-node-(0,1)[99,1]-ecshost

ess-node-0000099-ecshost

ess-node-0000100-ecshost、ess-node-0000101-ecshost、ess-node-0000102-ecshost

  • 非首次擴容時,基礎有序數值從伸縮組內已有主機名稱中基礎有序數值的最大值開始增加。

  • 當指定的begin_number位元大於bits的取值時,bits預設為6