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

根據實時負載自動擴縮容ECI實例

ECI支持搭配使用阿里云彈性伸縮(ESS)服務,實現根據實時負載動態增加或者減少ECI實例,從而提升資源利用率和系統可用性,降低使用成本。本文以Spring Boot容器應用為例,演示如何配置負載均衡和彈性伸縮,實現根據實時負載自動擴縮容ECI實例。

背景信息

本文將通過Spring Boot容器應用來演示以下場景:

  • 通過阿里云彈性伸縮和負載均衡服務,實現根據實時負載自動擴縮容ECI實例。

  • 結合ECI的鏡像緩存、日志采集、監控等能力驗證Serverless場景下的容器彈性能力。

  • 借助彈性伸縮原生的擴縮容能力進行應用的灰度升級。

本文示例中各組件的關系如下圖所示:彈性伸縮

配置說明

配置應用鏡像

本文示例基于Spring Boot實現了一個簡易的HTTP Server,可以監聽外部請求并為每個請求消耗5s左右的CPU時間。源代碼詳見SpringBootDemo。

說明

示例采用TCP 8761端口作為應用監聽的端口,您也可以自定義端口。

  1. 編譯應用得到.jar文件,然后通過Docker打包成鏡像。

    FROM java:8
    ADD target/*.jar /app.jar
    ENTRYPOINT ["java", "-jar", "/app.jar"]
  2. 將打包好的鏡像推送到您的鏡像倉庫中。

配置負載均衡

應用一般采用分布式多副本部署,當應用需要對外提供服務時,則需要負載均衡來實現流量分發,本文使用阿里云負載均衡SLB服務來實現(SLB分為ALB和CLB,本文以CLB為例)。相關操作如下:

  1. 登錄傳統型負載均衡CLB控制臺。

  2. 創建CLB實例。

    CLB實例是負載均衡服務實體,用于接收流量并進行分發。具體操作,請參見創建CLB實例。

  3. 配置監聽。

    監聽可以檢查客戶端請求,并將請求發送到后端服務器。由于示例應用開啟的端口為TCP 8761端口,則CLB實例需要監聽的后端端口為TCP 8761端口。具體操作,請參見添加TCP監聽。

    ess-eci-1

配置伸縮組

  1. 登錄彈性伸縮控制臺。

  2. 創建彈性伸縮組。

    1. 在左側導航欄,單擊伸縮組管理

    2. 在頂部菜單欄,選擇地域。

    3. 單擊創建伸縮組。

    4. 在彈出的對話框中完成伸縮組配置。

      創建時需要注意的參數如下表所示。更多信息,請參見創建伸縮組。

      參數

      描述

      示例

      伸縮組類型

      伸縮組內的實例類型。此處必須選擇ECI

      ECI

      組內實例配置信息來源

      對應伸縮配置,包含擴容時創建的實例的配置信息。

      • 選擇已有實例:采用已有實例的信息,創建對應的伸縮配置。

      • 從零開始創建:等伸縮組創建完成后再進行伸縮配置。

      從零開始創建

      組內最小實例數

      伸縮組內的實例數量下限。當實例數量低于該下限時,伸縮組會自動添加實例,使得伸縮組內的實例數量等于下限。

      1

      組內最大實例數

      伸縮組內的實例數量上限。當實例數量高于該上限時,伸縮組會自動移出實例,使得伸縮組內的實例數量等于上限。

      50

      專有網絡

      選擇ECI實例所屬的專有網絡。

      vpc-2zeghwzptn5zii0******

      選擇交換機

      選擇ECI實例所示的交換機,建議選擇多個交換機實現多可用區功能。

      • vsw-2zevanrscmoiaxr******

      • vsw-2ze23nqzig8inpr******

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

      關聯CLB后,加入伸縮組的實例會自動添加為CLB實例的后端服務器。此處選擇已創建的CLB實例。

      lb-2zerkwijjdblq4n******

  3. 創建并啟用伸縮配置。

    1. 伸縮組管理頁面,找到目標伸縮組,單擊組內實例配置信息來源列對應的添加伸縮配置

    2. 在彈出頁面完成伸縮配置。

      創建時需要注意的參數如下表所示。更多信息,請參見創建伸縮配置(ECI實例)

      配置模塊

      參數

      描述

      容器組配置

      CPU、內存

      請根據業務需要選擇vCPU和內存規格。本文示例為4 vCPU、8 GiB內存。

      存儲

      如果應用需要使用配置項,或者需要NAS等外部存儲,則需要添加數據卷。更多信息,請參見數據卷

      臨時存儲大小

      ECI實例默認提供30 GiB的免費存儲空間,如果無法滿足需求,您可以額外增加臨時存儲空間。更多信息,請參見自定義臨時存儲空間大小

      鏡像緩存

      鏡像緩存用于加速拉取鏡像。建議您開啟該功能,開啟后在后續擴容ECI實例時無需拉取相同鏡像,從而提高擴容速度。更多信息,請參見鏡像緩存概述。

      容器配置

      鏡像

      選擇制作好的應用容器鏡像以及版本。

      啟動命令

      如果在鏡像中沒有設置好啟動命令,您可以在此處配置,否則容器可能不會啟動或者出現啟動異常而退出。更多信息,請參見設置容器啟動命令和參數。

      環境變量

      除了鏡像自帶的環境變量外,您可以自定義添加其他環境變量。建議您采用環境變量來自定義配置日志采集,更多信息,請參見自定義配置ECI日志采集。

      示例如下圖所示,表示將ECI實例的標準輸出日志采集到自定義的store-ess配置中。環境變量

      啟用伸縮配置后,系統將自動創建ECI實例,以滿足伸縮組內的最小實例數要求,并將組內所有ECI實例加入到CLB的后端服務器組中。

  4. 創建伸縮規則。

    1. 伸縮組管理頁面,找到目標伸縮組,單擊伸縮組ID。

    2. 單擊伸縮規則與報警任務頁簽。

    3. 伸縮規則頁簽下,單擊創建伸縮規則。

    4. 在彈出的對話框中,完成伸縮規則配置。

      伸縮規則用于觸發伸縮活動,分為簡單規則和目標追蹤規則等,本文以目標追蹤規則為例,采用CPU使用率作為擴縮容指標,目標值為60%,創建時需要注意的參數如下表所示。

      參數

      描述

      示例

      規則類型

      分為簡單規則和目標追蹤規則:

      • 簡單規則:指定增加、減少的實例數,或者將實例數量調整到指定值。

      • 目標追蹤規則:選擇某一監控指標并設置目標值,系統將自動增加或者減少實例數,使得監控指標值維持在目標值附近。

      目標追蹤規則

      指標類型

      設置目標追蹤規則時,需選擇要監控的指標。

      CPU使用率

      目標值

      設置目標追蹤規則時,需設置監控指標的目標值。

      60

      實例預熱時間

      處于預熱狀態的實例正常加入伸縮組,但是不會向云監控上報監控數據。動態計算需要擴縮容的實例數量時,處于預熱狀態的實例不計入現有實例數量,以免造成指標值波動。

      30

      擴容報警觸發的閾值次數

      觸發擴容時,需要滿足規則條件的次數。

      1

      縮容報警觸發的閾值次數

      觸發縮容時,需要滿足規則條件的次數。

      10

測試彈性伸縮效果

默認情況下,彈性伸縮組保持初始狀態,即組內實例數量為期望的實例數,不具備彈性伸縮的能力。配置伸縮規則后,當監控指標不滿足規則條件時,將自動進行彈性伸縮。

由于示例的伸縮規則中以CPU使用率作為擴縮容指標,目標值為60%,擴容報警觸發的閾值次數為1,縮容報警觸發的閾值次數為10 ,則在CPU使用率出現一次60%以上時,將觸發自動擴容;在CPU使用率連續10次低于60%時,將觸發自動縮容。

測試過程如下:

  1. 模擬壓測,按500次/分鐘的頻次向應用發起請求。

    模擬壓測的示例代碼可參見HttpClientHelper。

    1. 日志服務控制臺查看日志,可以看到應用容器處理每個請求時,會打印一條輸出日志。

      在創建伸縮配置時已通過環境變量配置日志采集,因此容器的標準輸出日志將采集到配置的store-ess中。ess-eci-2

    2. 彈性容器實例控制臺查看ECI實例的監控指標,可以看到CPU使用率已達到100%(圖中示例中單個ECI實例含4個vCPU)。ess-eci-3

    3. 查看是否已成功擴容。

      • 已觸發擴容ess-eci-4

      • 擴容成功ess-eci-5本示例使用的應用鏡像大約250 MB,由于在創建伸縮配置時開啟了自動鏡像緩存功能,擴容單個ECI實例時僅需要幾秒。ess-eci-6

      • 擴容后的監控指標

        擴容后,CPU使用率穩定在50%~60%之間(圖中示例中單個ECI實例含4個vCPU)。

        ess-eci-7

  2. 停止發送請求。

    此時應用負載降低到0,將觸發縮容??s容成功后,伸縮組中僅保留最小實例數。

配置應用升級

應用一般需要進行升級發布,目前彈性伸縮暫不支持基于ECI的滾動升級。您可以通過以下方式灰度升級應用版本,假設應用版本要從v4升級到v5版本,配置流程如下:

  1. 以彈性伸縮組v4為基礎,克隆一個新的彈性伸縮組,命名為v5。ess-eci-8ess-eci-10

  2. 修改彈性伸縮組v4和v5的設置,實現v5擴容,v4縮容。

    1. 修改彈性伸縮組v5的伸縮規則,將CPU使用率閾值改為30%,即CPU高于30%就觸發擴容。

    2. 修改彈性伸縮組v4的最小實例數為0。

    由于兩個伸縮組的擴縮容規則是相沖突的,所以v5會一直擴容,導致CPU使用率持續降低,最終觸發v4縮容。過程如下:ess-eci-9一段時間后,v4的實例數將縮容至0臺,v5的實例數將擴容至CPU使用率為30%左右。ess-eci-11

  3. 修改彈性伸縮組v5的伸縮規則,將CPU使用率閾值改回到60%。

    由于整體負載水平較低(CPU使用率30%左右),因此需要修改v5的伸縮規則,將CPU使用率閾值改回到60%,此時v5的實例數將縮容至正常情況。ess-eci-12

配置完成后,查看日志,可以看到一個基于ESS自動擴縮容能力的灰度發布過程。

  • v4ess-eci-13

  • v5ess-eci-14

該過程具備以下特點:

  • 灰度發布過程中,應用負載不會突然增長,過渡比較平穩。

  • 灰度發布過程完全可控。借助ESS的實例數量管理能力還可以精準控制新舊版本的實例副本比例,即流量比例。發布過程中隨時可以直接回滾到之前版本,并且容器鏡像自帶的版本管理方便隨時回滾到之前的任意版本。

  • 借助ECI容器生命周期的postStart和preStop hook實現應用優雅上下線。

相關文檔

如需了解更多關于彈性伸縮的功能,請參見彈性伸縮常用操作導航。