本文說明將虛擬機器 (VM) 磁碟映像檔匯入 Google Distributed Cloud (GDC) 實體隔離環境的步驟。
將現有的虛擬磁碟 (通常稱為「黃金磁碟」或「黃金映像檔」) 匯入 GDC,即可節省時間,並使用產生的映像檔建立虛擬機器。匯入工具支援 RAW 和 QCOW 映像檔格式。
本文適用於平台管理員或應用程式操作員群組中,負責建立 VM 映像檔的開發人員。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。
事前準備
請務必先完成以下事項,再繼續操作:
準備環境
- 已下載、安裝及設定 gdcloud CLI。GDC 的所有 CLI 指令都會使用 gdcloud CLI 或 kubectl CLI,且需要作業系統 (OS) 環境。
要求 IAM 角色
如要取得匯入虛擬磁碟所需的權限,請要求 IAM 專案管理員授予您下列專案角色:
虛擬機器專案管理員 (
project-vm-admin):建立、修改、列出及刪除專案命名空間中的 VM。專案檢視者 (
project-viewer):查看專案命名空間中的所有資源。虛擬機器映像檔專案管理員 (
project-vm-image-admin):在專案命名空間中建立、列出及刪除 VM 映像檔。
所有 VM 角色都必須繫結至 VM 所在專案的命名空間。按照步驟驗證存取權。
匯入虛擬磁碟
您可以直接從工作站匯入虛擬磁碟檔案。匯入工具會自動將檔案上傳至專案中的物件儲存庫 bucket。
如要匯入虛擬磁碟,請使用 gdcloud CLI 或 虛擬機器管理員 API。
gdcloud
import 指令會檢查 GDC 提供的映像檔是否具備必要套件,可設定憑證,以便使用安全殼層 (SSH) 和遠端桌面通訊協定 (RDP) 連線至執行個體。包括適用於訪客環境的套件。
這個指令也會安裝網路時間通訊協定 (NTP) 和 cloud-init 的套件,讓執行個體在 GDC 中正常運作。
- 如要建立可開機映像檔,請使用
gdcloud compute images import指令:
gdcloud compute images import IMAGE_NAME \
--source-file=SOURCE_FILE \
--os=IMAGE_OS \
--timeout=TIMEOUT
請替換下列變數:
- IMAGE_NAME:目的地映像檔的名稱。名稱長度不得超過 35 個字元。
- SOURCE_FILE:虛擬磁碟檔案。這個檔案是工作站上的本機檔案。您可以提供絕對或相對路徑。
- IMAGE_OS:要匯入的磁碟 OS。
- TIMEOUT:匯入作業在失敗並顯示「TIMEOUT」前可持續的時間。舉例來說,如果指定
2h,程序會在 2 小時後失敗。預設逾時時間為1h。
視虛擬磁碟大小和網路連線速度而定,上傳作業可能需要較長時間。視磁碟大小而定,匯入作業可能需要幾十分鐘才能完成。
API
如要透過 API 匯入虛擬磁碟,請按照下列步驟操作:
在 Management API 伺服器中建立
VirtualMachineImageImport自訂資源,啟動映像檔匯入程序:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ apply -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineImageImport metadata: name: IMAGE_NAME namespace: PROJECT_ID spec: source: objectStorage: bucketRef: name: vm-images-bucket objectName: SOURCE_FILE imageMetadata: name: IMAGE_NAME operatingSystem: IMAGE_OS minimumDiskSize: DISK_SIZE EOF請替換下列變數:
- MANAGEMENT_API_SERVER:管理 API 伺服器的 kubeconfig 檔案。
- IMAGE_NAME:要匯入的映文件名稱。名稱長度不得超過 35 個半形字元。
- PROJECT_ID:要匯入映文件的專案 ID。
- SOURCE_FILE:來源檔案的名稱,內含上傳至物件儲存庫的虛擬磁碟。這個值是物件儲存庫路徑中
vm-images-bucket/之後的部分。 - IMAGE_OS:要匯入的磁碟 OS。
- DISK_SIZE:從這個映像檔建立的磁碟大小下限。請預留至少 20% 的緩衝空間,檔案系統大小應大於原始圖片。舉例來說,如果虛擬磁碟的原始檔案系統大小為 10G,請至少使用
12G。
查詢
VirtualMachineImageImport自訂資源的狀態,監控匯入進度:kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \ -o jsonpath='{.status}'
清除所用資源
匯入程序包括將虛擬磁碟檔案上傳至物件儲存庫。如果使用 gdcloud CLI,CLI 會在指令完成時刪除物件,即使匯入失敗也一樣。如果您中斷指令,或使用 API 匯入映像檔,虛擬磁碟檔案可能會保留在名為 vm-images-bucket 的物件儲存庫 bucket 中,直到您手動刪除檔案為止。
後續步驟
- 查看 GDC 支援的映像檔。
- 建立並啟動使用映像檔的 VM 執行個體。
- 為 VM 建立開機磁碟。