如果您內部部署環境的虛擬磁碟具有需要的軟體和設定 (有時稱為黃金磁碟或黃金映像檔),則可以把這些磁碟匯入 Distributed Cloud,並使用產生的映像檔建立虛擬機器,以便節省時間。匯入工具支援 RAW 和 QCOW 映像檔格式。
事前準備
請務必備妥下列資訊再繼續操作:
- 已下載、安裝及設定 gcloud CLI。GDC 的所有 CLI 指令都使用
gdcloud
或kubectl
CLI,且需要作業系統 (OS) 環境。
Kubernetes 叢集的登入存取權。按照「登入」中的 CLI 步驟登入 Kubernetes 叢集。
要求權限和存取權
如要執行本頁列出的工作,您必須具備專案虛擬機器管理員角色。按照步驟驗證您在 VM 所在專案的命名空間中,是否具備專案 VirtualMachine 管理員 (project-vm-admin
) 角色。
如要使用 GDC 控制台或 gdcloud CLI 執行 VM 作業,請要求專案 IAM 管理員指派您上一段列出的角色,以及專案檢視者 (project-viewer
) 角色。
匯入虛擬磁碟
您可以使用 gdcloud CLI 或 Virtual Machine Manager API 匯入虛擬磁碟。
如要取得匯入映像檔所需的權限,請要求機構 IAM 管理員授予您專案的專案虛擬機器映像檔管理員 (project-vm-image-admin
) 角色。
gdcloud
使用 gdcloud compute images import
指令建立可開機的映像檔。
import
指令可確保磁碟具備必要套件,包括訪客環境。如要設定憑證,以便在 Linux 上使用安全殼層 (SSH) 連線至執行個體,以及在 Windows 上使用遠端桌面通訊協定 (RDP) 連線至執行個體,就必須具備訪客環境。
在 Linux 上,這項指令也會安裝網路時間通訊協定 (NTP) 和 cloud-init
的套件,讓執行個體在 GDC 中正常運作。
您可以直接從工作站匯入虛擬磁碟檔案。匯入工具會自動將檔案上傳至專案中的物件儲存空間 bucket。
gdcloud compute images import IMAGE_NAME \
--source-file=SOURCE_FILE \
--os=IMAGE_OS \
--timeout=TIMEOUT
請替換下列變數:
- IMAGE_NAME:目標映像檔的名稱。名稱長度不得超過 35 個字元。
- SOURCE_FILE:虛擬磁碟檔案。這個檔案是工作站上的本機檔案。您可以提供絕對或相對路徑。
- IMAGE_OS:要匯入的磁碟作業系統。
- TIMEOUT:匯入作業在因「TIMEOUT」而失敗前可持續的時間。舉例來說,如果指定
2h
,程序會在 2 小時後失敗。預設逾時時間為1h
。
視虛擬磁碟大小和網路連線速度而定,上傳作業可能需要較長時間。匯入作業則可能需要數十分鐘的時間,實際情況需視磁碟大小而定。
API
使用 API 啟動匯入程序前,請先將虛擬磁碟上傳至名為 vm-images-bucket
的物件儲存空間值區。如要建立物件儲存空間值區,請參閱「為專案建立儲存空間值區」。
如要透過 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: OPERATING_SYSTEM minimumDiskSize: DISK_SIZE EOF
請替換下列變數:
變數 說明 IMAGE_NAME 要匯入的映像檔名稱。名稱長度不得超過 35 個字元。 PROJECT_ID 您要匯入映像檔的專案 ID。 SOURCE_FILE 包含虛擬磁碟上傳至物件儲存空間的來源檔案名稱。這個值是物件儲存路徑中 vm-images-bucket/
後方的區段。OPERATING_SYSTEM 要匯入的磁碟作業系統。 DISK_SIZE 使用這個映像檔建立磁碟時,磁碟必須具備的最小大小。建議您在原始圖片的檔案系統大小上,至少使用 20% 的緩衝區。舉例來說,如果虛擬磁碟的原始檔案系統大小為 10Gi,請至少使用 12Gi
。查詢
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
的物件儲存空間 bucket 中,直到您手動刪除檔案為止。
後續步驟
在「建立並啟動 VM」頁面中,建立使用您映像檔的新 VM 執行個體。