建立機器映像檔

使用機器映像檔儲存 Compute Engine 執行個體多個磁碟中的所有設定、中繼資料、權限和資料。用來建立機器映像檔的執行個體稱為「來源執行個體」

如要瞭解何時及如何使用機器映像檔,請參閱機器映像檔

本文說明如何從來源執行個體建立機器映像檔。

事前準備

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

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • REST

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

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

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

限制和規定

  • 每 60 分鐘最多可為特定執行個體建立 6 次機器映像檔。
  • 您可以使用 Cloud Key Management Service (Cloud KMS)客戶提供的加密金鑰 (CSEK) 保護機器映像檔。加密金鑰可保護磁碟內容。但中繼資料不會受到保護。
  • 如果您使用 CSEK 保護機器映像檔,系統會在產生機器映像檔時,儲存所有磁碟資料的完整副本。在所有其他情況下,磁碟資料會儲存在差異副本中。
  • 您無法從下列來源 VM 建立機器映像檔:

    • 已連結的磁碟大小超過 200 TB。
    • 沒有任何附加磁碟。
    • 已連結任何 Hyperdisk 磁碟區。
    • 使用 Z3 機型 (z3-highmem-192-highlssd-metal 除外)。
    • 使用 C3D、H3 或 A3 機型。

    如果執行個體不支援建立機器映像檔,您可以改為從執行個體的開機磁碟建立 OS 映像檔,詳情請參閱「建立自訂映像檔」。

機器映像檔不支援的執行個體和磁碟屬性

從執行個體建立機器映像檔,或從機器映像檔建立執行個體時,系統不會保留或還原下列執行個體和磁碟屬性:

  • disks.architecture
  • disks.description
  • disks.labels
  • disks.locked
  • disks.multiWriter
  • disks.onUpdateAction
  • disks.provisionedIops
  • disks.shieldedInstanceInitialState
  • disks.sourceImage
  • disks.sourceImageEncryptionKey
  • disks.sourceInstantSnapshot
  • disks.sourceSnapshot
  • disks.sourceSnapshotEncryptionKey
  • privateIpv6GoogleAccess
  • resourceManagerTags
  • resourcePolicies
  • secure_tag
  • shieldedInstanceConfig

從執行個體建立機器映像檔

您可以使用 Google Cloud 控制台Google Cloud CLIREST 建立機器映像檔。

如要建立機器映像檔,請備妥下列資訊:

  • 要建立的機器映像檔名稱。
  • 來源執行個體的名稱。
  • 來源執行個體所在的區域。
  • 選填說明。
  • 選用 storageLocation。 如果未指定位置,預設儲存位置為來源執行個體的多區域 Cloud Storage 位置
  • 選用的加密金鑰。您可以選擇 Google-owned and Google-managed encryption key、Cloud Key Management Service (Cloud KMS) 金鑰或客戶提供的加密 (CSEK) 金鑰。如未指定加密金鑰,系統會使用 Google-owned and Google-managed encryption key加密機器映像檔。
  • 如要使用機器映像檔進行執行個體複製和快照,請先移除執行個體專屬的 OS 和應用程式資訊,再從執行個體產生機器映像檔。舉例來說,如果是 Windows VM 執行個體,請使用 GCESysprep 準備系統進行複製。

控制台

  1. 前往 Google Cloud 控制台的「機器映像檔」頁面。

    前往機器映像檔

  2. 按一下「建立機器映像檔」

  3. 指定機器映像檔的「Name」(名稱)

  4. 選用:提供說明

  5. 選取「來源 VM 執行個體」

  6. 選用:指定儲存機器映像檔的位置。選擇「多區域」或「區域」儲存空間。如要進一步瞭解位置,請參閱機器映像檔儲存位置

  7. 選用:選取「加密」方法。

  8. 點選「建立」

gcloud

使用 gcloud compute machine-images create 指令從執行個體建立機器映像檔。

gcloud compute machine-images create MACHINE_IMAGE_NAME \
    --source-instance=SOURCE_VM_NAME

更改下列內容:

  • MACHINE_IMAGE_NAME:要建立的機器映像檔名稱。
  • SOURCE_VM_NAME:要建立映像檔的來源執行個體名稱。

範例

舉例來說,您可以使用下列 gcloud 指令,從名為 my-instance 的來源執行個體建立名為 my-machine-image 的機器映像檔:

gcloud compute machine-images create my-machine-image  \
    --source-instance=my-instance

這個過程需要幾分鐘。建立機器映像檔後,您會看到類似下列內容的輸出:

Created [https://www.googleapis.com/compute/v1/projects/project-12345/global/machineImages/my-machine-image].
NAME               STATUS
my-machine-image   READY

REST

在 API 中,建構對 machineimages.insert 方法的 POST 要求。在要求主體中加入下列 POST 要求:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/machineImages

{
  "name": "MACHINE_IMAGE_NAME",
  "sourceInstance": "SOURCE_INSTANCE_URL"
}

更改下列內容:

  • PROJECT_ID專案 ID
  • MACHINE_IMAGE_NAME:要建立的機器映像檔名稱。
  • SOURCE_INSTANCE_URL:您要用來建立機器映像檔的來源執行個體完整或部分網址。舉例來說,假設您在名為 myProject 的專案中,有名為 my-instance 的來源執行個體。下列網址有效:

    • https://www.googleapis.com/compute/v1/projects/myProject/global/instances/my-instance
    • projects/myProject/global/instances/my-instance
    • global/instances/my-instance

後續步驟