透過共用映像檔建立執行個體

本文說明如何從其他專案共用的自訂映像檔建立 Compute Engine 執行個體。

執行個體包含啟動載入程式、開機檔案系統和 OS 映像檔。您可以從來源磁碟、映像檔、快照或儲存在 Cloud Storage 中的映像檔建立自訂映像檔,並使用這些映像檔建立執行個體。根據預設,自訂映像檔只屬於建立該映像檔的專案。如果其他使用者與您共用映像檔,您可以使用該映像檔建立執行個體。

事前準備

  • 使用 Google Cloud CLI 或 Compute Engine API 從映像檔建立執行個體時,每秒最多只能建立 20 個執行個體。如要每秒建立更多執行個體,請 要求調整「映像檔」資源的配額。
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Cloud de Confiance by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

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

    控制台

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

    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 執行個體管理員 (v1) 」(roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備從共用映像檔建立執行個體所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要透過共用映像檔建立執行個體,必須具備下列權限:

  • 專案的 compute.instances.create
  • 如要使用共用映像檔建立執行個體: compute.images.useReadOnly 在映像檔上

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

透過共用映像檔建立執行個體

如要透過共用映像檔建立執行個體,請按照下列步驟操作:

控制台

  1. 前往 Cloud de Confiance 控制台的「建立執行個體」頁面。

    前往「建立執行個體」

    如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。

    「建立執行個體」頁面隨即顯示,並顯示「機器設定」窗格。

  2. 在「機器設定」窗格中,執行下列操作:

    1. 在「Name」(名稱) 欄位中,指定執行個體的名稱。詳情請參閱資源命名慣例
    2. 選用:在「Zone」(區域) 欄位中,選取這個執行個體的區域。

      預設選取項為「任何」。如果未變更這項預設選項,Google 會根據機型和可用性自動為您選擇可用區。

    3. 選取執行個體的機器系列。Cloud de Confiance 控制台隨即會顯示所選機器家族適用的機器系列。可用的機器系列選項如下:

      • 一般用途
      • 運算最佳化
      • 記憶體最佳化
      • 儲存空間最佳化
      • GPU

    4. 在「Series」(系列) 欄中,選取執行個體的機器系列。

      如果您在上一個步驟中選取 GPU 做為機器家族,請選取所需的 GPU 類型。系統會根據所選的 GPU 類型,自動選取機器系列。

    5. 在「Machine type」(機型) 部分中,選取執行個體的機型。

  3. 在導覽選單中,按一下「OS and storage」(OS 和儲存空間)。在隨即顯示的「作業系統和儲存空間」窗格中,完成下列步驟來設定開機磁碟:

    1. 點選「變更」。「Boot disk」(開機磁碟) 窗格隨即顯示,並顯示「Public images」(公開映像檔) 分頁。
    2. 按一下「自訂圖片」。系統會顯示「自訂圖片」分頁。
    3. 如要選取圖片專案,請按一下「變更」,然後選取含有圖片的專案。
    4. 在「圖片」清單中,選取要匯入的圖片。
    5. 在「Boot disk type」(開機磁碟類型) 清單中,選取開機磁碟類型。
    6. 在「Size (GB)」(大小 (GB)) 欄位中,指定開機磁碟的大小。
    7. 選用:如果是 Hyperdisk Balanced 開機磁碟,請為「佈建 IOPS」和「佈建處理量」欄位指定值。
    8. (選用) 如需進階設定選項,請展開「Show advanced configurations」(顯示進階設定) 部分。
    9. 如要確認開機磁碟選項並返回「作業系統和儲存空間」窗格,請按一下「選取」
  4. 在導覽選單中,按一下「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:

    1. 前往「防火牆」部分。
    2. 如要允許執行個體接收 HTTP 或 HTTPS 流量,請選取「Allow HTTP traffic」(允許 HTTP 流量) 或「Allow HTTPS traffic」(允許 HTTPS 流量)

      Compute Engine 會將網路標記新增至執行個體,並建立對應輸入防火牆規則,允許所有流量傳入 tcp:80 (HTTP) 或 tcp:443 (HTTPS)。網路標記會建立防火牆規則與執行個體之間的關聯。詳情請參閱 Cloud Next Generation Firewall 說明文件中的「防火牆規則總覽」。

  5. 選用:指定其他設定選項。詳情請參閱「建立執行個體時的設定選項」。

  6. 如要建立並啟動執行個體,請按一下「建立」

gcloud

  1. 在 Cloud de Confiance 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

    Cloud de Confiance 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。

  2. 使用 gcloud compute instances create command 建立執行個體,並使用 --image--image-project 旗標指定映像檔名稱與映像檔所在的專案:

    gcloud compute instances create INSTANCE_NAME \
    --image=IMAGE \
    --image-project=IMAGE_PROJECT
    

    更改下列內容:

    • INSTANCE_NAME:新執行個體的名稱
    • IMAGE:圖片名稱
    • IMAGE_PROJECT:映像檔所屬的專案

    如果指令成功,gcloud 會傳回新執行個體的屬性,如下列範例所示:

    Created [https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b/instances/example-instance].
    NAME                 ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS
    example-instance     us-central1-b  e2-standard-2               10.240.0.4   104.198.53.60  RUNNING
    

Terraform

在 Terraform 中使用共用映像檔建立執行個體的過程,其實與使用公開映像檔建立執行個體的過程相同。

  1. 前往 Cloud de Confiance 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 點選「建立執行個體」
  3. 指定所需參數。
  4. 按一下頁面頂端或底部的「對等程式碼」,然後點選「Terraform」分頁標籤,即可查看 Terraform 程式碼。

REST

在 API 中使用共用映像檔建立執行個體的過程,其實與使用公開映像檔建立執行個體的過程相同。

如要透過共用映像檔建立執行個體,請使用 instances.insert 方法

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
   "machineType":"zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
   "name":"VM_NAME",
   
   "disks":[
      {
         "initializeParams":{
            "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot":true
      }
   ],
   
   
   "networkInterfaces":[
      {
         "network":"global/networks/NETWORK_NAME"
      }
   ],
   
  
   "shieldedInstanceConfig":{
      "enableSecureBoot":"ENABLE_SECURE_BOOT"
   }
}

更改下列內容:

  • PROJECT_ID:要在其中建立 VM 的專案 ID
  • ZONE:要在其中建立 VM 的可用區
  • MACHINE_TYPE_ZONE:包含要用於新 VM 的機型可用區
  • MACHINE_TYPE:新 VM 的機器類型,預先定義自訂
  • VM_NAME:新 VM 的名稱
  • IMAGE_PROJECT:含有共用映像檔的專案名稱
  • IMAGE:指定下列其中一項:
    • IMAGE:共用映像檔的名稱。 例如:"sourceImage": "projects/finance-project-1234/global/images/finance-debian-image-v2"
    • IMAGE_FAMILY:如果共用映像檔是做為自訂映像檔系列的一部分建立,請指定該自訂映像檔系列。

      這會使用自訂映像檔系列中未淘汰的最新 OS 映像檔建立 VM。舉例來說,如果您指定 "sourceImage": "projects/finance-project-1234/global/images/family/finance-debian-family",Compute Engine 會從自訂 finance-debian-family 映像檔系列中,使用最新版本的 OS 映像檔建立 VM。

  • NETWORK_NAME:您要用於 VM 的虛擬私有雲網路。如要使用預設網路,請指定 default
  • ENABLE_SECURE_BOOT:選用:如果您選擇支援受防護 VM 功能的映像檔,Compute Engine 預設會啟用虛擬信任平台模組 (vTPM)完整性監控。Compute Engine 預設不會啟用安全啟動

    如果為 enableSecureBoot 指定 true,Compute Engine 會建立 VM,並啟用所有三項 Shielded VM 功能。Compute Engine 啟動 VM 後,如要修改受防護的 VM 選項,必須先停止 VM。

後續步驟