全部產品
Search
文件中心

Auto Scaling:快速搭建彈性高可用DeepSeek-R1-Distill-Qwen-7B推理服務

更新時間:Apr 28, 2025

結合ECI伸縮組與應用型負載平衡器ALB,快速搭建跨可用性區域彈性高可用的大模型推理服務。

方案概覽

本方案採用跨可用性區域高可用架構,將搭載推理服務的ECI執行個體分散部署於單地區的多個可用性區域,實現可用性區域級容災。通過負載平衡進行智能流量調度,並使用Object Storage Service作為模型倉庫,確保商務持續性與資料可靠性。本方案架構如圖所示。

方案優勢

  • 避免單點故障(高可用):使用多台伺服器來分攤業務負載,從而提高服務承載能力,避免出現單一服務故障造成的服務中斷。

  • Auto Scaling:使用伸縮組管理推理服務叢集可以一鍵調整ECI數量,快速橫向擴充。同時還支援設定自動調整的機制,實現根據業務負載按需擴充

搭建流程

  1. 規劃叢集網路。建立Virtual Private Cloud和多個可用性區域的交換器,以搭建叢集的基礎網路環境。

  2. 建立Object Storage ServiceBucket。該Bucket用於儲存模型權重檔案。

  3. 配置執行個體RAM角色。後續ECI執行個體將扮演該角色,訪問步驟2中建立的Object Storage ServiceBucket。

  4. 準備鏡像緩衝。在ECI控制台建立鏡像緩衝以加快執行個體啟動速度,並將模型權重檔案下載到Object Storage ServiceBucket。

  5. 建立應用負載平衡ALB執行個體。該ALB執行個體將作為服務訪問入口。

  6. 建立伸縮組。建立伸縮組並綁定ALB,確保新擴容的ECI執行個體自動加入ALB的後端伺服器組。

  7. 開啟服務。調整伸縮組的期望執行個體數以啟動服務,並等待服務啟動完成。

1. 規劃叢集網路

首先需要規劃叢集網路,並根據規劃建立專用網路交換器。為實現高可用性,請儘可能將ECI等資源分布在多個可用性區域,以規避單個可用性區域故障導致的服務不可用。本方案以雙可用性區域為例,您需要建立一個Virtual Private Cloud以及兩個可用性區域的交換器。操作步驟如下:

您也可以複用已有的Virtual Private Cloud,以跳過該步驟。
  1. 控制台。根據以下指引建立1個專用網路及2個交換器。

    ①②:單擊建立專用網路

    image

    ③:地區華東1(杭州)。

    ④:名稱vpc-ess-hangzhou

    ⑤:IPv4網段。選擇使用192.168.0.0/16。

    image

    交換器1:

    ⑥:名稱vSwitch-j

    ⑦:可用性區域。杭州可用性區域J。

    ⑧:IPv4網段。192.168.0.0/24。

    ⑨:單擊添加建立交換器2。

    image

    交換器2:

    ⑩:名稱vSwitch-k

    ⑪:可用性區域。杭州可用性區域K。

    ⑫:IPv4網段。192.168.1.0/24。

    image

  2. 完成配置後單擊確定,等待專用網路建立完成。

2. 建立Object Storage ServiceBucket

網路環境搭建完成後,需建立Object Storage Service的儲存空間(Bucket),用於儲存模型權重檔案,後續ECI執行個體會從該Bucket中讀模數型權重檔案。操作步驟如下:

您也可以複用已有的Object Storage Service的Bucket,以跳過該步驟。
  1. Object Storage Service控制台建立Bucket。

    關鍵配置項說明如下,未提及配置項保持預設。

    ①:單擊建立Bucket

    ②:Bucket 名稱。該Bucket名稱在後續掛載儲存空間時會用到。

    ③:地區。選擇有地區屬性,地區需與ECI執行個體所在地區保持一致,本樣本為華東1(杭州)

    ECI執行個體支援通過內網訪問同地區的Object Storage ServiceBucket,內網訪問不會產生流量費用,具體說明,請參見ECS執行個體通過OSS內網地址訪問OSS資源

    image

  2. 完成配置後單擊完成建立

3. 建立執行個體RAM角色

本步驟需要建立執行個體RAM角色,並為該角色設定訪問Object Storage ServiceBucket的許可權,後續ECI執行個體將扮演該角色,讀取Bucket中的模型權重檔案。操作步驟如下:

  1. 控制台建立執行個體RAM角色。關鍵配置項說明如下。

    ①:單擊建立角色

    image

    ②:信任主體類型。選擇雲端服務

    ③:信任主體名稱。選擇Elastic Compute Service

    ④:單擊確定後,根據介面提示設定執行個體RAM角色的名稱。

    image

  2. 控制台建立以下自訂權限原則。

    ①:單擊建立權限原則

    ②:單擊指令碼編輯

    image

    image

    ③:該策略代表某個Bucket的全部許可權。權限原則指令碼內容如下。

    重要

    設定以下自訂策略時,請將<bucket_name>替換為您所建立的儲存空間的Bucket 名稱

    {
        "Version": "1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": "oss:*",
                "Resource": [
                    "acs:oss:*:*:<bucket_name>",
                    "acs:oss:*:*:<bucket_name>/*"
                ]
            }
        ]
    }

    完成配置後單擊確定,根據介面提示設定權限原則名稱。

  3. 控制台為執行個體RAM角色授權。

    ①②:單擊新增授權

    ③:授權主體。選擇之前建立的執行個體RAM角色。

    ④:權限原則。選擇之前建立的自訂權限原則。

    image

    完成配置後單擊確認新增授權

4. 準備鏡像緩衝和模型權重檔案

由於本方案中ECI執行個體使用的鏡像檔案較大,因此需要在ECI控制台建立鏡像緩衝,以加快執行個體啟動速度。同時還需要將模型權重檔案下載到Object Storage ServiceBucket,以提升模型載入速度。

  1. 控制台建立ECI鏡像緩衝。

    ①②:單擊建立鏡像緩衝

    image

    ③④:地區及可用性區域。地區與步驟1中VPC地區保持一致,可用性區域與步驟1中建立的交換器可用性區域保持一致(任選一個)。

    ⑤⑥:網路。選擇步驟1中建立的VPC和交換器(交換器任選一個)。

    ⑦:Elastic IP Address。選擇已有Elastic IP Address,若沒有,請單擊Elastic IP Address控制台開始建立。建立完成後,單擊image重新整理後重新選擇Elastic IP Address。

    ⑧:安全性群組。選擇一個安全性群組,如果沒有安全性群組,請單擊建立安全性群組,建立完成後,需回到該頁面重新選擇安全性群組。

    ⑨:鏡像緩衝名。vllm。

    ⑩:緩衝大小。100GB。

    ⑪:鏡像egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm

    ⑫:版本號碼0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04

    image

    image

    等待鏡像建立完成。鏡像緩衝建立需15分鐘左右,請耐心等待。您可以在控制台鏡像快取頁面,查看建立進度。

    image

  2. 控制台啟動一台臨時ECI執行個體,用於將模型權重檔案下載到Object Storage Service。

    ①②:單擊建立彈性容器組

    image

    ③:付費模式。隨用隨付。

    ④:地區。地區與步驟1中VPC地區保持一致,本文為華東1(杭州)為例。

    ⑤:專用網路。選擇步驟1中建立的Virtual Private Cloud。

    ⑥:交換器。選擇步驟1中建立的交換器。

    ⑦:安全性群組。根據介面提示設定。

    image

    容器組配置:

    ⑧:CPU。2vCPU。

    ⑨:記憶體。4GiB。

    ⑩:容器運行退出後。選擇失敗後重啟。

    image

    容器組進階配置:

    ⑪:展開進階配置

    ⑫:開啟自動匹配鏡像緩衝

    ⑬:選擇並添加OSS持久化儲存

    ⑭:名稱oss-data

    ⑮:Bucket。選擇步驟2建立的Bucket。

    ⑯:RAM角色。選擇步驟3建立的執行個體RAM角色。

    ⑰:臨時儲存大小。設定為100GiB。

    image

    容器配置:

    ⑱:鏡像egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm

    ⑲:鏡像版本0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04

    ⑳:啟動命令。將以下命令分別複製到如圖所示位置。

    /bin/bash
    -c
    git-lfs clone https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-7B.git /oss-data/DeepSeek-R1-Distill-Qwen-7B
    該命令含義:使用git-lfs將模型從魔搭社區的倉庫複製到/oss-data/DeepSeek-R1-Distill-Qwen-7B目錄下。

    image

    容器進階配置:

    ㉑:展開container-1 進階配置

    ㉒:CPU。2vCPU。

    ㉓:記憶體。4GiB。

    ㉔:開啟儲存功能並添加掛載。

    ㉕:選擇oss-data

    ㉖:容器內掛載路徑/oss-data

    ㉗:單擊下一步: 其他設定

    image

    ㉘:Elastic IP Address。選擇自動建立

    ㉙:頻寬峰值設定為200Mbps。

    ㉚:單擊配置確認,根據介面提示完成ECI執行個體的建立。

    image

    ECI建立完成後,會自動開始下載模型權重檔案。請耐心等待。您可以在等待期間,同時進行步驟5步驟6的操作。

    如何判斷下載已完成

    下載完成後,在ECI控制台中,ECI執行個體的狀態會顯示為運行成功

    image

    Object Storage Service控制台中,在Bucket下,會產生DeepSeek-R1-Distill-Qwen-7B檔案夾。

    image

5. 建立應用負載平衡ALB執行個體

在開始建立ECI叢集前,需先建立應用型負載平衡ALB作為叢集訪問入口。具體操作如下:

  1. 控制台建立ALB執行個體。

    ①②:單擊建立應用型負載平衡

    image

    ③:地區。選擇華東1(杭州),與步驟1中建立的VPC保持一致。

    ④:執行個體網路類型。選擇公網,選擇公網才能對外提供服務。

    ⑤:VPC。選擇步驟1中建立的VPC。

    ⑥:可用性區域交換器。選擇步驟1中建立的交換器。

    ⑦:執行個體名稱alb-eci-deepseek-7B

    ⑧:單擊立即購買,然後根據介面提示完成ALB執行個體建立操作。

    image

    image

  2. 控制台為ALB執行個體建立監聽及後端伺服器組。

    ①②:找到上一步建立的ALB執行個體,單擊操作列下的建立監聽

    如果沒有找到ALB執行個體,請在頁面左上方切換地區。

    image

    ③:選擇HTTP協議。

    ④:監聽連接埠設定為80。

    ⑤:單擊下一步

    ⑥:單擊建立伺服器組

    image

    image

    ⑦:伺服器群組類型。選擇伺服器類型

    ⑧:伺服器組名稱eci-deepseek-7B

    ⑨:VPC。選擇步驟1建立的VPC,會自動選中。

    ⑩:選擇後端協議。HTTP。

    ⑪⑫:開啟健全狀態檢查

    ⑬:健全狀態檢查方法。選擇GET

    ⑭:健全狀態檢查路徑。設定為/health。後續推理服務啟動後,會通過檢查/health路徑判斷服務啟動狀態。

    ⑮⑯⑰:單擊建立,單擊下一步,單擊提交,等待建立完成。

    image

    image

    image

    image

    image

6. 建立伸縮組

建立伸縮組並綁定ALB,伸縮組負責自動建立和管理ECI執行個體,並確保新擴容的ECI執行個體自動加入ALB的後端伺服器組以實現負載平衡。

  1. Auto Scaling控制台建立伸縮組並關聯ALB。

    ①②③:單擊建立伸縮組

    image

    ④:伸縮組名稱deepseek-7B-servers

    ⑤:伸縮群組類型。選擇ECI

    ⑥:組內執行個體配置資訊來源。選擇從零開始建立

    ⑦:組內最小執行個體數。設定為0,伸縮組執行個體數下限。

    ⑧:組內最大執行個體數。設定為10,伸縮組執行個體數上限。

    ⑨:專用網路。選擇步驟1建立的VPC。

    ⑩:交換器。選擇步驟1建立的所有交換器。

    ⑪:單擊展開進階配置

    image

    進階配置:

    ⑫⑬:開啟期望執行個體數,並配置期望執行個體數為0,代表先建立一個空的伸縮組。

    ⑭:單擊添加伺服器組,並選擇伺服器組類型ALB

    ⑮:伺服器組。選擇步驟5建立的伺服器組。

    ⑯:連接埠。選擇30000。後續ECI中部署的推理服務會使用該連接埠對外提供服務。

    ⑰:單擊建立。等待伸縮組建立完成,可根據介面提示建立伸縮配置。

    image

    image

  2. Auto Scaling控制台建立伸縮配置。

    伸縮配置用於定義伸縮組中執行個體的模板,伸縮組在擴容時,會以伸縮配置為模板建立新執行個體。操作步驟如下。

    ①②③:找到上一步建立的伸縮組,單擊伸縮組ID進入伸縮組詳情頁。

    image

    ④⑤⑥:單擊執行個體配置來源 > 伸縮配置 > 建立伸縮配置

    image

    ⑦:付費模式。選擇隨用隨付

    ⑧:選擇安全性群組

    image

    容器組配置:

    ⑨:選擇指定規格

    ⑩:執行個體規格ecs.gn7i-c8g1.2xlarge

    ⑪:勾選自動匹配鏡像緩衝

    ⑫:展開進階配置

    ⑬⑭⑮⑯:選擇OSS持久化儲存。並配置Bucket和執行個體RAM角色

    ⑰:臨時儲存大小。100GiB。

    ⑱:GPU驅動版本tesla=550

    image

    容器配置:

    ⑲:鏡像egs-registry.cn-hangzhou.cr.aliyuncs.com/egs/vllm

    ⑳:鏡像版本0.6.4.post1-pytorch2.5.1-cuda12.4-ubuntu22.04

    ㉑:啟動命令。將以下命令分別複製到如圖所示位置。

    /bin/bash
    -c
    vllm serve /oss-data/DeepSeek-R1-Distill-Qwen-7B --port 30000 --served-model-name DeepSeek-R1-Distill-Qwen-7B --tensor-parallel-size 1 --max-model-len=16384 --enforce-eager --dtype=half --api-key api-key-example-abc123
    該命令代表從Object Storage Service中讀模數型權重檔案,並在30000連接埠啟動推理服務,api-key為api-key-example-abc123

    image

    ㉒:展開container-1 進階配置

    ㉓:CPU。設定為8vCPU。

    ㉔:記憶體。設定為30GiB。

    ㉕:GPU。設定為1。

    ㉖㉗:開啟儲存功能並添加儲存。

    ㉘:容器內掛載路徑。/oss-data

    ㉙:單擊下一步: 其他設定

    image

    ㉚:Elastic IP Address。選擇自動建立

    ㉛:峰值頻寬。200Mbps。

    ㉜:單擊配置確認,並根據介面提示完成伸縮配置的建立。

    image

    ㉝㉞㉟:根據介面提示啟用伸縮配置並啟動伸縮組。

    image

    image

    image

7. 開啟服務

重要

進行本步驟操作前,請確保步驟4中的模型權重檔案已完成下載。

在完成上述所有步驟後,您可以通過調整伸縮組期望執行個體數,觸發伸縮組的擴容活動。本文以擴容5台ECI執行個體為例,具體操作如圖所示。

調整期望執行個體數後,建立執行個體的操作可能會有延遲。您可以在伸縮活動頁簽下,查看伸縮組中進行中的伸縮活動。

image

image

後續步驟

使用Dify與大模型對話

  1. 登入Dify

  2. 添加模型供應商

    1. 點擊頭像,選擇設定。點擊左側模型供應商,在右側找到OpenAI-API-compatible,點擊添加模型

      如果沒有安裝,請根據介面提示安裝模型供應商。

      image

      image

    2. 完成以下配置後單擊儲存

      • 模型類型:LLM。

      • 模型名稱DeepSeek-R1-Distill-Qwen-7B

      • API Keyapi-key-example-abc123,與您在步驟6容器組配置的啟動命令中的api-key配置保持一致。

      • API endpoint URL

        重要

        請將<alb_domain_name>替換為您ALB執行個體的DNS名稱

        查看ALB執行個體的DNS名稱

        進入控制台,找到步驟5建立的ALB執行個體,DNS名稱位置如圖所示。

        image

        http://<alb_domain_name>/v1
  3. 建立聊天助手應用並對話。

    image

    image

    image

釋放本文資源

您可以參考以下步驟,按需釋放本文相關資源,避免持續計費。

  1. 刪除伸縮組。刪除步驟6建立的伸縮組,其自動建立的執行個體也將會隨之釋放。

  2. 釋放ALB執行個體刪除伺服器組。刪除步驟5建立的應用型負載平衡ALB執行個體以及伺服器組。

  3. 釋放隨用隨付EIP執行個體。刪除步驟4中建立鏡像緩衝時建立的EIP執行個體。

  4. 刪除鏡像緩衝刪除ECI執行個體。刪除步驟4中建立的鏡像緩衝,以及用於下載模型檔案的臨時ECI執行個體

  5. 刪除執行個體RAM角色刪除自訂權限原則。刪除步驟3建立執行個體RAM角色以及自訂權限原則。

  6. 刪除儲存空間。刪除步驟2建立的Object Storage Service的儲存空間。

  7. 刪除專用網路。刪除步驟1建立的專用網路。

應用於生產環境

如果要將該方案應用於生產,您可以參考以下建議完善架構。

  • 建立自動調整機制,按業務負載自動擴縮容伸縮組執行個體數量,節省成本。例如基於GPU記憶體使用量率配置警示任務實現自定擴縮容、基於ALB的單機QPS監控指標自動擴縮容

  • 使用NAT Gateway,無需為所有執行個體配置Elastic IP Address。本樣本中,ECI執行個體通過配置Elastic IP Address實現拉取公網鏡像。在實際生產中,您可以使用NAT Gateway提供ECI執行個體的公網訪問能力。

  • 為ALB佈建網域名並添加HTTPS協議支援。推薦使用自訂網域名作為叢集訪問入口,同時配置HTTPS協議支援以提升安全性。更多資訊,請參見為ALB添加CNAME記錄添加HTTPS監聽