映像檔系列最佳做法

本文將介紹使用映像檔系列管理 Compute Engine 上不斷演進的作業系統 (OS) 映像檔版本的最佳做法。映像檔系列可讓您將相關映像檔分組,讓自動化工具參照最新版本,同時維持回溯功能。

事前準備

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Cloud de Confiance by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上範例的預計用途分頁:

    gcloud

    1. 安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init
  • 設定預設區域和可用區。
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。

    詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。

公開映像檔系列

Compute Engine 提供映像檔系列,確保您的自動化處理系統可以參照最新的映像檔。管理員可以將多個映像檔歸類為一個映像檔系列。這樣一來,映像檔使用者只需要追蹤映像檔系列名稱,不必追蹤確切的映像檔名稱。由於圖片名稱不得重複,圖片建構管道通常會建立圖片名稱,並在其中編碼資訊,例如應用程式名稱、日期和版本,例如 my-application-v3-20210101。在自動化工具中,您可以參照映像檔系列名稱,不必定期更新映像檔名稱。使用映像檔系列可確保您一律存取系列中的最新映像檔,例如 my-application。

映像檔系列。

公開映像檔會歸類為映像檔系列。公開映像檔系列一律會指向每個區域中可用的最新版映像檔。當新映像檔在全球發布時,映像檔系列中的初始可用性取決於區域,這有助於在 Google 映像檔更新期間,提升工作流程的區域容錯能力。

在映像檔推出期間,映像檔系列中最新版本的映像檔在不同可用區可能有所不同。舉例來說,debian-cloud 專案中的 debian-12 映像檔系列一律會指向最新的 Debian 12 映像檔,但 us-central1-a 和 southamerica-east1-b 區域中最新的 Debian 12 映像檔可能不同。

使用 Google Cloud CLI 從映像檔系列建立 VM 時,Compute Engine 會使用 VM 所在區域中可用的最新映像檔來處理要求。使用 Cloud de Confiance 控制台建立 VM 時,Compute Engine 只會顯示所選區域的可用公開映像檔。如要使用最新全球可用映像檔建立 VM,請使用 gcloud CLI instances create 指令,並指定 --image-family-scope=global。

查看最新可用映像檔版本

您可以查看映像檔系列中最新的全球可用映像檔,或查看特定區域中最新的可用映像檔。

全球

如要查看映像檔系列中最新的全球可用映像檔,請使用下列其中一種方法:

gcloud

使用 gcloud compute images describe-from-family 指令:

gcloud compute images describe-from-family IMAGE_FAMILY_NAME  \
   --project=IMAGE_PROJECT

更改下列內容:

  • IMAGE_FAMILY_NAME:要搜尋的映像檔系列名稱。如需映像檔系列名稱的完整清單,請參閱「作業系統詳細資料」。
  • IMAGE_PROJECT:圖片專案的名稱。如需完整的映像檔專案名稱清單,請參閱「作業系統詳細資料」。

REST

向 images.getFromFamily 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY_NAME

更改下列內容:

  • IMAGE_PROJECT:圖片專案的名稱。如需完整的映像檔專案名稱清單,請參閱「作業系統詳細資料」。
  • IMAGE_FAMILY_NAME:要搜尋的映像檔系列名稱。如需映像檔系列名稱的完整清單,請參閱「作業系統詳細資料」。

每個區域

如要查看特定區域的映像檔系列中可用的最新映像檔,請使用下列其中一種方法:

gcloud

使用 gcloud compute images describe-from-family 指令,並加上 --zone 旗標:

gcloud compute images describe-from-family IMAGE_FAMILY_NAME  \
   --project=IMAGE_PROJECT \
   --zone=ZONE

更改下列內容:

  • IMAGE_FAMILY_NAME:要搜尋的映像檔系列名稱。如需映像檔系列名稱的完整清單,請參閱「作業系統詳細資料」。
  • IMAGE_PROJECT:圖片專案的名稱。如需完整的映像檔專案名稱清單,請參閱「作業系統詳細資料」。
  • ZONE:要查詢的可用區。

REST

向 imageFamilyViews 方法發出 GET 要求:

GET https://compute.googleapis.com/compute/v1/projects/IMAGE_PROJECT/zones/ZONE/imageFamilyViews/IMAGE_FAMILY_NAME

更改下列內容:

  • IMAGE_PROJECT:圖片專案的名稱。如需映像檔專案名稱的完整清單,請參閱「作業系統詳細資料」。
  • ZONE:要查詢的可用區。
  • IMAGE_FAMILY_NAME:要搜尋的映像檔系列名稱。如需映像檔系列名稱的完整清單,請參閱「作業系統詳細資料」。

自訂映像檔系列

您可以為自訂映像檔建立自訂映像檔系列。映像檔系列會指向您用來建立映像檔系列的最新映像檔。如要將映像檔系列還原為先前的映像檔版本,您可以淘汰該系列中最新的映像檔,前提是先前的映像檔未遭淘汰。詳情請參閱在映像檔系列中設定映像檔版本。

如要使用映像檔系列建立映像檔,或建立映像檔系列 (如果不存在),您必須在映像檔建立步驟中新增額外的 --family 旗標,例如:

gcloud compute images create my-application-v3-20210101 \
    --source-disk my-application-disk-1 \
    --source-disk-zone us-central1-f \
    --family my-application

執行這項指令後,任何根據映像檔 my-application 執行執行個體的呼叫,都會指向新建立的映像檔 my-application-v3-20210101。

為映像檔系列選取名稱時,請參閱命名慣例。

如何使用映像檔系列

雖然映像檔系列可讓您參照最新映像檔,但最新映像檔可能與應用程式不相容,如果未經過驗證,可能會導致正式環境發生問題。如要充分發揮映像檔系列的優勢,同時降低風險,建議您先測試映像檔系列中參照的最新映像檔,再將其用於正式環境。

總而言之,您可以考慮採取下列做法:

  • 設定與正式環境不同的測試環境。
  • 在測試環境中,完成下列步驟:
    • 從來源映像檔系列建立自訂映像檔系列。
    • 針對工作負載,驗證自訂映像檔系列中新映像檔的穩定性。
  • 驗證完成後,請將這個自訂映像檔系列移至正式環境。

舉例來說,這個程序可能類似於下列程序。

  1. 在測試專案中,從來源映像檔系列建立映像檔。這個新的圖片來源系列也必須有自己的自訂圖片系列,才能在測試環境中參照。如要使用自訂映像檔系列建立映像檔,請執行下列指令:

    gcloud compute images create test-image-name \
    --source-image-project source-project \
    --source-image-family source-image-family \
    --project test-project \
    --family test-image-family
    

    更改下列內容:

    • test-image-name:測試映像檔的名稱。
    • source-project:來源映像檔系列所屬的專案。
    • source-image-family:來源映像檔系列的名稱。
    • test-project:要新增映像檔系列的測試專案名稱。
    • test-image-family:測試映像檔系列的名稱。
  2. 使用自訂映像檔系列 test-image-family 建立 VM,測試工作負載。執行下列指令來建立 VM:

    gcloud compute instances create test-instance-name \
    --image-family your-test-image-family \
    --project test-project
    

    更改下列內容:

    • test-instance-name:測試執行個體的名稱。
    • test-image-family:測試映像檔系列的名稱。
    • test-project:測試專案的名稱。
  3. 確認這個映像檔適用於工作負載後,請將映像檔複製到正式環境。

    gcloud compute images create prod-image-name \
    --source-image-family test-image-family \
    --source-image-project test-project \
    --project prod-project \
    --family prod-image-family
    

    更改下列內容:

    • prod-image-name:正式版映像檔的名稱。
    • test-image-family:測試映像檔系列的名稱。
    • test-project:測試映像檔系列所屬的專案。
    • prod-project:正式環境中的專案名稱。
    • prod-image-family:要在正式環境中使用的映像檔系列名稱。