全部產品
Search
文件中心

Auto Scaling:為ECS執行個體掛載NAS檔案系統

更新時間:Jun 30, 2024

本教程介紹如何使用Auto Scaling生命週期掛鈎掛起ECS執行個體,並結合CloudOps Orchestration Service (OOS)的模板,實現為Linux系統的ECS執行個體自動掛載NAS檔案系統。

前提條件

  • 已建立伸縮組,並且伸縮組處於啟用狀態。

  • 已建立NAS檔案系統並添加掛載點,掛載點相關操作,請參見管理掛載點。掛載點滿足以下條件:

    • 如果伸縮組的網路類型為專用網路,掛載點的網路類型必須為專用網路,且和伸縮組位於同一個專用網路下。

    • 如果伸縮組的網路類型為傳統網路,掛載點的網路類型必須為傳統網路。

    • 掛載協議類型為NFS。

  • 已為OOS服務建立RAM角色。該RAM角色的可信實體必須為阿里雲服務,受信服務為CloudOps Orchestration Service,並且擁有執行OOS模板的許可權。具體操作,請參見為OOS服務設定RAM許可權

    說明

    本教程中使用的樣本RAM角色為OOSServiceRole,您也可以使用其他自訂的RAM角色。

背景資訊

NAS檔案系統是檔案儲存體的執行個體,將檔案系統掛載到ECS執行個體後,可以像使用本地檔案系統一樣使用檔案儲存體,提高資料安全和操作容錯率。目前建立伸縮配置時暫不支援關聯NAS檔案系統,但您可以通過生命週期掛鈎和OOS模板為ECS執行個體自動掛載NAS檔案系統,相比建立ECS執行個體後再手動掛載檔案系統,效率更高。

操作步驟

本教程以OOS公用模板ACS-ESS-LifeCycleAttachNASFileSystemToInstance為例,實現在擴容時自動為Linux系統的ECS執行個體掛載NAS。步驟如下:

步驟一:對RAM角色授予OOS服務許可權

您需要擁有OOS的執行許可權才能執行OOS的模板。執行ACS-ESS-LifeCycleAttachNASFileSystemToInstance中定義的營運操作時涉及Elastic Compute Service、Auto Scaling、NAS檔案系統的資源。

  1. 登入RAM控制台

  2. 建立權限原則。

    1. 在左側導覽列,單擊許可權管理 > 權限原則

    2. 單擊建立權限原則

    3. 建立權限原則頁面,選擇權限原則的配置模式為指令碼編輯後,設定其他參數項,然後單擊確定

      本教程中使用的配置如下表所示,未提及的配置保持預設即可。

      配置項

      說明

      名稱

      填寫ESSHookPolicyForAttachNAS。

      策略內容

      輸入以下內容:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ecs:DescribeInvocations",
                      "ecs:RunCommand",
                      "ecs:DescribeInvocationResults",
                      "ecs:DescribeInstances"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "ess:CompleteLifecycleAction"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
  3. 為OOSServiceRole授予權限原則。

    1. 在左側導覽列,單擊身份管理 > 角色

    2. 找到OOSServiceRole,在操作列,單擊新增授權

      為OOS服務扮演的RAM角色OOSServiceRole添加要求的權限即可完成授權。

    3. 新增授權頁面,指定資源範圍和許可權配置,然後單擊確認新增授權

      本教程中使用的配置如下表所示,未提及的配置保持預設即可。

      配置項

      說明

      資源範圍

      選擇帳號層級。

      權限原則

      添加自訂策略ESSHookPolicyForAttachNAS。

步驟二:為擴容活動建立生命週期掛鈎並觸發擴容

  1. 登入Auto Scaling控制台
  2. 在左側導覽列中,單擊伸縮組管理
  3. 在頂部功能表列處,選擇地區。
  4. 找到待操作的伸縮組,選擇任一種方式開啟伸縮組詳情頁面。
    • 伸縮組名稱/ID列,單擊伸縮組ID。
    • 操作列,單擊查看詳情
  5. 為擴容活動建立生命週期掛鈎。

    1. 在頁面上方,單擊生命週期掛鈎頁簽。
    2. 單擊建立生命週期掛鈎

    3. 指定生命週期掛鈎配置,然後單擊確認

      本教程中使用的配置如下表所示,未提及的配置保持預設即可。

      配置項

      說明

      名稱

      輸入ESSHookForAttachNAS。

      適用的伸縮活動類型

      選擇彈性擴張活動

      逾時時間

      輸入適當的逾時時間,例如300秒。

      說明

      逾時時間即用於執行自訂動作的時間,若逾時時間過短,可能導致自訂動作失敗,請評估自訂動作耗時並設定適當的逾時時間。

      預設執行策略

      選擇繼續

      掛鈎期間執行的動作

      通過指定的方式發出通知或者自動執行更多操作,模板配置如下:

      • 通知方式:選擇OOS模板

      • OOS模板類型:選擇公用模板

      • 公用模板:選擇ACS-ESS-LifeCycleAttachNASFileSystemToInstance。

      ACS-ESS-LifeCycleAttachNASFileSystemToInstance的執行參數配置如下:

      • 掛載點網域名稱:填入NAS檔案系統的掛載點網域名稱。

      • 掛載目錄:ECS執行個體中掛載檔案系統的目錄,預設為/mnt

      • 檔案系統版本:0表示使用NFS v4協議掛載檔案系統,1表示使用NFS v3協議掛載檔案系統。本教程中以0為例。

      • 速率控制:速率控制類型包括並發控制批次控制兩種方式。本教程以預設的並發控制類型為例。

      • OOS扮演的RAM角色:選擇指定RAM角色,使用該角色的許可權,然後選擇OOSServiceRole,操作步驟中已為RAM角色OOSServiceRole添加操作ECS、Auto Scaling、NAS檔案系統資源的許可權,OOS服務扮演該RAM角色即可擁有相關許可權。

  6. 觸發擴容。

    本教程中以手動執行伸縮規則為例,您也可以通過定時任務、警示任務等方式觸發擴容。

    說明

    手動執行伸縮規則引發擴縮容時,生命週期掛鈎會生效,但手動添加或移出已有ECS執行個體時,生命週期掛鈎不會生效。

    1. 在頁面上方,單擊伸縮規則與警示任務頁簽。

    2. 伸縮規則頁簽下,單擊建立伸縮規則

    3. 設定伸縮規則的屬性,然後單擊確認

      本教程中使用的配置如下表所示,未提及的配置保持預設即可。

      配置項

      說明

      規則名稱

      輸入Add1。

      伸縮規則類型

      選擇簡單規則

      執行的操作

      設定為增加1台。

    4. 在伸縮規則列表下,找到建立的伸縮規則Add1,在操作地區,單擊執行

    5. 單擊確定

    執行伸縮規則後自動建立1台ECS執行個體,由於伸縮組內已建立生命週期掛鈎ESSHookForAttachNAS,ECS執行個體會被掛起,同時自動通知OOS服務執行ACS-ESS-LifeCycleAttachNASFileSystemToInstance中定義的營運操作。

  7. 查看自動建立的ECS執行個體是否符合預期。

    1. 在頁面上方,單擊執行個體列表頁簽。
    2. 找到自動建立的ECS執行個體,在雲端服務器ID/名稱地區,單擊執行個體ID。

    3. 基本資料地區,單擊遠端連線

    4. 登入ECS執行個體後,運行命令查看掛載結果。

      df -h | grep aliyun

      如下圖所示,結果中存在NAS檔案系統的掛載地址,說明自動掛載成功。您也可以運行nfsstat -c查看使用的協議版本,Client nfs v4表示使用的協議版本為v4。attachnas-result

      如果成功建立了ECS執行個體,但ECS執行個體並沒有掛載NAS檔案系統,請前往OOS控制台查看營運任務執行情況。具體操作,請參見(可選)步驟三:查看OOS執行情況

(可選)步驟三:查看OOS執行情況

  1. 登入OOS管理主控台

  2. 在左側導覽列,選擇自動化任務 > 任務執行管理

  3. 按開始時間找到執行,然後在操作列,單擊詳情

  4. 進入執行詳情頁面,查看執行的相關資訊。

    例如,您可以基本資料地區查執行ID、執行狀態等,也可以在執行結果地區,單擊任務節點查看執行詳情。具體操作,請參見查看執行詳情

    說明

    如果執行失敗,在執行詳情頁面也會顯示相關的報錯資訊。

常見問題

如果營運任務執行失敗,請根據執行結果中的報錯資訊排查原因。更多資訊,請參見常見問題

常見的報錯資訊如下:

報錯資訊

原因

解決方案

Forbidden.Unauthorized message: A required authorization for the specified action is not supplied.

您並未向Auto Scaling授權操作當前Action。

請檢查是否為RAM角色OOSServiceRole添加了相應的許可權。

Forbidden.RAM message: User not authorized to operate on the specified resource, or this API doesn't support RAM.

RAM使用者或RAM角色沒有操作對應資源的許可權。

請檢查是否為RAM角色OOSServiceRole添加了相應的許可權。例如為RAM角色授予OOS服務的樣本許可權。您需要為RAM角色添加操作許可權,確保OOS服務能夠操作OOS模板中涉及的資源。

LifecycleHookIdAndLifecycleActionToken.Invalid message: The specified lifecycleActionToken and lifecycleActionId you provided does not match any in process lifecycle action.

進行中的生命週期動作已經到期或中止。

請評估生命週期掛鈎的逾時時間,確保在逾時時間內可以執行完OOS模板中定義的營運任務。