VM 인스턴스 수명 주기 관리

이 문서에서는 Google Distributed Cloud(GDC) 에어 갭에서 가상 머신 (VM) 인스턴스의 수명 주기 전반에 걸쳐 시스템 상태를 확인하는 방법을 설명합니다.

VM 인스턴스는 수명 주기 전반에 걸쳐 여러 상태로 전환될 수 있습니다. VM을 만들면 Distributed Cloud에서 VM을 시작하기 위해 리소스를 프로비저닝합니다. 그런 후 VM이 시작 상태로 전환되고 여기에서 첫 번째 부팅을 준비합니다. 시작 중 및 시작 후에는 VM이 실행 중인 것으로 간주됩니다. 수명 주기 동안 실행되는 VM은 중지, 재시작 또는 일시정지, 재개가 반복해서 이뤄질 수 있습니다.

이 문서는 Distributed Cloud 환경에서 VM 인스턴스 시스템 상태를 검토하는 플랫폼 관리자 또는 애플리케이션 운영자 그룹의 개발자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 독자를 참조하세요.

VM 상태 정의

주 정의
Pending VM이 시스템에 의해 수락되었으며 할당을 기다리는 중입니다.
Provisioning VirtualMachineDisk와 같은 VM과 연결된 리소스가 프로비저닝되고 준비되고 있습니다.
Starting VM이 실행되도록 준비되고 있습니다.
Running VM이 실행 중입니다.
Stopping VM이 중지되는 중입니다.
Stopped VM이 중지되었으며 시작되지 않을 것으로 예상됩니다.
Paused VM이 일시정지되었으며 보존되는 고정 상태입니다. VM에 액세스할 수 없습니다.
Terminating VM 및 연결된 리소스가 삭제 프로세스를 진행 중입니다.
ErrorConfiguration VM에 구성 오류가 있습니다. 잘못된 구성 상태는 다음과 같은 이유로 발생할 수 있습니다.
MachineTypeNotFound - VM이 참조하는 VM 유형을 찾을 수 없거나 삭제 중입니다.
MachineDiskMisconfig - VM 디스크가 잘못 구성되었습니다.
InterfaceCreationFailed - 네트워크 인터페이스를 만들지 못했습니다.
CrashLoopBackOff VM이 비정상 종료 루프에 있으며 재시도되기를 기다리는 중입니다.
PendingIPAllocation VM이 시스템에서 IP 주소를 할당해 주기를 기다리는 중입니다.
Unknown VM 상태를 가져올 수 없습니다. 일반적으로 VM이 실행 중인 호스트와의 통신 오류로 인해 발생합니다.
ErrorUnschedulable VM을 예약하는 중에 오류가 발생했습니다. 예를 들어 충족하거나 지원할 수 없는 리소스 요청 또는 예약 제약조건으로 인해 발생합니다.
DiskError VM에 연결된 디스크 중 하나 이상에 오류가 있습니다.
WaitingForDisk VM이 연결된 VirtualMachineDisk 중 하나 이상이 준비되기를 기다리는 중입니다.
CrashLoopBackoff VM이 어떤 이유로든 계속 비정상 종료되고 있습니다.

시작하기 전에

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

kubeconfig 파일 경로 가져오기

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

  1. 로그인하고 생성합니다. Management API 서버의 kubeconfig 파일이 없는 경우 kubeconfig 파일을 생성합니다.

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

IAM 역할 요청

프로젝트 IAM 관리자에게 문의하여 프로젝트에 대한 다음 역할을 요청합니다.

  • 가상 머신 프로젝트 관리자 (project-vm-admin): 프로젝트 네임스페이스에서 VM을 만들고, 수정하고, 나열하고, 삭제합니다.

  • 프로젝트 뷰어(project-viewer): 프로젝트 네임스페이스 내의 모든 리소스를 봅니다.

모든 VM 역할은 VM이 상주하는 프로젝트의 네임스페이스에 바인딩되어야 합니다. 액세스 권한을 확인 하려면 단계를 따르세요.

VM 상태 확인

모든 VM이 VM 속성의 일부로 해당 상태를 보고합니다. 다음과 같은 이유로 VM 상태를 확인합니다.

  • VM에 문제가 있는 경우
  • VM이 시작된 후 실행 중인지 확인
  • VM이 Paused 또는 Stopped 상태인지 확인

VM을 나열하여 상태 확인

다음 절차에서는 VM을 나열하고, 상태를 확인하고, 추가 상태 정보를 가져오는 방법을 보여줍니다.

  1. 모든 VM을 나열하고 각 VM의 상태를 확인합니다.

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

    다음 표에 따라 코드 예시의 변수를 고유한 값으로 바꿉니다.

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

    출력 예시:

    NAME          STATUS                    AGE
    vm-1          Running                    1d
    vm-2          Stopped                    8d
    vm-3          ErrorConfiguration         1d
    
  2. 특정 VM의 상태에 대한 추가 세부정보를 가져옵니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachines.virtualmachine.gdc.goog VM_NAME \
      -o jsonpath='{"State:"}{.status.state}{"\n"}{"Reason:"}{.status.reason}{"\n"}{"Message:"}{.status.message}{"\n"}'
    

    다음을 바꿉니다.

    • MANAGEMENT_API_SERVER 를 gdcloud auth login 명령어에서 가져온 Management API 서버의 kubeconfig 파일로 바꿉니다.
    • VM_NAME을 새 VM의 이름으로 바꿉니다.
    • PROJECT 를 VM이 상주하는 GDC 프로젝트로 바꿉니다.

    Reason 및 Message 값을 보여주는 출력 예시:

    State: ErrorConfiguration
    Reason: MachineDiskNotFound
    Message: VirtualMachineDisk disk-1 in namespace project-1 does not exist.
    

    Reason 및 Message의 필드가 비어 있을 수도 있습니다. 이는 시스템에서 보고할 내용이 없음을 나타냅니다.

    Reason 및 Message가 비어 있는 출력 예시:

    State: Running
    Reason:
    Message:
    

VM 중지 또는 다시 시작

VM 수명 주기 동안 상태 변경에 대응하거나 일반적으로 VM을 관리하기 위해 VM을 중지 및 다시 시작하거나 VM을 삭제해야 할 수 있습니다. VM을 중지, 재설정 또는 삭제하려면 다음 페이지를 참고하세요.