VM 시작 시간 최소화

VM이 최대한 빨리 부팅되어야 하는 경우 이 페이지의 안내에 따라 가상 머신 (VM) 시작 시간을 최소화하세요. 시작 시간을 최소화하면 리소스 효율성이 떨어집니다. 프로젝트에서 추가 리소스를 소비하고 보안 노출 영역이 증가합니다.

시작하기 전에

gdcloud 명령줄 인터페이스 (CLI) 명령어를 사용하려면 gdcloud CLI를 다운로드, 설치, 구성해야 합니다. Distributed Cloud의 모든 명령어는 gdcloud 또는 kubectl CLI를 사용하며 운영체제 (OS) 환경이 필요합니다.

kubeconfig 파일 경로 가져오기

관리 API 서버에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.

  1. 관리 API 서버의 kubeconfig 파일이 없는 경우 로그인 및 생성합니다.

  2. 관리 API 서버의 kubeconfig 파일 경로를 사용하여 이 안내의 MANAGEMENT_API_SERVER를 바꿉니다.

권한 및 액세스 요청

이 페이지에 나열된 작업을 수행하려면 프로젝트 VirtualMachine 관리자 역할이 있어야 합니다. 단계를 따라 VM이 있는 프로젝트의 네임스페이스에 프로젝트 VirtualMachine 관리자 (project-vm-admin) 역할이 있는지 확인합니다.

디스크 연결 유지

VM이 시작되면 VM의 노드에서 VM의 디스크로 연결을 시작하는 데 몇 초가 걸립니다. VM이 더 빨리 시작되도록 하려면 VM이 종료될 때 디스크 연결이 유지되어야 합니다. 그래야 후속 VM 시작 시 디스크 연결이 다시 시작되지 않습니다. 이를 위해 디스크 연결 유지 기능을 사용 설정하는 명령어를 실행하면 시스템에서 VM의 모든 디스크를 마운트하는 더미 포드를 자동으로 만듭니다.

디스크 연결 유지 사용 설정

PROJECT 프로젝트에서 VM_NAME라는 VM의 디스크 연결을 유지하려면 다음 명령어를 실행합니다. 이렇게 하면 시스템에서 더미 포드를 자동으로 만듭니다.

kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $'
metadata:
  annotations:
    disk.virtualmachine.gdc.goog/enable-connection-keep-alive: "true"
'

다음 정의를 사용하여 이 안내 전체에서 변수를 바꿉니다.

변수정의
MANAGEMENT_API_SERVER 관리 API 서버 kubeconfig 파일입니다.
VM_NAME VM의 이름입니다.
PROJECT VM이 상주하는 GDC 프로젝트입니다.

디스크 연결 유지 기능이 사용 설정되면 VM과 동일한 프로젝트에 disk-connection-keep-alive-VM_NAME라는 포드가 생성됩니다. VM의 디스크 연결이 포드에 의해 유지되므로 다음 VM 다시 시작이 더 빠르고 후속 시작 시간도 더 빠릅니다.

디스크 연결 유지 어피니티 설정

VM이 다시 시작되면 Kubernetes 스케줄러가 VM에 다른 노드를 선택할 수 있습니다. 이러한 상황이 발생할 가능성을 줄이려면 VM과 활성 유지 포드 간에 VM 간 어피니티 규칙을 구성하세요. 다음과 같이 자동으로 실행되도록 구성합니다.

kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $'
metadata:
  annotations:
    disk.virtualmachine.gdc.goog/add-connection-keep-alive-affinity: "true"
'

이렇게 하면 VM의 선호도 설정이 활성 상태 포드에 추가됩니다.

주의사항

디스크 연결을 유지하는 데는 두 가지 주의사항이 있습니다.

  • 활성 상태 유지 포드는 추가 리소스 사용량을 발생시킵니다.
    • 노드당 포드 수 제한에 포함됩니다.
    • Kubernetes에서 할당한 추가 IP 주소를 사용합니다.
    • CPU와 메모리를 아주 약간만 추가로 사용합니다.
  • VM이 종료된 경우에도 활성 상태 유지 포드가 있는 노드에는 항상 VM의 디스크가 연결되어 있으므로 보안 노출 영역이 증가합니다.

BIOS 펌웨어 사용

GDC에서 Unified Extensible Firmware Interface (UEFI) 펌웨어로 VM을 시작하는 것이 BIOS 펌웨어로 VM을 시작하는 것보다 느립니다.

  1. 시작 시간이 최소화되도록 VM의 펌웨어 유형을 BIOS로 설정합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT --type merge --patch $'
    spec:
      firmware:
        type: bios
        enableSecureBoot:
    '
    
  2. VM이 실행 중인 경우 VM 다시 시작 안내에 따라 다시 시작합니다.

주의사항

BIOS 펌웨어 사용 시 주의할 점은 보안 부팅을 지원하지 않는다는 것입니다.

대형 부팅 디스크 사용

VM 시작 시간을 최소화하려면 크기가 500GB 이상인 부팅 디스크를 VM에 연결하세요.