如果需要 VM 盡快啟動,請按照本頁的操作說明,盡可能縮短虛擬機器 (VM) 的啟動時間。縮短開始時間的代價是資源效率,專案會耗用額外資源,且安全性介面會增加。
本文適用對象為平台管理員或應用程式操作人員群組中的開發人員,負責在 Distributed Cloud 環境中設定 VM 執行個體開始時間。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
如要使用 gdcloud 指令列介面 (CLI) 指令,請務必下載、安裝及設定 gdcloud CLI。Distributed Cloud 的所有指令都使用 gdcloud 或 kubectl CLI,且需要作業系統 (OS) 環境。
取得 kubeconfig 檔案路徑
如要對 Management API 伺服器執行指令,請確認您具備下列資源:
如果您沒有 Management API 伺服器的 kubeconfig 檔案,請登入並產生該檔案。
請使用 Management API 伺服器的 kubeconfig 檔案路徑,取代這些操作說明中的
MANAGEMENT_API_SERVER。
要求 IAM 角色
如要盡可能縮短 VM 的開始時間,請與 IAM 專案管理員聯絡,要求取得虛擬機器專案管理員 (project-vm-admin) 角色。
所有 VM 角色都必須繫結至 VM 所在專案的命名空間。按照步驟驗證存取權。
保持磁碟連線
VM 啟動時,從 VM 節點到 VM 磁碟的連線需要幾秒鐘才能建立。如要加快 VM 啟動速度,VM 關閉時必須保持磁碟連線,這樣後續啟動 VM 時就不會重新啟動磁碟連線。為此,當您執行指令啟用磁碟連線持續運作功能時,系統會自動建立虛擬 Pod,掛接所有 VM 的磁碟。
啟用磁碟連線持續運作
如要為專案 PROJECT 中名為 VM_NAME 的 VM 保持磁碟連線,請執行下列指令。完成後,系統會自動建立虛擬 Pod:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/enable-connection-keep-alive: "true"
'
請根據下列定義,替換這些操作說明中的變數。
| 變數 | 定義 |
|---|---|
MANAGEMENT_API_SERVER |
Management API 伺服器 kubeconfig 檔案。 |
VM_NAME |
VM 的名稱。 |
PROJECT |
VM 所在的 GDC 專案。 |
啟用磁碟連線 Keep-Alive 後,系統會在 VM 所在的專案中建立名為 disk-connection-keep-alive-VM_NAME 的 Pod。Pod 會維持 VM 的磁碟連線,因此下次重新啟動 VM 和後續啟動時間都會縮短。
設定磁碟連線持續連線親和性
Kubernetes 排程器可能會在 VM 重新啟動時選取其他節點。為降低這種情況發生的機率,請在 VM 和 keep-alive Pod 之間設定 VM 間親和性規則。如要設定自動執行這項操作,請按照下列步驟操作:
kubectl --kubeconfig MANAGEMENT_API_SERVER \
-n PROJECT \
patch virtualmachines.virtualmachine.gdc.goog VM_NAME \
--type merge --patch $'
metadata:
annotations:
disk.virtualmachine.gdc.goog/add-connection-keep-alive-affinity: "true"
'
這會在 VM 上新增偏好親和性設定,指向 keep-alive Pod。
注意事項
保持磁碟連線時,請注意以下兩點:
- keep-alive Pod 會產生額外的資源用量:
- 會計入每個節點的 Pod 數量上限。
- 它會使用 Kubernetes 指派的其他 IP 位址。
- 這項功能只會耗用極少量的 CPU 和記憶體。
- 安全防護範圍會擴大,因為即使 VM 關閉,keep-alive Pod 所在的節點仍會連接 VM 的磁碟。
使用 BIOS 韌體
在 GDC 中,使用統一可延伸韌體介面 (UEFI) 韌體啟動 VM 的速度,比使用 BIOS 韌體啟動 VM 慢。
為確保開始時間最短,請將 VM 的韌體類型設為 BIOS:
kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ patch virtualmachines.virtualmachine.gdc.goog VM_NAME \ -type merge --patch $' spec: firmware: type: bios enableSecureBoot: '如果 VM 正在運作,請按照重新啟動 VM 的操作說明重新啟動。
注意事項
使用 BIOS 韌體的缺點是不支援安全啟動。
使用大型開機磁碟
如要盡可能縮短 VM 開始時間,請將大小為 500 GB 以上的開機磁碟附加至 VM。