如要盡快啟動 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 時就不會重新啟動磁碟連線。為此,當您執行指令來啟用磁碟連線 keep-alive 時,系統會自動建立虛擬 Pod,掛接所有 VM 的磁碟。
啟用磁碟連線 keep-alive
如要讓專案 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 時會更快,後續的啟動時間也會縮短。
設定磁碟連線的 keep-alive 相依性
Kubernetes 排程器可能會在 VM 重新啟動時,為 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 上新增偏好的親和性設定,以保留 Pod。
注意事項
請注意以下兩件事:
- keep-alive Pod 會增加資源用量:
- 這會計入每個節點的 Pod 數量上限。
- 並使用 Kubernetes 指派的額外 IP 位址。
- 這項功能只會耗用極少的額外 CPU 和記憶體。
- 由於存在 Keep-Alive Pod 的節點一律會附加 VM 的磁碟 (即使 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。