設(shè)置有序且唯一的實例名稱或主機(jī)名稱規(guī)則
本文介紹在伸縮配置中設(shè)置實例名稱或主機(jī)名稱的規(guī)則,以便擴(kuò)容時為擴(kuò)容的ECS實例生成有序且唯一的實例名稱或主機(jī)名稱,有助于您更好地管理ECS實例。
背景信息
根據(jù)伸縮規(guī)則,伸縮組支持一次擴(kuò)容一臺或者多臺ECS實例,也可以多次擴(kuò)容生成多臺ECS實例。您可以在伸縮配置或者啟動模板中設(shè)置實例名稱或主機(jī)名稱的規(guī)則。
不同場景下,設(shè)置實例名稱或主機(jī)名稱規(guī)則的方案有所差異(如下表所示),本文介紹的設(shè)置方案僅適用于場景一。
場景描述
方案
相關(guān)鏈接
場景一:要求伸縮組內(nèi)所有擴(kuò)容的ECS實例的實例名稱或主機(jī)名稱有序且唯一。
必須在伸縮配置中按照規(guī)則設(shè)置實例名稱或主機(jī)名稱,不能選擇啟動模板方式進(jìn)行設(shè)置。
重要伸縮組的實例名稱或主機(jī)名稱會有序遞增,但不一定保證連續(xù)遞增。例如,擴(kuò)容的主機(jī)名稱分別為ess-node-0999、ess-node-1000、ess-node-1002,說明主機(jī)名稱為ess-node-1001的ECS實例未正常啟動,伸縮組將此ECS實例視為不健康實例,移除此ECS實例后,伸縮組重新擴(kuò)容一臺ECS實例,且主機(jī)名稱為ess-node-1002。
場景二:僅關(guān)注單次擴(kuò)容的ECS實例的實例名稱或主機(jī)名稱唯一且有序,不需要伸縮組內(nèi)所有的ECS實例的實例名稱或主機(jī)名稱唯一。
推薦按照指定排序規(guī)則的方法進(jìn)行配置。
場景三:對擴(kuò)容的ECS實例的實例名稱或主機(jī)名稱沒有要求。
您無需按照場景一或場景二中的命名規(guī)則配置,設(shè)置普通名稱即可。
例如,設(shè)置主機(jī)名為hostname,則擴(kuò)容的所有ECS實例中主機(jī)名稱全部為hostname。
無
方式一:在控制臺配置有序且唯一的實例名稱或主機(jī)名稱
創(chuàng)建伸縮組。
具體操作,請參見創(chuàng)建伸縮組。
創(chuàng)建伸縮配置,并在創(chuàng)建成功后啟用伸縮配置。
具體操作,請參見創(chuàng)建伸縮配置(ECS實例)。其中,在高級設(shè)置區(qū)域的實例名稱和主機(jī)名處,您需要指定命名規(guī)則。
例如,實例名稱后輸入
ess-node-(AUTO_INCREMENT)[0,3]
,主機(jī)名處輸入ess-node-(AUTO_INCREMENT)[0,3]-ecshost
。說明本例中選用的命名規(guī)則是固定增長排序,更多信息,請參見(推薦)固定增長排序。如果您希望生成的實例名稱或主機(jī)名稱按照動態(tài)排序的規(guī)則呈現(xiàn),更多信息,請參見動態(tài)擴(kuò)展排序。
啟用伸縮組。
具體操作,請參見啟用伸縮組。
創(chuàng)建并執(zhí)行伸縮規(guī)則。
創(chuàng)建伸縮規(guī)則。
具體操作,請參見創(chuàng)建伸縮規(guī)則。
本步驟以簡單規(guī)則為例。例如,執(zhí)行該伸縮規(guī)則后,伸縮組內(nèi)ECS實例數(shù)量會增加3臺。
執(zhí)行伸縮規(guī)則。
具體操作,請參見執(zhí)行伸縮規(guī)則。
伸縮活動執(zhí)行成功后,增加的3臺ECS實例中的實例名稱和主機(jī)名稱顯示如下:
實例名稱:ess-node-000、ess-node-001、ess-node-002
主機(jī)名稱:ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost
方式二:調(diào)用API配置有序且唯一的實例名稱或主機(jī)名稱
調(diào)用API CreateScalingGroup接口創(chuàng)建伸縮組。
具體操作,請參見CreateScalingGroup - 創(chuàng)建一個伸縮組。
調(diào)用API CreateScalingConfiguration接口創(chuàng)建伸縮配置。
具體操作,請參見CreateScalingConfiguration - 創(chuàng)建一個ECS類型伸縮配置。其中,在請求參數(shù)中,您需要設(shè)置InstanceName和HostName參數(shù)值。
例如,設(shè)置InstanceName為
ess-node-(AUTO_INCREMENT)[0,3]
,HostName為ess-node-(AUTO_INCREMENT)[0,3]-ecshost
。說明本例中選用的命名規(guī)則是固定增長排序,更多信息,請參見(推薦)固定增長排序。如果您希望生成的實例名稱或主機(jī)名稱按照動態(tài)排序的規(guī)則呈現(xiàn),更多信息,請參見動態(tài)擴(kuò)展排序。
調(diào)用API EnableScalingGroup接口啟動伸縮組。
具體操作,請參見EnableScalingGroup - 啟用一個伸縮組。
創(chuàng)建并執(zhí)行伸縮規(guī)則。
調(diào)用API CreateScalingRule接口創(chuàng)建伸縮規(guī)則。
具體操作,請參見CreateScalingRule - 創(chuàng)建一條伸縮規(guī)則。
本步驟以創(chuàng)建簡單規(guī)則為例。例如,執(zhí)行該伸縮規(guī)則后,伸縮組內(nèi)ECS實例數(shù)量會增加3臺。
調(diào)用API ExcuteScalingRule接口執(zhí)行伸縮規(guī)則。
具體操作,請參見ExecuteScalingRule - 執(zhí)行一條伸縮規(guī)則。
執(zhí)行完成后,增加的3臺ECS實例中的實例名稱和主機(jī)名稱顯示如下所示:
實例名稱:ess-node-000、ess-node-001、ess-node-002
主機(jī)名稱:ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost
(推薦)固定增長排序
參數(shù)格式為name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix。
由于實例名稱或主機(jī)名稱的設(shè)置規(guī)則和邏輯是一樣的,以下內(nèi)容均以主機(jī)名稱規(guī)則說明為例。
字段名稱 | 是否必選 | 配置說明 | 示例 |
name_prefix | 是 | 指定主機(jī)名稱的前綴。 | ess-node- |
(AUTO_INCREMENT) | 是 | 固定取值,用來標(biāo)識此排序方式。 | (AUTO_INCREMENT) |
[begin_number,bits] | 是 | 指定主機(jī)名稱的有序數(shù)值。設(shè)置后,主機(jī)名稱的有序數(shù)值遞增。 重要 [begin_number,bits]字段中不能有空格,且系統(tǒng)默認(rèn)依次遞增,但是如果存在擴(kuò)容的ECS實例無法啟動,會被伸縮組移除后再擴(kuò)容一臺新的ECS實例,所以伸縮組內(nèi)ECS實例的主機(jī)名稱可能斷續(xù)遞增。
說明 bits建議最少為3,否則容易達(dá)到有序數(shù)值的上限。在達(dá)到上限后,若還有擴(kuò)容需求,伸縮活動會報錯,并停止擴(kuò)容。此時,您需要重新設(shè)置生成主機(jī)名稱的規(guī)則。 | [0,6] |
name_suffix | 否 | 指定主機(jī)名稱的后綴。 | -ecshost |
命名示例 | 伸縮組現(xiàn)有主機(jī)名中最大序數(shù)值 | 主機(jī)名稱(以擴(kuò)容3臺ECS實例為例) | 說明 |
ess-node-(AUTO_INCREMENT)[0,3]-ecshost | 無 | ess-node-000-ecshost、ess-node-001-ecshost、ess-node-002-ecshost | 首次擴(kuò)容時,有序數(shù)值的位數(shù)為bits的值,有序數(shù)值從begin_number開始,然后根據(jù)擴(kuò)容ECS的臺數(shù)依次遞增。 |
| 無 | ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost | 未配置begin_number或者bits時,begin_number默認(rèn)為0,bits默認(rèn)為6。 |
ess-node-(AUTO_INCREMENT)[99,1]-ecshost | ess-node-000099-ecshost | ess-node-000100-ecshost、ess-node-000101-ecshost、ess-node-000102-ecshost |
|
ess-node-(AUTO_INCREMENT)[0,2]-ecshost | ess-node-99-ecshost | 伸縮活動報錯并停止擴(kuò)容 |
|
ess-node-(AUTO_INCREMENT)[0,4] | ess-node-0998-ecshost | ess-node-0999、ess-node-1000、ess-node-1002 |
|
動態(tài)擴(kuò)展排序
參數(shù)格式為name_prefix(ess_extend_begin,ess_extend_bits)[begin_number,bits]name_suffix。
由于實例名稱或主機(jī)名稱的設(shè)置規(guī)則和邏輯是一樣的,以下內(nèi)容均以主機(jī)名稱規(guī)則說明為例。
字段名稱 | 是否必選 | 配置說明 | 示例 |
name_prefix | 是 | 指定主機(jī)名稱的前綴。 | ess-node- |
(ess_extend_begin,ess_extend_bits) | 是 | 指定主機(jī)名稱的擴(kuò)展有序數(shù)值。當(dāng)伸縮組內(nèi)已有主機(jī)名中基礎(chǔ)有序數(shù)值等于最大值時,本參數(shù)增加一個值,基礎(chǔ)有序數(shù)值重新從0開始遞增,循環(huán)增加直至上限。
重要 若擴(kuò)展有序數(shù)值和基礎(chǔ)有序數(shù)值都達(dá)到上限后,伸縮組還有擴(kuò)容需求,伸縮活動會報錯,并停止執(zhí)行伸縮活動。此時,您需要重新設(shè)置生成主機(jī)名稱的規(guī)則。 (ess_extend_begin,ess_extend_bits)字段中不能有空格。當(dāng)指定的ess_extend_begin位數(shù)大于bits的取值時,bits默認(rèn)為3。 | (0,3) |
[begin_number,bits] | 是 | 指定主機(jī)名稱的基礎(chǔ)有序數(shù)值。設(shè)置后,本參數(shù)會遞增至最大值,再擴(kuò)容時,擴(kuò)展參數(shù)增加一個值,本參數(shù)從0開始遞增,循環(huán)增加直至上限。 重要 系統(tǒng)默認(rèn)依次遞增,但是如果存在擴(kuò)容的ECS實例無法啟動,會被伸縮組移除后再擴(kuò)容一臺新的ECS實例,所以伸縮組內(nèi)ECS實例的主機(jī)名稱可能斷續(xù)遞增。
重要
[begin_number,bits]字段中不能有空格。當(dāng)指定的begin_number位數(shù)大于bits的取值時,bits默認(rèn)為6。 | [0,6] |
name_suffix | 否 | 指定主機(jī)名稱的后綴。 | -ecshost |
命名示例 | 伸縮組現(xiàn)有最大命名主機(jī) | 主機(jī)名稱(以擴(kuò)容3臺ECS實例為例) | 說明 |
ess-node-(0,3)[0,3]-ecshost | 無 | ess-node-000000-ecshost、ess-node-000001-ecshost、ess-node-000002-ecshost | 首次擴(kuò)容時:
|
| 無 | ess-node-000000000-ecshost、ess-node-000000001-ecshost、ess-node-000000002-ecshost |
|
ess-node-(0,1)[0,1]-ecshost | ess-node-08-ecshost | ess-node-10-ecshost、ess-node-11-ecshost、ess-node-12-ecshost |
|
ess-node-(0,1)[0,1]-ecshost | ess-node-Z9-ecshost | 伸縮活動報錯并停止擴(kuò)容 |
|
ess-node-(0,1)[0,3] | ess-node-0099-ecshost | ess-node-0100、ess-node-0101、ess-node-0103 |
|
ess-node-(0,1)[99,1]-ecshost | ess-node-0000099-ecshost | ess-node-0000100-ecshost、ess-node-0000101-ecshost、ess-node-0000102-ecshost |
|