在執行個體中新增動態網路介面卡
本頁說明如何在現有的 VM 執行個體中新增動態網路介面 (NIC)。如要瞭解如何建立新執行個體,請參閱「建立具有多個網路介面的 VM」。
事前準備
在將動態網路介面卡新增至執行個體前,請先執行下列操作:
- 請務必熟悉「多個網路介面」總覽中所述的動態網路介面屬性和限制。
- 如有需要,請按照「查看執行個體的網路介面」一文中的指示,查看執行個體現有的網路介面。
新增動態 NIC
本節說明如何在執行個體中新增動態 NIC。
新增動態 NIC 時,您可能會觀察到傳播延遲。這項延遲時間通常為幾秒,但在少數情況下,可能會延遲至一分鐘。
gcloud
如要在現有執行個體中新增動態 NIC,請使用 gcloud beta compute instances network-interfaces add
指令。
gcloud beta compute instances network-interfaces add INSTANCE_NAME \ --zone=ZONE \ --vlan=VLAN_ID \ --parent-nic-name=PARENT_VNIC_NAME \ --network=NETWORK \ --subnetwork=SUBNET
更改下列內容:
INSTANCE_NAME
:要新增動態 NIC 的執行個體名稱ZONE
:執行個體的區域VLAN_ID
:Dynamic NIC 的 VLAN IDPARENT_VNIC_NAME
:父項 vNIC 的名稱,例如nic0
NETWORK
:動態 NIC 連結的網路SUBNET
:動態 NIC 連接的子網路
或者,您也可以在更新執行個體屬性時,將動態 NIC 新增至執行個體。詳情請參閱「更新執行個體屬性」。
如要將動態網路介面卡新增至代管執行個體群組 (MIG),請參閱 gcloud beta compute instance-groups managed set-instance-template
指令。
API
如要在現有執行個體中新增動態網路介面卡,請使用 instances.addNetworkInterface
方法。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/addNetworkInterface { "subnetwork": "regions/REGION/subnetworks/SUBNET", "parentNicName": "PARENT_VNIC_NAME", "vlan": "VLAN_ID" }
更改下列內容:
PROJECT_ID
:包含執行個體的專案 IDZONE
:包含執行個體的區域INSTANCE_NAME
:要新增動態 NIC 的執行個體名稱REGION
:包含執行個體的區域SUBNET
:動態 NIC 連結的子網路PARENT_VNIC_NAME
:父項 vNIC 的名稱,例如nic0
VLAN_ID
:Dynamic NIC 的 VLAN ID
或者,您也可以在更新執行個體屬性時,將動態 NIC 新增至執行個體。詳情請參閱「更新執行個體屬性」。
如要將動態 NIC 新增至代管執行個體群組 (MIG),請參閱 instanceGroupManagers.setInstanceTemplate
方法。
為動態 NIC 設定來賓作業系統
本節說明如何完成在新增或現有執行個體中新增動態 NIC 時,所需的額外來賓作業系統設定。
請選擇下列其中一個設定選項:
設定選項 | 說明 |
---|---|
設定動態網路介面卡的自動管理功能 (建議) | 使用 Google 訪客代理程式自動管理動態網路介面卡。 訪客環境包含 Google 訪客代理程式,可在 Google Cloud OS 映像檔的 Linux 發行版本中,自動安裝及管理根名稱空間中的 VLAN 介面。Google 訪客代理程式 20250204.02 以上版本支援這項功能。 |
手動設定訪客作業系統 | 在訪客作業系統中執行指令,安裝動態網路介面卡。 如果您使用這個選項,重新啟動執行個體後,設定不會自動保留。如要讓設定在重新啟動後持續存在,請使用建議的方法為 Linux 發行版本設定持續性網路介面。例如,請參閱 Debian 的 NetworkConfiguration 和 Ubuntu 的 interfaces。 |
設定動態網路介面卡的自動管理功能
本節說明如何使用 Google 訪客代理程式,設定動態 NIC 的自動管理功能。
每個執行個體只需完成這些步驟一次。如果您已在執行個體中新增動態 NIC,且已完成這些步驟,則不必重複執行這些步驟。
如要設定動態 NIC 的自動管理功能,請按照下列步驟操作:
使用 SSH 連線至執行個體。
請確認執行個體執行的是 20250204.02 以上版本的 Google 訪客代理程式:
如要判斷執行個體是否正在執行 Google 訪客代理程式,請執行訪客環境的已安裝套件一節中列出的適當指令。
安裝或更新訪客環境,可確保您擁有最新版的 Google 訪客代理程式。您可以按照「驗證訪客環境」一節中的步驟確認版本。
設定 Google 訪客代理程式,以便管理動態網路介面卡:
開啟或建立您的訪客環境設定檔。
edit /etc/default/instance_configs.cfg
將下列內容新增至設定檔,然後儲存變更並結束編輯器。
[NetworkInterfaces] vlan_setup_enabled = true manage_primary_nic = true
如要進一步瞭解這些設定,請參閱以下文章:
vlan_setup_enabled = true
:設定 Google 訪客代理程式,以便安裝及管理動態 NICmanage_primary_nic = true
:Google 訪客代理程式需要額外設定,才能管理在nic0
下建立的動態網路介面卡
如要進一步瞭解如何編輯訪客代理程式設定檔,請參閱 Google 訪客代理程式說明文件中的「設定」。
執行下列指令,重新啟動 Guest Agent。或者,您也可以重新啟動執行個體。
sudo systemctl restart google-guest-agent.service
列出執行個體上的網路介面,確認 Google 訪客代理程式已安裝動態 NIC。
舉例來說,下列指令會顯示
a-gcp.ens4.11
等名稱,代表 VLAN ID 為11
的動態 NIC,該 NIC 是ens4
介面的子項。sudo ip -d addr
手動設定來賓作業系統
如要在執行個體的訪客作業系統中手動設定動態網路介面卡,請按照下列步驟操作:
使用 SSH 連線至執行個體。
如果執行個體正在執行 Google 訪客代理程式,請停用動態 NIC 的自動管理功能。您可以使用「已安裝的訪客環境套件」一節中列出的適當指令,判斷執行個體是否正在執行 Google 訪客代理程式。
如要停用動態網路介面卡的自動管理功能,請按照下列步驟操作:
開啟或建立您的訪客環境設定檔。
edit /etc/default/instance_configs.cfg
將下列內容新增至設定檔,然後儲存變更並結束編輯器。
[NetworkInterfaces] vlan_setup_enabled = false manage_primary_nic = false
如要進一步瞭解如何編輯訪客代理程式設定檔,請參閱 Google 訪客代理程式說明文件中的「設定」。
執行下列指令,重新啟動 Guest Agent。或者,您也可以重新啟動執行個體。
sudo systemctl restart google-guest-agent.service
針對您建立的每個動態網路介面卡,執行下列操作:
取得父 vNIC 的 MAC 位址。如要找出 MAC 位址,請執行下列指令,查詢中繼資料伺服器:
curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/VNIC_NUMBER/mac -H "Metadata-Flavor: Google"
將
VNIC_NUMBER
替換為父 vNIC 的編號。例如nic0
的0
,或nic1
的1
。在執行個體的訪客 OS 中設定子介面。舉例來說,在 Debian VM 上執行下列指令:
sudo modprobe 8021q sudo ip link add link VNIC_NAME name VNIC_NAME.VLAN_ID type vlan id VLAN_ID sudo ip addr add IP_ADDRESS dev VNIC_NAME.VLAN_ID sudo ip link set dev VNIC_NAME.VLAN_ID address MAC_ADDRESS sudo ip link set up VNIC_NAME.VLAN_ID
更改下列內容:
VNIC_NAME
:作業系統指派的父項 vNIC 名稱,例如eth1
或ens4
IP_ADDRESS
:您建立的動態網路介面卡的 IP 位址VLAN_ID
:您指派給動態網路介面卡的 VLAN IDMAC_ADDRESS
:您在上一個步驟中取得的 MAC 位址