建立和啟動 VM 執行個體

本文件說明如何使用開機磁碟映像檔、開機磁碟快照或容器映像檔來建立虛擬機器執行個體。從開機磁碟映像檔建立 VM 執行個體時,您可以使用一般映像檔或受防護的 VM測試版映像檔。受防護的 VM 映像檔提供符合 UEFI 標準的韌體、安全啟動與 vTPM 防護測量啟動等安全性功能。Compute Engine 會在您建立 VM 執行個體後自動啟動該執行個體。

您可以在建立 VM 執行個體的過程中為執行個體建立多個磁碟,也可以在建立執行個體後再新增更多磁碟

本文件說明建立執行個體的基本方法。如需更具體或詳細的執行個體設定說明,請參閱下列資訊:

事前準備

透過映像檔建立執行個體

本節說明如何透過特定作業系統的映像檔建立執行個體。開機磁碟映像檔包含系統啟動載入程式、開機檔案系統,以及在執行個體上執行的作業系統。

進階使用者可以建立自訂映像檔,用以取代 Compute Engine 提供的公開映像檔。

您可以在 Google Cloud Platform 主控台、gcloud 指令列工具或 API 中使用映像檔來建立執行個體。

透過公開映像檔建立執行個體

公開映像檔是由 Google、開放原始碼社群以及第三方供應商所提供和維護。根據預設,所有專案皆可存取並使用這些映像檔來建立具有一般作業系統映像檔的執行個體。

如要建立執行個體,請為您需要的作業系統指定映像檔系列。Compute Engine 提供多個 Linux 發行版,其中一些同時提供一般映像檔與受防護的 VM 映像檔。如果您為執行個體選擇本機 SSD 儲存空間,就無法使用受防護 VM 的完整性監控功能,也無法針對防護資料使用 vTPM。如需可用映像檔系列的清單,請參閱公開映像檔一文。

主控台

  1. 前往 VM 執行個體頁面。

    前往 VM 執行個體頁面

  2. 選取您的專案並點選 [繼續]
  3. 點選 [建立執行個體] 按鈕。
  4. 為您的執行個體指定名稱
  5. 視需要變更此執行個體的區域

    附註:區域清單會在每個地區內隨機排列,以鼓勵跨多個區域使用。

  6. 選取執行個體的機器類型

  7. 在「Boot disk」(開機磁碟) 部分,點選 [Change] (變更) 即可設定開機磁碟。
    為顧及 MBR 分區的限制,請建立一個小於 2 TB 的開機磁碟。

  8. 在「OS images」(作業系統映像檔) 分頁中,選擇映像檔。
    如果您只要查看受防護的 VM 映像檔,請選取 [Show images with Shielded VM features] (顯示具備受防護 VM 功能的映像檔)

  9. 按一下 [Select] (選取)。

  10. 如要允許 VM 執行個體接收 HTTP 或 HTTPS 流量,請選取 [Allow HTTP traffic] (允許 HTTP 流量) 或 [Allow HTTPS traffic] (允許 HTTPS 流量)

    GCP 主控台會將網路標記新增至執行個體,並建立對應輸入防火牆規則,允許所有流量傳入 tcp:80 (HTTP) 或 tcp:443 (HTTPS)。網路標記會建立防火牆規則與執行個體之間的關聯。詳情請參閱虛擬私人雲端說明文件中的防火牆規則總覽一文。

  11. 如何為您的 VM 執行個體新增次要非開機磁碟:

    1. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用)
    2. 按一下 [Disks] (磁碟) 分頁標籤。
    3. 在「Additional disks」(其他磁碟) 底下,點選 [Add new disk] (增加新磁碟)。
    4. 指定磁碟的名稱類型來源類型模式刪除規則
    5. 按一下 [Done] (完成)
    6. 請視需要新增其他磁碟。
  12. 如果您選擇支援受防護 VM 的映像檔,也可以變更執行個體的受防護 VM 設定:

    1. 按一下「Management, Security, Disks, Networking, Sole Tenancy」(管理、安全性、磁碟、網路、單獨租用) 區段中的 [Security] (安全性) 分頁標籤。
    2. 如果您要停用安全啟動功能,請取消勾選 [Turn on Secure Boot] (啟用安全啟動功能)。安全啟動功能可防止 VM 執行個體受到啟動層級和核心層級的惡意軟體和 Rootkit 攻擊。詳情請參閱安全啟動一節。
    3. 如果您要停用虛擬信任平台模組 (vTPM),請取消勾選 [Turn on vTPM] (啟用 vTPM)。vTPM 可以啟用測量啟動功能,來驗證 VM 的啟動前和啟動完整性。詳情請參閱虛擬信任平台模組 (vTPM) 一節。

    4. 如果您要停用完整性監控功能,請取消勾選 [Turn on Integrity Monitoring] (啟用完整性監控功能)。完整性監控功能可以讓您利用 Stackdriver 來監控受防護 VM 執行個體的啟動完整性。詳情請參閱完整性監控一節。

  13. 請按一下 [Create] (建立) 按鈕來建立並啟用執行個體。

gcloud

在您建立執行個體之前,請選擇要用於執行個體開機磁碟的作業系統映像檔。使用 gcloud compute images list 指令而不加上任何標記,查看包含映像檔 ID、映像檔系列以及映像檔專案的非受防護的 VM 公開映像檔完整清單:

gcloud compute images list

使用 gcloud compute images list 指令並加上下列標記,查看受防護 VM 公開映像檔的完整清單:

gcloud compute images list --project gce-uefi-images --no-standard-images

在您選取映像檔後,請使用 gcloud compute instances create 指令建立執行個體。

如要使用最新版本的作業系統映像檔,請指定 --image-family--image-project 標記。舉例來說,debian-9 映像檔系列會傳回尚未淘汰的最新版 Debian 9 映像檔,該映像檔的所屬專案為 debian-cloud

使用來自映像檔系列的最新映像檔建立執行個體:

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT]

其中:

回應範例:

Created [https://www.googleapis.com/compute/v1/projects/myproject/zones/[ZONE]/instances/[INSTANCE_NAME]].
NAME            ZONE   MACHINE_TYPE  INTERNAL_IP   EXTERNAL_IP    STATUS
[INSTANCE_NAME] [ZONE] n1-standard-1 10.105.155.92 173.255.114.53 RUNNING

如要使用特定的映像檔版本而不是最新版本,請指定 --image--image-project 標誌。舉例來說,如要使用 debian-9-stretch-v20170619 Debian 映像檔建立執行個體,請指定 --image debian-9-stretch-v20170619--image-project debian-cloud

使用特定版本的映像檔建立執行個體:

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE_ID] \
    --image-project [IMAGE_PROJECT]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [IMAGE_ID] 是特定映像檔。
  • [IMAGE_PROJECT] 是該映像檔所屬的映像檔專案

建立執行個體時,您最多可以加入 15 個次要非開機磁碟。請為您建立的每個次要磁碟指定 --create-disk 標記。如要透過公開或庫存映像檔建立次要磁碟,請在 --create-disk 標記中指定 imageimage-project 屬性。如要建立空白磁碟,請勿包含這些屬性。您也可以視情況加入磁碟 sizetype 屬性。

gcloud compute instances create [INSTANCE_NAME] \
  --image-family [IMAGE_FAMILY] \
  --image-project [IMAGE_PROJECT] \
  --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [IMAGE_FAMILY]可用映像檔系列的其中一個。
  • [IMAGE_PROJECT] 是映像檔所屬的映像檔專案
  • [DISK_IMAGE] 是次要磁碟的來源映像檔。如需可用映像檔的清單,請執行 gcloud compute images list。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [DISK_IMAGE_PROJECT] 是磁碟映像檔所屬的映像檔專案。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [SIZE_GB] 是次要磁碟的大小。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

如果您選擇的映像檔支援受防護的 VM,可以選擇使用下列其中一個標記變更執行個體的「受防護的 VM」設定:

  • --no-shielded-vm-secure-boot:停用安全啟動功能。安全啟動功能可防止 VM 執行個體受到啟動層級和核心層級的惡意軟體和 Rootkit 攻擊。詳情請參閱安全啟動一節。
  • --no-shielded-vm-vtpm:停用虛擬信任平台模組 (vTPM)。vTPM 可啟用測量啟動功能,來驗證 VM 的啟動前和啟動完整性。詳情請參閱虛擬信任平台模組 (vTPM) 一節。

  • --no-shielded-vm-integrity-monitoring:停用完整性監控功能。完整性監控功能可以讓您利用 Stackdriver 來監控受防護 VM 執行個體的啟動完整性。詳情請參閱完整性監控一節。

    下列範例會建立停用安全啟動功能的 Ubuntu 受防護的 VM 執行個體:

    gcloud beta compute instances create my-instance
    --image-family ubuntu-1804-uefi --image-project gce-uefi-images
    --no-shielded-vm-secure-boot

API

如要在 API 中啟動執行個體,請傳送要求並指定下列屬性:

  • 來源映像檔
  • 網路介面
  • 機器類型
  • 如果您的虛擬私人雲端網路是自訂模式虛擬私人雲端網路,您必須另外指定要建立執行個體的子網路。
  • 如果您選擇的映像檔支援受防護的 VM,可以選擇使用下列其中一個布林要求主體項目變更執行個體的「受防護的 VM」設定:

    • enableSecureBoot:啟用或停用安全啟動功能。安全啟動功能可防止 VM 執行個體受到啟動層級和核心層級的惡意軟體和 Rootkit 攻擊。詳情請參閱安全啟動一節。
    • enableVtpm:啟用或停用虛擬信任平台模組 (vTPM)。vTPM 可啟用測量啟動功能,來驗證 VM 的啟動前和啟動完整性。詳情請參閱虛擬信任平台模組 (vTPM) 一節。

    • enableIntegrityMonitoring:啟用或停用完整性監控功能。透過完整性監控功能,您可以利用 Stackdriver 報表來監控及驗證受防護 VM 執行個體的執行階段啟動完整性。詳情請參閱完整性監控一節。

在您決定資源屬性後,請建立要求主體並提出 API 請求。如要進一步瞭解如何建構 API 請求和處理 API 回應,請參閱建立 API 請求和處理回應文件。

提出 API 請求

如果您使用 API 用戶端程式庫,可以藉由直接呼叫 REST API 或使用 instances().insert 來建立新的執行個體。每個選項的範例如下:

REST

在 API 中,使用相同的要求主體來建構對執行個體 URI 的 POST 要求。建立 VM 執行個體時,您最多可新增 15 個次要非開機磁碟,方法是針對每個額外磁碟使用 initializeParams 屬性。請使用公開或私人映像檔建立額外磁碟。如要新增空白磁碟,請勿指定映像檔來源。您可以視需要納入 diskSizeGbdiskType 屬性。

def addInstance(http, listOfHeaders):
  url = "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances"

  body = {
    "name": "[INSTANCE_NAME]",
    "machineType": "machineTypes/[MACHINE_TYPE]",
    "networkInterfaces": [{
      "accessConfigs": [{
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT"
       }],
      "network": "global/networks/default"
    }],
    "disks": [{
       "autoDelete": "true",
       "boot": "true",
       "type": "PERSISTENT",
       "initializeParams": {
          "sourceImage": "projects/[IMAGE_PROJECT]/global/images/family/[IMAGE]"
       }
     },
     {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]",
          "sourceImage":"[IMAGE]"
       },
       {
       "initializeParams": {
          "diskSizeGb": "[SIZE_GB]"
       }
     }]

  bodyContentURLEncoded = urllib.urlencode(bodyContent)
  resp, content = http.request(uri=url, method="POST", body=dumps(bodyContent), headers=listOfHeaders)

  print resp
  print content

其中:

  • [INSTANCE_NAME] 是執行個體的名稱。
  • [PROJECT_ID] 是您的專案 ID。
  • [ZONE] 是這個執行個體所在的區域
  • [MACHINE_TYPE] 是執行個體的機器類型
  • [IMAGE_PROJECT] 是映像檔所屬的映像檔專案,例如 debian-cloudubuntu-os-cloud 等。
  • [IMAGE]可用公開映像檔系列的其中一個。舉例來說,family/debian-9 會使用最新版的 Debian 9 映像檔。此外,您不需要 family/ 路徑即可指定特定映像檔版本,例如 debian-9-stretch-v20170619。如果是空白磁碟,請勿指定映像檔來源。
  • [SIZE_GB] 是磁碟的大小。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

如果您要用空白次要磁碟來建立執行個體,請先格式化及掛載這些磁碟,以便訪客作業系統使用這些磁碟。

Python 用戶端程式庫

def create_instance(compute, project, zone, name, bucket):
    # Get the latest Debian Jessie image.
    image_response = compute.images().getFromFamily(
        project='debian-cloud', family='debian-9').execute()
    source_disk_image = image_response['selfLink']

    # Configure the machine
    machine_type = "zones/%s/machineTypes/n1-standard-1" % zone
    startup_script = open(
        os.path.join(
            os.path.dirname(__file__), 'startup-script.sh'), 'r').read()
    image_url = "http://storage.googleapis.com/gce-demo-input/photo.jpg"
    image_caption = "Ready for dessert?"

    config = {
        'name': name,
        'machineType': machine_type,

        # Specify the boot disk and the image to use as a source.
        'disks': [
            {
                'boot': True,
                'autoDelete': True,
                'initializeParams': {
                    'sourceImage': source_disk_image,
                }
            }
        ],

        # Specify a network interface with NAT to access the public
        # internet.
        'networkInterfaces': [{
            'network': 'global/networks/default',
            'accessConfigs': [
                {'type': 'ONE_TO_ONE_NAT', 'name': 'External NAT'}
            ]
        }],

        # Allow the instance to access cloud storage and logging.
        'serviceAccounts': [{
            'email': 'default',
            'scopes': [
                'https://www.googleapis.com/auth/devstorage.read_write',
                'https://www.googleapis.com/auth/logging.write'
            ]
        }],

        # Metadata is readable from the instance and allows you to
        # pass configuration from deployment scripts to instances.
        'metadata': {
            'items': [{
                # Startup script is automatically executed by the
                # instance upon startup.
                'key': 'startup-script',
                'value': startup_script
            }, {
                'key': 'url',
                'value': image_url
            }, {
                'key': 'text',
                'value': image_caption
            }, {
                'key': 'bucket',
                'value': bucket
            }]
        }
    }

    return compute.instances().insert(
        project=project,
        zone=zone,
        body=config).execute()

透過自訂映像檔建立執行個體

自訂映像檔專屬您的專案。如要使用自訂映像檔建立執行個體,您必須先擁有自訂映像檔。要瞭解如何建立自訂映像檔,請參閱建立自訂映像檔一文。

主控台

  1. 前往 VM 執行個體頁面。

    前往 VM 執行個體頁面

  2. 選取您的專案並點選 [繼續]
  3. 點選 [建立執行個體] 按鈕。
  4. 為您的執行個體指定名稱
  5. 視需要變更此執行個體的區域

    附註:區域清單會在每個地區內隨機排列,以鼓勵跨多個區域使用。

  6. 選取執行個體的機器類型

  7. 在「Boot disk」(開機磁碟) 部分,點選 [Change] (變更) 即可設定開機磁碟。
    為顧及 MBR 分區的限制,請建立一個小於 2 TB 的開機磁碟。

  8. 選取 [Custom Images] (自訂映像檔) 分頁標籤。

  9. 確認您的專案已在下拉式選單中選取。

  10. 選取所需映像檔,然後按一下 [Select] (選取) 按鈕。

  11. 如要允許 VM 執行個體接收 HTTP 或 HTTPS 流量,請選取 [Allow HTTP traffic] (允許 HTTP 流量) 或 [Allow HTTPS traffic] (允許 HTTPS 流量)

    GCP 主控台會將網路標記新增至執行個體,並建立對應輸入防火牆規則,允許所有流量傳入 tcp:80 (HTTP) 或 tcp:443 (HTTPS)。網路標記會建立防火牆規則與執行個體之間的關聯。詳情請參閱虛擬私人雲端說明文件中的防火牆規則總覽一文。

  12. 如何為您的 VM 執行個體新增次要非開機磁碟:

    1. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用)
    2. 選取 [Disks] (磁碟) 分頁標籤。
    3. 在「Additional disks」(其他磁碟) 底下,點選 [Add new disk] (增加新磁碟)。
    4. 指定磁碟的名稱類型來源類型模式刪除規則
    5. 按一下 [Done] (完成)
    6. 請視需要新增其他磁碟。
  13. 請按一下 [Create] (建立) 按鈕來建立並啟用執行個體。

gcloud

使用 gcloud compute instances create 指令列工具來建立包含自訂映像檔的執行個體:

gcloud compute instances create [INSTANCE_NAME] \
--image [IMAGE_NAME] \
--image-family [IMAGE_FAMILY]

其中:

  • [INSTANCE_NAME] 是執行個體名稱。
  • [IMAGE_NAME] 是映像檔的名稱。
  • [IMAGE] 是選用欄位。請使用私人或公開映像檔。如果沒有指定映像檔,就會使用空白磁碟。

如果您將自訂映像檔建立為映像檔系列的一部分,請指定該映像檔系列而不是映像檔名稱。這樣一來,執行個體會自動使用映像檔系列中未淘汰的最新映像檔。

建立執行個體時,您最多可以加入 15 個次要非開機磁碟。請為您建立的每個次要磁碟指定 --create-disk 標記。如要透過公開或庫存映像檔建立次要磁碟,請在 --create-disk 標記中指定 imageimage-project 屬性。如要建立空白磁碟,請勿包含這些屬性。您也可以視情況加入磁碟 sizetype 屬性。

gcloud compute instances create [INSTANCE_NAME] \
  --image-family [IMAGE_FAMILY] \
  --image-project [IMAGE_PROJECT] \
  --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [IMAGE_FAMILY]可用映像檔系列的其中一個。
  • [IMAGE_PROJECT] 是映像檔所屬的映像檔專案
  • [DISK_IMAGE] 是次要磁碟的來源映像檔。如需可用映像檔的清單,請執行 gcloud compute images list。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [DISK_IMAGE_PROJECT] 是磁碟映像檔所屬的映像檔專案。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [SIZE_GB] 是次要磁碟的大小。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

API

在 API 中使用自訂映像檔建立執行個體的過程,其實與使用公開映像檔建立執行個體的過程相同。在 sourceImage URI,提供您的專案 ID 和映像檔名稱。

建立 VM 執行個體時,您最多可建立 15 個次要非開機磁碟,方法是針對每個額外磁碟使用 initializeParams 屬性。請使用公開或私人映像檔建立額外磁碟。如要新增空白磁碟,請不要使用 sourceImage 值定義 initializeParams 項目。

...
"initializeParams" :{
   "sourceImage": "global/images/[IMAGE_NAME]"
},
{
"initializeParams": {
   "diskSizeGb": "[SIZE_GB]",
   "sourceImage": "[IMAGE]",
   "diskType": "[DISK_TYPE]"
 },
 {
 "initializeParams": {
 "diskSizeGb": "[SIZE_GB]",
 "diskType": "[DISK_TYPE]"
 }
}...]

其中:

  • [PROJECT_ID] 是您的專案 ID。
  • [IMAGE_NAME] 是特定映像檔,例如 debian-9-stretch-v20170619。您也可以指定映像檔系列。舉例來說,family/debian-9 會傳回最新版的 Debian 9 映像檔。
  • [IMAGE] 是次要磁碟的來源映像檔。如果是空白磁碟,請勿指定映像檔來源。
  • [SIZE_GB] 是磁碟的大小。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

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

如果其他使用者與您共用映像檔,您可以使用該映像檔建立新執行個體。

主控台

  1. 前往 VM 執行個體頁面。

    前往 VM 執行個體頁面

  2. 選取您的專案並點選 [繼續]
  3. 點選 [建立執行個體] 按鈕。
  4. 為您的執行個體指定名稱
  5. 視需要變更此執行個體的區域

  6. 選取執行個體的機器類型

  7. 在「Boot disk」(開機磁碟) 部分,點選 [Change] (變更) 即可設定開機磁碟。

    為顧及 MBR 分區的限制,請建立一個小於 2 TB 的開機磁碟。

  8. 選取 [Custom Images] (自訂映像檔) 分頁標籤。

  9. 請透過下拉式選單中選取映像檔專案。

  10. 選取所需映像檔,然後按一下 [Select] (選取) 按鈕。

  11. 如要允許 VM 執行個體接收 HTTP 或 HTTPS 流量,請選取 [Allow HTTP traffic] (允許 HTTP 流量) 或 [Allow HTTPS traffic] (允許 HTTPS 流量)

    GCP 主控台會將網路標記新增至執行個體,並建立對應輸入防火牆規則,允許所有流量傳入 tcp:80 (HTTP) 或 tcp:443 (HTTPS)。網路標記會建立防火牆規則與執行個體之間的關聯。詳情請參閱虛擬私人雲端說明文件中的防火牆規則總覽一文。

  12. 如何為您的 VM 執行個體新增次要非開機磁碟:

    1. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用)
    2. 選取 [Disks] (磁碟) 分頁標籤。
    3. 在「Additional disks」(其他磁碟) 底下,點選 [Add new disk] (增加新磁碟)。
    4. 指定磁碟的名稱類型來源類型模式刪除規則
    5. 按一下 [Done] (完成)
    6. 請視需要新增其他磁碟。
  13. 請按一下 [Create] (建立) 按鈕來建立並啟用執行個體。

gcloud

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

gcloud compute instances create [INSTANCE_NAME] \
    --image [IMAGE] \
    --image-project [IMAGE_PROJECT]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [IMAGE] 是映像檔的名稱。
  • [IMAGE_PROJECT] 是映像檔所屬的專案。

如果指令成功,gcloud 會傳回新執行個體的屬性:

Created [https://www.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  n1-standard-1               10.240.0.4   104.198.53.60  RUNNING</pre>

建立執行個體時,您最多可以加入 15 個次要非開機磁碟。請為您建立的每個次要磁碟指定 --create-disk 標記。如要透過公開或庫存映像檔建立次要磁碟,請在 --create-disk 標記中指定 imageimage-project 屬性。如要建立空白磁碟,請勿包含這些屬性。您也可以視情況加入磁碟 sizetype 屬性。

gcloud compute instances create [INSTANCE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [IMAGE_FAMILY]可用映像檔系列的其中一個。
  • [IMAGE_PROJECT] 是映像檔所屬的映像檔專案
  • [DISK_IMAGE] 是次要磁碟的來源映像檔。如需可用映像檔的清單,請執行 gcloud compute images list。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [DISK_IMAGE_PROJECT] 是磁碟映像檔所屬的映像檔專案。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [SIZE_GB] 是次要磁碟的大小。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

API

請按照 API 操作說明透過公開映像檔建立執行個體,但須在要求主體中指定 image 欄位。您最多可加入 15 個次要非開機磁碟,方法是針對每個額外磁碟指定 initalizeParams 欄位。如要新增空白磁碟,請勿指定映像檔來源。您可以視需要指定 diskSizeGbdiskType 屬性。

...
image: "projects/[PROJECT_ID]/global/images/[IMAGE]

{
 "initializeParams": {
    "diskSizeGb": "[SIZE_GB]",
    "sourceImage": "[IMAGE]"
       }
   {
  "initializeParams": {
  "diskSizeGb": "[SIZE_GB]"
   }
 }...]

其中:

  • [PROJECT_ID] 是包含映像檔的專案。
  • [IMAGE] 是來源映像檔。
  • [SIZE_GB] 是磁碟的大小。
  • [IMAGE] 是次要磁碟的來源映像檔。如果是空白磁碟,請勿指定映像檔來源。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

透過快照建立執行個體

如果您使用快照備份開機永久磁碟,可以使用該快照建立新執行個體。

主控台

  1. 前往 VM 執行個體頁面。

    前往 VM 執行個體頁面

  2. 選取您的專案並點選 [繼續]
  3. 點選 [建立執行個體] 按鈕。
  4. 為您的執行個體指定名稱
  5. 視需要變更此執行個體的區域

  6. 選取執行個體的機器類型

  7. 在「Boot disk」(開機磁碟) 部分,點選 [Change] (變更) 即可設定開機磁碟。

    為顧及 MBR 分區的限制,請建立一個小於 2 TB 的開機磁碟。

  8. 按一下 [Snapshots] (快照) 分頁標籤,然後從清單中選取快照。

  9. 按一下 [Select] (選取)。

  10. 如要允許 VM 執行個體接收 HTTP 或 HTTPS 流量,請選取 [Allow HTTP traffic] (允許 HTTP 流量) 或 [Allow HTTPS traffic] (允許 HTTPS 流量)

    GCP 主控台會將網路標記新增至執行個體,並建立對應輸入防火牆規則,允許所有流量傳入 tcp:80 (HTTP) 或 tcp:443 (HTTPS)。網路標記會建立防火牆規則與執行個體之間的關聯。詳情請參閱虛擬私人雲端說明文件中的防火牆規則總覽一文。

  11. 如何為您的 VM 執行個體新增次要非開機磁碟:

    1. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用)
    2. 選取 [Disks] (磁碟) 分頁標籤。
    3. 在「Additional disks」(其他磁碟) 底下,點選 [Add new disk] (增加新磁碟)。
    4. 指定磁碟的名稱類型來源類型模式刪除規則
    5. 按一下 [Done] (完成)
    6. 請視需要新增其他磁碟。
  12. 請按一下 [Create] (建立) 按鈕來建立並啟用執行個體。

gcloud

使用 gcloud 指令列工具時,您無法比照主控台的方式,直接使用快照建立執行個體。首先,請透過快照建立新的獨立式開機永久磁碟,然後使用該磁碟建立新的執行個體。

  1. 使用 gcloud compute disks create 指令,從快照建立獨立式開機永久磁碟

    gcloud compute disks create [DISK_NAME] --source-snapshot [SNAPSHOT_NAME]
    
  2. 使用 gcloud compute instances create 指令建立新執行個體,然後為磁碟加上 --disk 標記與 boot=yes 屬性。

    gcloud compute instances create [INSTANCE_NAME] --disk name=[DISK_NAME],boot=yes
    

    建立執行個體時,您最多可以加入 15 個次要非開機磁碟。請為您建立的每個次要磁碟指定 --create-disk 標記。如要透過公開或庫存映像檔建立次要磁碟,請在 --create-disk 標記中指定 imageimage-project 屬性。如要建立空白磁碟,請勿包含這些屬性。您也可以視情況加入磁碟 sizetype 屬性。

    gcloud compute instances create [INSTANCE_NAME] \
       --image-family [IMAGE_FAMILY] \
       --image-project [IMAGE_PROJECT] \
       --create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]
    

    其中:

    • [INSTANCE_NAME] 是新執行個體的名稱。
    • [IMAGE_FAMILY]可用映像檔系列的其中一個。
    • [IMAGE_PROJECT] 是映像檔所屬的映像檔專案
    • [DISK_IMAGE] 是次要磁碟的來源映像檔。如需可用映像檔的清單,請執行 gcloud compute images list。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
    • [DISK_IMAGE_PROJECT] 是磁碟映像檔所屬的映像檔專案。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
    • [SIZE_GB] 是次要磁碟的大小。
    • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

API

在 API 中,您無法比照主控台的方式,直接使用快照建立執行個體。首先,請透過快照建立新的獨立式開機永久磁碟,然後使用該磁碟建立新的執行個體。

限制:

  • 只有一個永久磁碟可以是開機永久磁碟。
  • 您必須連接開機永久磁碟,做為該執行個體的第一個磁碟。
  • 如果您指定 source 屬性,則無法同時指定 initializeParams 屬性。提供 source 表示開機永久磁碟已存在,但是 initializeParams 屬性則表示 Compute Engine 應建立新的開機永久磁碟。

如何透過快照建立執行個體:

  1. 透過快照建立獨立式開機永久磁碟

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/disks
    
    {
      "name": "[DISK_NAME]",
      "sourceSnapshot": "zones/[ZONE]/snapshots/[SNAPSHOT_NAME]"
    }
    
  2. 當您建立新的執行個體時,請連接磁碟。在要求主體中納入用於建立新執行個體的屬性。在 disks 屬性中,納入 source 欄位,並填入要附加的永久磁碟的網址。如要加入最多 15 個次要非開機磁碟,請針對每個磁碟使用 initializeParams 屬性。如要新增空白磁碟,請勿納入映像檔來源。您可以視需要指定 diskSizeGbdiskType 屬性。

    POST https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances
    
    {
      "name": "[INSTANCE_NAME]",
      "machineType": "machineTypes/[MACHINE_TYPE]"
      "networkInterfaces": [{
        "accessConfigs": [{
          "type": "ONE_TO_ONE_NAT",
          "name": "External NAT"
         }],
        "network": "global/networks/default"
      }],
      "disks": [{
         "source": "zones/[ZONE]/disks/[DISK_NAME]",
         "boot": true
       }],
       "initializeParams": [{
          "diskSizeGb": "[SIZE_GB]",
          "sourceImage": "[IMAGE]"
        }
       {
       "initializeParams": {
       "diskSizeGb": "[SIZE_GB]"
       }
    }...]
    

    其中:

    • [IMAGE] 是次要磁碟的來源映像檔。如果是空白磁碟,請勿指定映像檔來源。
    • [SIZE_GB] 是磁碟的大小。
    • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

透過容器映像檔建立執行個體

如要在 Compute Engine 執行個體上部署和啟動容器,請在建立執行個體時指定容器映像檔名稱和選用設定參數。Compute Engine 會使用最新版的 Container-Optimized OS 公開映像檔建立執行個體,該映像檔已安裝 Docker。接著,Compute Engine 會在 VM 啟用時啟動容器。詳情請參閱在 VM 上部署容器一文。

主控台

  1. 前往 VM 執行個體頁面。

    前往 VM 執行個體頁面

  2. 按一下 [建立執行個體]
  3. 為您的執行個體指定名稱
  4. 在「容器」區段中,勾選 [將容器映像檔部署至這個 VM 執行個體] 核取方塊。
  5. 指定您要使用的容器映像檔
    • 例如,您可以透過 Cloud Launcher 指定 gcr.io/cloud-marketplace/google/nginx1:1.12 來選取 NGINX 1.12 容器映像檔。
    • 如果您使用 Docker Hub 中的容器映像檔,請一律指定完整的 Docker 映像檔名稱。例如,指定下列映像檔名稱來部署 Apache 容器映像檔:docker.io/httpd:2.4
  6. 視需求按一下 [進階容器選項]。詳情請參閱設定選項以執行容器
  7. 按一下 [建立] 以建立執行個體、啟動執行個體並啟動容器。

gcloud

使用 gcloud compute instances create-with-container 指令:

gcloud compute instances create-with-container [INSTANCE_NAME] \
     --container-image [CONTAINER_IMAGE]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [CONTAINER_IMAGE] 是容器映像檔的名稱。

舉例來說,以下指令會建立名稱為 nginx-vm 的 VM 執行個體,該執行個體會啟用並運行容器映像檔 (gcr.io/cloud-marketplace/google/nginx1:1.12)。

gcloud compute instances create-with-container nginx-vm \
    --container-image gcr.io/cloud-marketplace/google/nginx1:1.12

當您使用來自 Docker Hub 的容器映像檔時,一律必須指定完整的 Docker 映像檔名稱。例如,指定下列映像檔名稱來部署 Apache 容器映像檔:docker.io/httpd:2.4

建立可存取其他 Google Cloud Platform 服務的執行個體

如果您打算在需要存取其他 Google Cloud Platform 服務的虛擬機器執行個體上運行應用程式,請在建立執行個體之前建立服務帳戶,然後按照操作說明設定要做為服務帳戶運行的執行個體。服務帳戶是一種特殊帳戶,您可以在應用程式的程式碼中使用其憑證來存取其他 Google Cloud Platform 服務。

如要進一步瞭解服務帳戶,請參閱服務帳戶總覽一文。

在特定子網路中建立執行個體

根據預設,Google Cloud Platform (GCP) 會針對每個專案建立名為 default自動模式虛擬私人雲端網路。如果您建立執行個體而沒有指定其網路詳細資料,Compute Engine 會使用預設虛擬私人雲端網路及位於執行個體所在地區的自動子網路。

如要使用在自動模式或自訂模式虛擬私人雲端網路中手動建立的其他網路或子網路,必須在建立執行個體時指定子網路。

主控台

  1. 前往 VM 執行個體頁面。

    前往 VM 執行個體頁面

  2. 選取您的專案並點選 [繼續]
  3. 點選 [建立執行個體] 按鈕。
  4. 為您的執行個體指定名稱
  5. 視需要變更此執行個體的區域

  6. 如要允許 VM 執行個體接收 HTTP 或 HTTPS 流量,請選取 [Allow HTTP traffic] (允許 HTTP 流量) 或 [Allow HTTPS traffic] (允許 HTTPS 流量)

    GCP 主控台會將網路標記新增至執行個體,並建立對應輸入防火牆規則,允許所有流量傳入 tcp:80 (HTTP) 或 tcp:443 (HTTPS)。網路標記會建立防火牆規則與執行個體之間的關聯。詳情請參閱虛擬私人雲端說明文件中的防火牆規則總覽一文。

  7. 展開 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用) 區段。

  8. 在「Networking」(網路) 分頁中的「Network interfaces」(網路介面) 下方,指定網路詳細資料。

    1. 在「Network」(網路) 欄位中,選取包含您所建立之子網路的虛擬私人雲端網路。
    2. 在「Subnet」(子網路) 欄位中,選取執行個體將使用的子網路。
  9. 如何為您的 VM 執行個體新增次要非開機磁碟:

    1. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用)
    2. 選取 [Disks] (磁碟) 分頁標籤。
    3. 在「Additional disks」(其他磁碟) 底下,點選 [Add new disk] (增加新磁碟)。
    4. 指定磁碟的名稱類型來源類型模式刪除規則
    5. 按一下 [Done] (完成)
    6. 請視需要新增其他磁碟。
  10. 請按一下 [Create] (建立) 按鈕來建立並啟用執行個體。

gcloud

使用 gcloud 指令列工具,依照從映像檔快照建立執行個體的操作說明建立執行個體,並在使用 gcloud compute instances create 指令時加上 --subnet [SUBNET_NAME]--zone [ZONE_NAME] 標記:

gcloud compute instances create [INSTANCE_NAME] --subnet [SUBNET_NAME] \
--zone [ZONE_NAME]

其中:

  • [INSTANCE_NAME] 是執行個體的名稱。
  • [SUBNET_NAME] 是子網路的名稱。網路是從指定子網路推測得出。
  • [ZONE_NAME] 是建立執行個體時所在區域的名稱,例如 europe-west1-b。執行個體的地區是從區域推測得出。

建立執行個體時,您最多可以加入 15 個次要非開機磁碟。請為您建立的每個次要磁碟指定 --create-disk 標記。如要透過公開或庫存映像檔建立次要磁碟,請在 --create-disk 標記中指定 imageimage-project 屬性。如要建立空白磁碟,請勿包含這些屬性。您也可以視情況加入磁碟 sizetype 屬性。

gcloud compute instances create [INSTANCE_NAME] \
--subnet [SUBNET_NAME] \
--zone [ZONE_NAME] \
--image-family [IMAGE_FAMILY] \
--image-project [IMAGE_PROJECT] \
--create-disk image=[DISK_IMAGE],image-project=[DISK_IMAGE_PROJECT],size=[SIZE_GB],type=[DISK_TYPE]

其中:

  • [INSTANCE_NAME] 是新執行個體的名稱。
  • [SUBNET_NAME] 是子網路的名稱。
  • [ZONE_NAME] 是建立執行個體時所在區域的名稱,例如 europe-west1-b
  • [IMAGE_FAMILY]可用映像檔系列的其中一個。
  • [IMAGE_PROJECT] 是映像檔所屬的映像檔專案
  • [DISK_IMAGE] 是次要磁碟的來源映像檔。如需可用映像檔的清單,請執行 gcloud compute images list。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [DISK_IMAGE_PROJECT] 是磁碟映像檔所屬的映像檔專案。如果是空白磁碟,請勿指定磁碟映像檔或映像檔專案。
  • [SIZE_GB] 是次要磁碟的大小。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

API

請按照 API 操作說明透過映像檔快照建立執行個體,但須在要求主體中指定 subnet 欄位。如要加入最多 15 個次要非開機磁碟,請針對每個您建立的磁碟使用 initializeParams 屬性。如要新增空白磁碟,請勿加入映像檔來源。您可以視需要指定 diskSizeGbdiskType 屬性。

...
"networkInterfaces": [
{
  "network": "global/networks/[NETWORK_NAME]",
  "subnetwork": "regions/[REGION]/subnetworks/[SUBNET_NAME]",
  "accessConfigs":
    {
      "name": "External NAT",
      "type": "ONE_TO_ONE_NAT"
    }
    {
      "initializeParams": {
         "diskSizeGb": "[SIZE_GB]",
         "sourceImage": "[IMAGE]"
    {
      "initializeParams": {
      "diskSizeGb": "[SIZE_GB]"
     }
 }...]

其中:

  • [IMAGE] 是次要磁碟的來源映像檔。如果是空白磁碟,請勿指定映像檔來源。
  • [SIZE_GB] 是磁碟的大小。
  • [DISK_TYPE] 是永久磁碟的類型,可以是 pd-standardpd-ssd

請在使用前先格式化及掛載磁碟。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件