在執行個體中新增動態 NIC
本頁說明如何將 Dynamic Network Interface (NIC) 新增至現有 VM 執行個體。如要瞭解如何建立新執行個體,請參閱建立具備多個網路介面的 VM。
事前準備
將動態 NIC 新增至執行個體之前,請先完成下列步驟:
- 請務必熟悉多個網路介面總覽中說明的動態 NIC 屬性和限制。
- 如有需要,請按照「查看執行個體的網路介面」一文中的說明,查看執行個體現有的網路介面。
新增 Dynamic 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
:要新增 Dynamic NIC 的執行個體名稱ZONE
:執行個體的區域VLAN_ID
:動態 NIC 的 VLAN IDPARENT_VNIC_NAME
:父項 vNIC 的名稱,例如nic0
NETWORK
:動態 NIC 連接的網路SUBNET
:動態 NIC 連接的子網路
或者,您也可以在更新執行個體屬性時,將動態 NIC 新增至執行個體。詳情請參閱「更新執行個體屬性」。
如要將動態 NIC 新增至代管執行個體群組 (MIG),請參閱 gcloud beta compute instance-groups managed set-instance-template
指令。
API
如要將動態 NIC 新增至現有執行個體,請使用 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
:動態 NIC 的 VLAN ID
或者,您也可以在更新執行個體屬性時,將動態 NIC 新增至執行個體。詳情請參閱「更新執行個體屬性」。
如要將動態 NIC 新增至代管執行個體群組 (MIG),請參閱 instanceGroupManagers.setInstanceTemplate
方法。
設定動態 NIC 的客體 OS
本節說明將動態 NIC 新增至新執行個體或現有執行個體時,如何完成額外的客體 OS 設定。
選擇下列其中一個設定選項:
設定選項 | 說明 |
---|---|
設定自動管理動態 NIC (建議) | 使用 Google 訪客代理程式自動管理動態 NIC。 訪客環境包含 Google 訪客代理程式,可自動安裝及管理 OS 映像檔 Linux 發行版本的根命名空間中的 VLAN 介面。 Google Cloud Google 客戶代理程式 20250204.02 以上版本支援這項功能。 |
手動設定客體 OS | 在客體作業系統中執行指令,安裝動態 NIC。 如果您使用這個選項,執行個體重新啟動後,設定不會自動保留。如要讓設定在重新啟動後仍保持不變,請使用建議的方法,為 Linux 發行版本設定永久網路介面。舉例來說,請參閱 Debian 的「NetworkConfiguration」NetworkConfiguration和 Ubuntu 的「interfaces」。 |
設定自動管理動態 NIC
本節說明如何使用 Google 客戶端代理程式,設定動態 NIC 的自動管理功能。
每個執行個體只需完成一次這些步驟。 如果您已為執行個體新增動態 NIC,並完成這些步驟,就不必重複操作。
如要設定自動管理動態 NIC:
使用 SSH 連線至執行個體。
確認執行個體執行的 Google 客戶代理程式為 20250204.02 以上版本:
如要判斷執行個體是否正在執行 Google 訪客代理程式,請執行「訪客環境的已安裝套件」中列出的適當指令。
安裝或更新訪客環境可確保您擁有最新版本的 Google 訪客代理程式。如要確認版本,請按照「驗證訪客環境」一文中的步驟操作。
設定 Google 客戶代理程式來管理動態 NIC:
開啟或建立訪客環境設定檔。
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
下建立的動態 NIC。
如要進一步瞭解如何編輯訪客代理程式設定檔,請參閱 Google 訪客代理程式說明文件中的「設定」一節。
執行下列指令,重新啟動客體代理程式。或者,您也可以重新啟動執行個體。
sudo systemctl restart google-guest-agent.service
列出執行個體上的網路介面,確認 Google 客戶端代理程式已安裝動態 NIC。
舉例來說,下列指令會顯示名稱,例如為 VLAN ID 為
11
的動態 NIC 顯示a-gcp.ens4.11
,該 NIC 是以ens4
介面的子項建立。sudo ip -d addr
手動設定客體 OS
如要在執行個體的客層 OS 中手動設定動態 NIC,請按照下列步驟操作:
使用 SSH 連線至執行個體。
如果執行個體正在執行 Google 客戶代理程式,請停用動態 NIC 的自動管理功能。如要判斷執行個體是否正在執行 Google 訪客代理程式,請使用「訪客環境的已安裝套件」中列出的適當指令。
如要停用動態 NIC 的自動管理功能,請按照下列步驟操作:
開啟或建立訪客環境設定檔。
edit /etc/default/instance_configs.cfg
在設定檔中新增下列內容,然後儲存變更並結束編輯器。
[NetworkInterfaces] vlan_setup_enabled = false manage_primary_nic = false
如要進一步瞭解如何編輯訪客代理程式設定檔,請參閱 Google 訪客代理程式說明文件中的「設定」一節。
執行下列指令,重新啟動客體代理程式。或者,您也可以重新啟動執行個體。
sudo systemctl restart google-guest-agent.service
針對您建立的每個動態 NIC,執行下列步驟:
取得父項 vNIC 的 MAC 位址。如要尋找 MAC 位址,請執行下列指令,查詢中繼資料伺服器:
curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/VNIC_NUMBER/mac -H "Metadata-Flavor: Google"
將
VNIC_NUMBER
替換為父項 vNIC 的編號。例如,0
(nic0
) 或1
(nic1
)。在執行個體的訪客 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
:您建立的動態 NIC 的 IP 位址VLAN_ID
:您指派給動態 NIC 的 VLAN IDMAC_ADDRESS
:您在上一個步驟中取得的 MAC 位址