本文適用於執行 Google Distributed Cloud 的應用程式擁有者和平台管理員。本文說明如何建立及使用 VM 類型,或在建立使用 GDC 上 VM 執行階段的 VM 時,手動指定 CPU 和記憶體資源。
事前準備
如要完成這份文件,您必須存取下列資源:
- 存取 Google Distributed Cloud 1.12.0 版 (
anthosBareMetalVersion: 1.12.0
) 以上版本的叢集。您可以使用任何可執行工作負載的叢集類型。 如有需要,請在 Compute Engine 上試用 Google Distributed Cloud,或參閱叢集建立總覽。 virtctl
用戶端工具已安裝為kubectl
的外掛程式。視需要安裝 virtctl 用戶端工具。
建立 VM
建立 VM 時,您可以手動指定 CPU 和記憶體需求。這項功能可讓您建立 VM,並搭配適當的運算資源,滿足應用程式需求。
如要建立 VM 並手動指定 CPU 和記憶體需求,請按照下列步驟操作。
CLI
資訊清單
在您選擇的編輯器中建立
VirtualMachine
資訊清單,例如 my-custom-vm.yaml:nano my-custom-vm.yaml
複製並貼上下列 YAML 資訊清單:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
在這個 YAML 檔案中,定義下列設定:
VM_NAME
:VM 的名稱。如要進一步瞭解名稱限制,請參閱「物件名稱和 ID」。VCPU_NUMBER
:要指派給 VM 的 vCPU 數量。- 您可以為 VM 指派 1 到 96 個 vCPU。
MEMORY_SIZE
:要指派給 VM 的記憶體量。- 您可以為 VM 指派 1M 到 1T 的記憶體。詳情請參閱「記憶體資源單位」。
VM 會連線至預設
pod-network
網路eth0
。名為
VM_NAME-boot-dv
的開機磁碟必須已存在。詳情請參閱「建立及管理虛擬磁碟」。在編輯器中儲存並關閉 VM 資訊清單。
使用
kubectl
建立 VM:kubectl apply -f my-custom-vm.yaml
建立及使用 VM 類型
在 GDC 上啟用 VM 執行階段時,系統會提供新的 VirtualMachineType 自訂資源定義。這個定義用於指定 VM 的 CPU 和記憶體資源。您可以為所需的不同工作負載建立 VM 類型,並根據這些類型,將一組一致的運算資源套用至 VM。
如果 Google Distributed Cloud 中已啟用 GDC 的 VM Runtime,vm-controller-manager
會安裝預先定義的 VM 類型。下列定義顯示預設 example-machinetype
VM 類型:
apiVersion: vm.cluster.gke.io/v1
kind: VirtualMachineType
metadata:
name: "example-machinetype"
labels:
vm.cluster.gke.io/predefined-machinetype: "true"
spec:
cpu:
vcpus: 2
memory:
capacity: 4G
您無法更新這個預先定義的 VM 類型。如果叢集中沒有這個預先定義的 VM 類型,系統會在每次啟動或重新啟動 vm-controller-manager
時重新安裝,例如您刪除 VM 類型時。
建立 VM 類型
您可以建立自己的 VM 類型,以符合工作負載的運算需求。
在您選擇的編輯器中,建立
VirtualMachineType
資訊清單,例如 my-vm-type.yaml:nano my-vm-type.yaml
複製並貼上下列 YAML 資訊清單:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: my-vm-type spec: cpu: vcpus: VCPU_NUMBER memory: capacity: MEMORY_SIZE
在這個 VM 類型中,您會定義下列設定:
在編輯器中儲存並關閉 VM 類型資訊清單。
使用
kubectl
建立 VM 類型:kubectl apply -f my-vm-type.yaml
使用 VM 類型建立 VM
在VirtualMachine
資訊清單compute
中指定 VM 類型,即可將預先定義的設定套用至 VM。
在您選擇的編輯器中建立
VirtualMachine
資訊清單,例如 my-custom-vm.yaml。nano my-custom-vm.yaml
複製並貼上下列 YAML 資訊清單:
apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: name: VM_NAME spec: compute: virtualMachineTypeName: my-vm-type interfaces: - name: eth0 networkName: pod-network default: true disks: - virtualMachineDiskName: VM_NAME-boot-dv boot: true
在這個 YAML 檔案中,將您在上一個章節中建立的自訂 VM 類型名稱 (例如
my-vm-type
) 指定為virtualMachineTypeName
的值。VM 會連線至預設
pod-network
網路eth0
。名為
VM_NAME-boot-dv
的開機磁碟必須已存在。詳情請參閱「建立及管理虛擬磁碟」。在編輯器中儲存並關閉 VM 資訊清單。
使用
kubectl
建立 VM:kubectl apply -f my-custom-vm.yaml