本文說明如何將虛擬機器 (VM) 磁碟映像檔匯入 Google Distributed Cloud (GDC) 實體隔離環境。
將現有的虛擬磁碟 (通常稱為黃金磁碟或黃金映像檔) 匯入 Distributed Cloud,即可節省時間,並使用產生的映像檔建立虛擬機器。匯入工具支援 RAW 和 QCOW 映像檔格式。
本文適用於平台管理員或應用程式運算子群組中,負責建立 VM 映像檔的開發人員。詳情請參閱 GDC 氣隙環境適用的目標對象說明文件。
事前準備
請務必先完成以下事項,再繼續操作:
- 已下載、安裝及設定 gcloud CLI。GDC 的所有 CLI 指令都使用
gdcloud或kubectlCLI,且需要作業系統 (OS) 環境。
要求權限和存取權
如要匯入映像檔並執行本頁列出的 VM 作業,請要求專案 IAM 管理員在 VM 所在的專案命名空間中授予您下列 IAM 角色:
專案 VirtualMachine 管理員 (
project-vm-admin):管理專案命名空間中的 VM。專案檢視者 (
project-viewer):擁有專案命名空間中所有資源的唯讀存取權。
按照步驟驗證存取權。
匯入虛擬磁碟
您可以直接從工作站匯入虛擬磁碟檔案。匯入工具會自動將檔案上傳至專案中的物件儲存空間 bucket。
如要匯入虛擬磁碟,請使用 gdcloud CLI 或 Virtual Machine Manager API。
gdcloud
import 指令會檢查磁碟是否具備必要套件,以便設定憑證,透過安全殼層 (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請替換下列變數:
- IMAGE_NAME:要匯入的映文件名稱。名稱長度不得超過 35 個字元。
- PROJECT_ID:您要匯入圖片的專案 ID。
- SOURCE_FILE:包含上傳至物件儲存空間的虛擬磁碟來源檔案名稱。這個值是
vm-images-bucket/後的物件儲存路徑區段。 - IMAGE_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,無論指令是否成功,都會在完成時清除物件。如果指令遭到中斷,或是您透過 API 匯入映像檔,虛擬磁碟檔案可能會保留在名為 vm-images-bucket 的物件儲存空間值區中,直到您手動刪除該檔案為止。