VM 시작 및 중지

애플리케이션의 수명 주기를 지원하기 위해 VM을 중지, 시작, 다시 시작할 수 있습니다. 예를 들어 할당된 가상 중앙 처리 장치 (vCPU) 수 또는 VM에 할당된 메모리 양을 변경해야 할 수 있습니다. 구성을 수정하기 전에 VM을 중지해야 합니다. 완료 후 전원 상태를 순환하여 변경사항을 적용해야 합니다. 이 페이지에서는 이러한 프로세스에서 VM을 중지, 시작, 다시 시작하는 방법을 설명합니다.

시작하기 전에

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

kubeconfig 파일 경로 가져오기

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

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

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

VM 시작 시간을 최소화하려면 VM을 시작하기 전에 VM 시작 시간 최소화 의 안내를 따르세요.

권한 및 액세스 요청

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

GDC 콘솔 또는 gdcloud CLI를 사용하는 VM 작업의 경우 프로젝트 IAM 관리자에게 프로젝트 VirtualMachine 관리자 역할과 프로젝트 뷰어 (project-viewer) 역할을 모두 할당해 달라고 요청하세요.

VM 중지

가상 머신 (VM)을 중지하면 하이퍼바이저가 인스턴스와 연결된 모든 리소스를 할당 해제합니다. VM이 종료됩니다.

GDC 콘솔 또는 kubectl를 사용하여 실행 중인 상태의 VM을 중지합니다.

콘솔

  1. 탐색 메뉴에서 가상 머신 > 인스턴스를 클릭합니다.

  2. VM 목록에서 중지하려는 실행 중인 VM의 체크박스를 선택합니다.

  3. 중지를 클릭합니다.

  4. 확인 대화상자에서 중지를 클릭합니다.

gdcloud

VM을 중지하려면 다음 안내를 따르세요.

gdcloud compute instances stop VM_NAME --project PROJECT
  • VM_NAME을 VM의 이름으로 바꿉니다.
  • PROJECT을 VM이 있는 GDC 프로젝트의 이름으로 바꿉니다.

kubectl

  1. 다음 명령어를 실행합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \
       -n PROJECT
    
  2. VM의 spec에서 runningState 필드를 찾아 필드의 값을 Stopped로 변경합니다. runningStatespec에 없으면 runningStatespec에 추가하고 값을 Stopped로 설정합니다.

    spec:
       runningState: Stopped
    
  3. VM 상태를 확인합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       get virtualmachines.virtualmachine.gdc.goog VM_NAME \
       -n PROJECT
    

    이전 변수에 대한 정의를 사용합니다.

    변수정의
    MANAGEMENT_API_SERVER_KUBECONFIG관리 API 서버 kubeconfig 파일입니다.
    VM_NAMEVM의 이름입니다.
    PROJECTVM의 프로젝트 이름입니다.

VM 시작

콘솔 또는 kubectl를 사용하여 중지된 상태에서 VM을 시작합니다.

콘솔

  1. 탐색 메뉴에서 가상 머신 > 인스턴스를 클릭합니다.

  2. VM 목록에서 시작하려는 중지된 VM의 체크박스를 선택합니다.

  3. 시작을 클릭합니다.

  4. 확인 대화상자에서 시작을 클릭합니다.

gdcloud

VM을 시작하려면 다음 단계를 따르세요.

gdcloud compute instances start VM_NAME --project PROJECT
  • VM_NAME을 VM의 이름으로 바꿉니다.
  • PROJECT을 VM이 있는 GDC 프로젝트의 이름으로 바꿉니다.

kubectl

  1. 다음 명령어를 실행합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ 
       edit virtualmachines.virtualmachine.gdc.goog VM_NAME \ 
       -n PROJECT
    
  2. VM의 spec에서 runningState 필드를 찾아 필드의 값을 Running로 변경합니다.

    spec:
       runningState: Running
    
  3. VM 상태를 확인합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       get virtualmachines.virtualmachine.gdc.goog VM_NAME \
       -n PROJECT
    

    예제 코드에서 변수에 이러한 정의를 사용합니다.

    변수정의
    MANAGEMENT_API_SERVER_KUBECONFIG관리 API 서버 kubeconfig 파일입니다.
    MANAGEMENT_API_SERVER_NAME관리 API 서버의 이름입니다.
    NAMESPACEVM 네임스페이스입니다.
    VM_NAMEVM의 이름입니다.
    PROJECTVM의 프로젝트 이름입니다.

VM 다시 시작

VM을 다시 시작하면 머신이 초기 상태로 재설정되고 머신의 메모리 콘텐츠가 완전히 삭제됩니다.

콘솔 또는 kubectl를 사용하여 실행 중인 상태의 VM을 다시 시작합니다.

콘솔

  1. 탐색 메뉴에서 가상 머신 > 인스턴스를 클릭합니다.

  2. VM 목록에서 다시 시작할 실행 중인 VM의 체크박스를 선택합니다.

  3. 재설정을 클릭합니다.

  4. 확인 대화상자에서 재설정을 클릭합니다.

gdcloud

VM을 재설정하려면 다음 단계를 따르세요.

gdcloud compute instances reset VM_NAME --project PROJECT
  • VM_NAME을 VM의 이름으로 바꿉니다.
  • PROJECT을 VM이 있는 GDC 프로젝트의 이름으로 바꿉니다.

kubectl

  1. 클라이언트 인증서 및 키 데이터와 관리 API 서버를 가져옵니다. 다음 단계에서 이 값을 사용하세요.

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \
       jsonpath='{.users[?(@.name =="MANAGEMENT_API_SERVER_NAME-admin")].user.client-certificate-data}' | \
       base64 -d > cert
    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG config view --raw -o \
       jsonpath='{.users[?(@.name == "MANAGEMENT_API_SERVER_NAME-admin")].user.client-key-data}' | \
       base64 -d > key
    export APISERVER=`kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       config view --raw -o \
       jsonpath='{.clusters[?(@.name == "MANAGEMENT_API_SERVER_NAME")].cluster.server}'`
    
  2. wget 명령어를 사용하여 VM을 다시 시작하는 API 요청을 하고 이전 단계의 인증서와 키를 지정합니다.

    wget --method=PUT -O- --no-check-certificate --certificate cert --private-key key --content-on-error=on $APISERVER/apis/virtualmachineoperations.gdc.goog/v1/namespaces/PROJECT/virtualmachines/VM_NAME/restart
    
  3. VM 상태를 확인합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
       get virtualmachines.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    예시 코드에서 변수에 대한 이러한 정의를 사용합니다.

    변수정의
    MANAGEMENT_API_SERVER_KUBECONFIG관리 API 서버 kubeconfig 파일입니다.
    MANAGEMENT_API_SERVER_NAME관리 API 서버의 이름입니다.
    NAMESPACEVM 네임스페이스입니다.
    VM_NAMEVM의 이름입니다.
    PROJECTVM의 프로젝트 이름입니다.