根據預設,每個執行個體都會有一個網路介面,用來決定執行個體使用的虛擬私有雲網路。您可以建立具有多個網路介面的執行個體,但每個介面都必須連線至不同的 VPC 網路。每個網路都必須至少有一個子網路,定義可指派給執行個體的 IPv4 或 IPv6 位址範圍。
如要瞭解詳情,請參考下列資源:
根據預設, Google Cloud 會針對每個專案建立名為 default
的自動模式虛擬私人雲端網路。如要使用在自動模式或自訂模式虛擬私有雲網路中手動建立的其他網路或子網路,您必須在建立執行個體及設定網路介面時指定子網路。
事前準備
-
如果尚未設定,請先設定驗證機制。驗證是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要在本機開發環境中執行程式碼或範例,您可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
必要的角色
如要取得建立具有特定子網路的執行個體所需的權限,請要求管理員為您授予專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義的角色包含建立特定子網路執行個體所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立具有特定子網路的執行個體,您必須具備下列權限:
-
compute.instances.create
專案 -
如要為執行個體指定子網路:
compute.subnetworks.use
在專案或所選子網路上 -
如要在使用虛擬私有雲網路時,將外部 IP 位址指派給執行個體:
compute.subnetworks.useExternalIp
專案或所選子網路
需求條件
在子網路中建立執行個體時,請考量下列規則:
- 如果您未指定網路或子網路,Compute Engine 會使用預設虛擬私有雲網路,以及位於執行個體所在地區的自動子網路。
- 如果您未指定網路,Compute Engine 會從指定的子網路推斷網路。
- 如果您指定網路,則必須指定子網路,且該子網路必須屬於同一個網路。否則,執行個體建立作業會失敗。
建立執行個體之前,您必須先建立要使用的子網路。詳情請參閱「建立及管理虛擬私有雲網路」。
在特定子網路中建立執行個體
如要在特定子網路中建立執行個體,請按照下列步驟操作:
主控台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
前往「Create an instance」(建立執行個體)
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
系統隨即會顯示「Create an instance」(建立執行個體) 頁面,並顯示「Machine configuration」(機器設定) 窗格。
在「機器設定」窗格中,執行下列操作:
- 在「Name」欄位中,指定執行個體的名稱。詳情請參閱「資源命名慣例」。
選用:在「Zone」(可用區) 欄位中,選取這個執行個體的可用區。
預設選項為「任何」。如果您沒有變更這個預設選項,Google 會根據機器類型和可用性自動為您選擇可用區。
選取執行個體的機器系列。Google Cloud Console 隨後會顯示可用於所選機器系列的機器系列。可用的機器系列選項如下:
- 一般用途
- 運算最佳化
- 記憶體最佳化
- 儲存空間最佳化
- GPU
在「系列」欄中,選取執行個體的機器系列。
如果您在上一個步驟中選取「GPU」做為機器系列,請選取所需的「GPU 類型」。系統會自動為所選 GPU 類型選取機器系列。
在「Machine type」(機器類型) 部分中,選取執行個體的機器類型。
在導覽選單中,按一下「Networking」。在隨即顯示的「Networking」窗格中,執行下列操作:
如要允許執行個體接收 HTTP 或 HTTPS 流量,請前往「防火牆」區段,然後選取「允許 HTTP 流量」或「允許 HTTPS 流量」。
Compute Engine 會將網路標記新增至執行個體,並建立對應輸入防火牆規則,允許所有流量傳入
tcp:80
(HTTP) 或tcp:443
(HTTPS)。網路標記會建立防火牆規則與執行個體之間的關聯。詳情請參閱 Cloud Next Generation Firewall 說明文件中的「防火牆規則總覽」一文。如要指定網路介面詳細資料,請前往「Network interfaces」(網路介面) 專區,然後按一下「Add a network interface」(新增網路介面)。
在隨即顯示的「New network interface」專區中,執行下列操作:
- 在「Network」(網路) 欄位中,選取包含您所建立之子網路的虛擬私人雲端網路。
- 在「Subnetwork」(子網路) 清單中,選取執行個體要使用的子網路。
- 在「IP 堆疊類型」欄位中,選取網路介面的 IP 堆疊類型。
- 如要確認網路介面詳細資料,請按一下「Done」。
選用:指定其他設定選項。詳情請參閱「建立執行個體時的設定選項」。
如要建立並啟動執行個體,請按一下「建立」。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
使用 Google Cloud CLI,按照相同的操作說明透過公開映像檔建立執行個體或透過快照建立執行個體,然後在執行
gcloud compute instances create
指令時加入本節所述的網路旗標:gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes,image=projects/IMAGE_PROJECT/global/images/IMAGE,size=SIZE \ --network=NETWORK_NAME \ --subnet=SUBNET_NAME \ --stack-type=STACK_TYPE \ --private-network-ip=INTERNAL_IPV4_ADDRESS \ --address=EXTERNAL_IPV4_ADDRESS \ --nic-type=GVNIC
更改下列內容:
INSTANCE_NAME
:運算執行個體的名稱ZONE
:建立執行個體的區域,例如europe-west1-b
。執行個體的地區是從區域推測得出。MACHINE_TYPE
:選用:要用於執行個體的機器類型。IMAGE_PROJECT
:選用:包含圖片的圖片專案IMAGE
:選用:指定下列其中一個:SIZE
:選用:新磁碟的大小。值必須為整數。預設的測量單位為 GiB。NETWORK_NAME
:選用:聯播網名稱SUBNET_NAME
:與執行個體搭配使用的子網路名稱。如要查看網路中的子網路清單,請使用
gcloud compute networks subnets list
指令。STACK_TYPE
:選用:網路介面的堆疊類型。STACK_TYPE
必須是下列其中一個:IPV4_ONLY
、IPV4_IPV6
或IPV6_ONLY
(預覽)。預設值為IPV4_ONLY
。INTERNAL_IPV4_ADDRESS
:選用:您希望計算機執行個體在目標子網路中使用的內部 IPv4 位址。如果不需要特定 IP 位址,請略過這個旗標。如要指定內部 IPv6 位址,請改用
--internal-ipv6-address
標記。EXTERNAL_IPV4_ADDRESS
:選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址。執行下列其中一個步驟:- 指定子網路中的有效 IPv4 位址。
- 如果不希望網路介面有外部 IP 位址,請改用
--network-interface=no-address
旗標。 - 如果您希望介面接收臨時外部 IP 位址,請指定
address=''
。
如要指定外部 IPv6 位址,請改用
--external-ipv6-address
標記。
Terraform
如要在特定子網路中建立執行個體,您可以使用 google_compute_instance
資源。
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。
如要產生 Terraform 程式碼,您可以使用 Google Cloud 控制台中的「等效程式碼」元件。- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
- 點選「建立執行個體」。
- 指定所需參數。
- 在頁面頂端或底部,按一下「等效程式碼」,然後點選「Terraform」分頁標籤,即可查看 Terraform 程式碼。
Go
在試用這個範例之前,請先按照 使用用戶端程式庫的 Compute Engine 快速入門中的操作說明設定 Go。詳情請參閱 Compute Engine Go API 參考資料說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Java
在試用這個範例之前,請先按照 使用用戶端程式庫的 Compute Engine 快速入門中的操作說明設定 Java。詳情請參閱 Compute Engine Java API 參考資料說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Node.js
在試用這個範例之前,請先按照 使用用戶端程式庫的 Compute Engine 快速入門中的操作說明設定 Node.js。詳情請參閱 Compute Engine Node.js API 參考資料說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
Python
在試用這個範例之前,請先按照 使用用戶端程式庫的 Compute Engine 快速入門中的操作說明設定 Python。詳情請參閱 Compute Engine Python API 參考資料說明文件。
如要向 Compute Engine 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定驗證機制」。
REST
請按照 REST
操作說明從公開映像檔或快照建立執行個體,但須在要求主體中指定 subnet
欄位。
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", "subnetwork":"regions/REGION/subnetworks/SUBNET_NAME", "stackType":"STACK_TYPE" } ], "shieldedInstanceConfig":{ "enableSecureBoot":"ENABLE_SECURE_BOOT" } }
更改下列內容:
PROJECT_ID
:要建立 VM 的專案 IDZONE
:建立 VM 的可用區MACHINE_TYPE_ZONE
:包含要用於新 VM 的機器類型MACHINE_TYPE
:新 VM 的機器類型,可為預先定義或自訂VM_NAME
:新 VM 的名稱IMAGE_PROJECT
:包含圖片的專案
例如,如果您將debian-10
指定為圖片系列,請將debian-cloud
指定為圖片專案。IMAGE
:請指定下列任一值:IMAGE
:公開映像檔的特定版本例如:
"sourceImage": "projects/debian-cloud/global/images/debian-10-buster-v20200309"
IMAGE_FAMILY
:圖片系列這會根據最新的非淘汰作業系統映像檔建立 VM。舉例來說,如果您指定
"sourceImage": "projects/debian-cloud/global/images/family/debian-10"
,Compute Engine 會使用Debian 10
映像檔系列中的最新 OS 映像檔建立 VM。
NETWORK_NAME
:選用:您要用於 VM 的 VPC 網路。您可以指定default
使用預設網路。REGION
:指定子網路所在的區域。必須與 VM 位於相同的區域。SUBNET_NAME
:要使用的子網路名稱STACK_TYPE
:選用:網路介面的堆疊類型。您可以指定IPV4_ONLY
、IPV4_IPV6
或IPV6_ONLY
其中之一 (預覽)。預設值為IPV4_ONLY
。ENABLE_SECURE_BOOT
:選用:如果您選擇支援受防護 VM 功能的映像檔,Compute Engine 預設會啟用虛擬信任平台模組 (vTPM) 和完整性監控。Compute Engine 預設不會啟用安全啟動。如果您為
enableSecureBoot
指定true
,Compute Engine 會建立 VM,並啟用所有三種受防護的 VM 功能。在 Compute Engine 啟動 VM 後,您必須停止 VM,才能修改受防護的 VM 選項。