이 페이지에서는 Google Distributed Cloud의 VM 런타임을 실행하는 Google Distributed Cloud 연결 랙에서 가상 머신을 관리하는 방법을 설명합니다. 이 페이지의 단계를 완료하기 전에 GDC의 VM 런타임을 숙지해야 합니다. 지원되는 게스트 운영체제 목록은 GDC용 VM 런타임에 검증된 게스트 운영체제를 참고하세요.
가상 머신이 Distributed Cloud 연결 플랫폼의 필수 구성요소로 작동하는 방법을 알아보려면 온프레미스 에지 VM을 관리하기 위해 GKE Enterprise 확장을 참고하세요.
Distributed Cloud 연결된 클러스터는 가상 머신 웹훅을 지원합니다. 이를 통해 Distributed Cloud Connected는 로컬 Kubernetes API 서버에 대한 사용자 요청을 검증할 수 있습니다. 거부된 요청은 거부 사유에 관한 자세한 정보를 생성합니다.
Distributed Cloud Connected에서 GDC의 VM 런타임 지원 사용 설정
기본적으로 Distributed Cloud Connected에서는 GDC 가상 머신 지원의 VM 런타임이 사용 중지되어 있습니다. 이 기능을 사용 설정하려면 이 섹션의 단계를 완료하세요. 이 섹션의 안내에서는 완전히 작동하는 Distributed Cloud 연결 클러스터가 있다고 가정합니다.
다음 콘텐츠로
VMRuntime커스텀 리소스를 수정하고 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: # Enable Anthos VM Runtime support enabled: true # vmImageFormat defaults to "raw" if not set vmImageFormat: "raw" # Set node grace period to 55 seconds; haPolicy: defaultRecoveryStrategy: Reschedule nodeHeartbeatInterval: 15s nodeMonitorGracePeriod: 55s
vmImageFormat매개변수의 값을 변경하지 마세요. Distributed Cloud Connected는 다른 가상 디스크 형식을 지원하지 않습니다.이 프로세스를 완료하는 데 일반적으로 몇 분 정도 걸립니다.
vmImageFormat매개변수의 값을 변경하지 마세요. Distributed Cloud Connected는 다른 가상 디스크 형식을 지원하지 않습니다.이 프로세스를 완료하는 데 일반적으로 몇 분 정도 걸립니다.
다음 명령어를 사용하여
VMRuntime커스텀 리소스가 클러스터에 적용되었는지 확인합니다.kubectl get vmruntime -o yaml
이 명령어는 다음 예와 유사한 출력을 반환합니다.
- apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime ... spec: enabled: true vmImageFormat: raw status: ... ready: true ...다음 명령어를 사용하여 클러스터에서 GDC용 VM 런타임 가상 머신 지원이 사용 설정되었는지 확인합니다.
kubectl get pods -n vm-system
이 명령어는 다음 예와 같이 클러스터에서 실행되는 GDC 하위 시스템 포드의 VM 런타임을 보여주는 출력을 반환합니다.
NAME READY STATUS RESTARTS AGE cdi-apiserver-6c76c6cf7b-n68wn 1/1 Running 0 132m cdi-deployment-f78fd599-vj7tv 1/1 Running 0 132m cdi-operator-65c4df9647-fcb9d 1/1 Running 0 134m cdi-uploadproxy-7765ffb694-6j7bf 1/1 Running 0 132m macvtap-fjfjr 1/1 Running 0 134m virt-api-77dd99dbbb-bs2fb 1/1 Running 0 132m virt-api-77dd99dbbb-pqc27 1/1 Running 0 132m virt-controller-5b44dbbbd7-hc222 1/1 Running 0 132m virt-controller-5b44dbbbd7-p8xkk 1/1 Running 0 132m virt-handler-n76fs 1/1 Running 0 132m virt-operator-86565697d9-fpxqh 2/2 Running 0 134m virt-operator-86565697d9-jnbt7 2/2 Running 0 134m vm-controller-controller-manager-7844d5fb7b-72d8m 2/2 Running 0 134m vmruntime-controller-manager-845649c847-m78r9 2/2 Running 0 175m
virtctl 관리 도구 설치
분산 클라우드 연결 클러스터에서 가상 머신을 관리하려면 virtctl 클라이언트 도구가 필요합니다. 도구를 설치하려면 다음 단계를 완료하세요.
virtctl클라이언트 도구를kubectl플러그인으로 설치합니다.export VERSION=v0.59.0-anthos1.28-gke.8 gcloud storage cp gs://anthos-baremetal-release/virtctl/${VERSION}/linux-amd64/virtctl /usr/local/bin/virtctl cd /usr/local/bin sudo ln -s virtctl kubectl-virt sudo chmod a+x virtctl cd -
virt플러그인이 설치되었는지 확인합니다.kubectl plugin list
플러그인이 성공적으로 설치되면 명령어의 출력에
kubectl-virt이 플러그인 중 하나로 나열됩니다.
Distributed Cloud Connected에서 가상 머신 프로비저닝
이 섹션에서는 Symcloud Storage 추상화 레이어를 사용하여 Distributed Cloud 연결 클러스터에 Linux 가상 머신과 Windows 가상 머신을 프로비저닝하는 방법을 보여주는 구성 예를 제공합니다.
Distributed Cloud Connected는 가상 머신에 파일 시스템 스토리지를 제공하지 않으므로 kubectl virt 명령어를 사용하여 Distributed Cloud Connected 클러스터에 직접 가상 머신을 만들 수 없습니다.
이 섹션의 단계를 완료하기 전에 먼저 Symcloud Storage용 Distributed Cloud Connected 구성의 단계를 완료해야 합니다. 나중에 클러스터에서 Symcloud Storage를 사용 중지하면 Symcloud Storage를 사용하도록 구성된 가상 머신이 실패합니다.
Distributed Cloud Connected에서 Linux 가상 머신 프로비저닝
다음 예에서는 Ubuntu Server 22.04를 실행하는 Symcloud Storage로 Linux 가상 머신을 프로비저닝하는 방법을 보여줍니다. 설치 소스는 Ubuntu Server 22.04 ISO 디스크 이미지입니다.
Ubuntu Server 설치 디스크 이미지에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: ubuntu-iso-disk spec: size: 20Gi storageClassName: robin diskType: cdrom source: http: url: https://releases.ubuntu.com/jammy/ubuntu-22.04.3-live-server-amd64.iso
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: "ubuntu-main-disk" spec: size: 200Gi storageClassName: robin
가상 머신의 구성을 지정하는 다음 콘텐츠로
VirtualMachineType리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
다음 콘텐츠를 사용하여
VirtualMachine리소스를 만들어 클러스터에서 가상 머신을 인스턴스화하고 시작한 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: ubu-vm name: ubu-vm # Propagate the virtual machine name to the VMI spec: osType: Linux compute: virtualMachineTypeName: small-2-20 interfaces: - name: eth0 networkName: my-network default: true disks: - virtualMachineDiskName: ubuntu-main-disk boot: true - virtualMachineDiskName: ubuntu-iso-disk
클러스터에서 다음 기능도 구성해야 합니다.
가상 머신에 Ubuntu Server를 설치합니다.
importer포드가 Ubuntu Server 설치 디스크 이미지를 다운로드할 때까지 기다립니다.가상 머신의 상태를 확인합니다.
kubectl get gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.SSH 또는 원격 데스크톱을 사용하여 가상 머신에 로그인합니다.
Ubuntu Linux 설치 단계를 완료합니다.
삭제:
가상 머신을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신의 YAML 파일을 수정하여 설치 디스크 이미지에 대한 참조를 삭제합니다.
kubectl edit gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.가상 머신을 시작합니다.
kubectl virt start VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는ubu-vm)으로 바꿉니다.설치 디스크 이미지의
VirtualMachineDisk리소스를 삭제합니다.kubectl delete virtualmachinedisk ubuntu-iso-disk
Distributed Cloud Connected에서 Windows 가상 머신 프로비저닝
다음 예에서는 Symcloud Storage로 Windows 가상 머신을 프로비저닝하는 방법을 보여줍니다. 이 단계는 Windows를 설치하는 데 필요한 virtio 드라이버 디스크 이미지를 추가하는 것을 제외하고 Linux 가상 머신을 프로비저닝하는 것과 유사합니다.
라이선스가 부여된 Windows 사본과 설치 미디어 이미지를 획득합니다.
Windows 설치 디스크 이미지에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-iso-disk namespace: default spec: size: 5Gi storageClassName: robin diskType: cdrom source: http: url: WINDOWS_ISO_URL
NAT_GATEWAY을 대상 Windows 설치 ISO 디스크 이미지의 전체 URL로 바꿉니다.virtio드라이버에 다음 콘텐츠가 포함된VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-virtio-driver namespace: default spec: size: 1Gi storageClassName: robin diskType: cdrom source: http: url: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
가상 머신의 가상 하드 디스크에 대해 다음 콘텐츠로
VirtualMachineDisk리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineDisk metadata: name: windows-main-disk namespace: default spec: size: 15Gi storageClassName: robin
가상 머신의 구성을 지정하는 다음 콘텐츠로
VirtualMachineType리소스를 만든 다음 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachineType metadata: name: small-2-20 spec: cpu: vcpus: 2 memory: capacity: 20Gi
다음 콘텐츠로
VirtualMachine리소스를 만들어 클러스터에서 가상 머신을 인스턴스화하고 시작한 후 클러스터에 적용합니다.apiVersion: vm.cluster.gke.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: win-vm name: win-vm # Propagate the virtual machine name to the VMI spec: osType: Windows compute: virtualMachineTypeName: my-vmt interfaces: - name: eth0 networkName: my-network default: true disks: - virtualMachineDiskName: windows-main-disk boot: true - virtualMachineDiskName: windows-iso-disk - virtualMachineDiskName: win-virtio-driver
클러스터에서 다음 기능도 구성해야 합니다.
가상 머신에 Windows를 설치합니다.
importer포드가 Windows 설치 디스크 이미지를 다운로드할 때까지 기다립니다.가상 머신의 상태를 확인합니다.
kubectl get gvm VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는win-vm)으로 바꿉니다.Windows VM에 연결 및 OS 설치 완료의 단계에 따라 Windows 설치를 완료합니다.
삭제:
가상 머신을 중지합니다.
kubectl virt stop VM_NAME
VM_NAME을 가상 머신 이름(이 예에서는win-vm)으로 바꿉니다.ISO 이미지 및 드라이버 디스크 분리의 단계를 완료합니다.
Distributed Cloud(연결형)에서 실행되는 가상 머신 관리
Distributed Cloud connected에서 실행되는 가상 머신 관리에 관한 안내는 다음 GDC용 VM 런타임 문서를 참고하세요.
Distributed Cloud(연결형)에서 실행되는 가상 머신을 관리하려면 먼저 kubectl 연결을 구성해야 합니다.
Distributed Cloud Connected의 GDC에서 VM 런타임 사용 중지
이 섹션의 단계에 따라 Distributed Cloud Connected에서 GDC의 VM 런타임을 사용 중지합니다. Distributed Cloud(연결형)에서 GDC의 VM 런타임을 사용 중지하려면 VM 삭제에 설명된 대로 Distributed Cloud(연결형) 클러스터의 모든 가상 머신을 중지하고 삭제해야 합니다.
Distributed Cloud Connected의 GDC에서 VM 런타임을 사용 중지하려면 enabled 사양 매개변수를 다음과 같이 false로 설정하여 VMRuntime 커스텀 리소스를 수정한 후 클러스터에 적용합니다.
apiVersion: vm.cluster.gke.io/v1 kind: VMRuntime metadata: name: vmruntime spec: # Disable Anthos VM Runtime enabled: false # vmImageFormat defaults to "raw" if not set vmImageFormat: "raw"
다음 단계
- Distributed Cloud 연결 서버에서 가상 머신 관리
- Distributed Cloud 연결형에 워크로드 배포
- GPU 워크로드 관리
- 영역 관리
- 머신 관리
- 클러스터 관리
- 노드 풀 관리