이 문서에서는 Google Distributed Cloud (GDC) 에어 갭에서 가상 머신 (VM) 인스턴스를 시작, 중지, 다시 시작하는 방법을 설명합니다.
VM을 중지, 시작, 다시 시작하여 애플리케이션의 수명 주기를 지원할 수 있습니다. 예를 들어 할당된 가상 중앙 처리 장치 (vCPU) 수 또는 VM에 할당된 메모리 양을 변경할 수 있습니다. 구성을 수정하기 전에 VM을 중지해야 합니다. 완료한 후에는 전원 상태를 순환하여 변경사항을 적용해야 합니다.
이 문서는 Distributed Cloud 환경에서 VM 인스턴스를 시작, 중지, 다시 시작해야 하는 플랫폼 관리자 또는 애플리케이션 운영자 그룹의 개발자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 독자를 참조하세요.
시작하기 전에
gdcloud 명령줄 인터페이스 (CLI) 명령어를 사용하려면 gdcloud CLI를 다운로드, 설치,
구성했는지 확인하세요.
Distributed Cloud의 모든 명령어는 gdcloud 또는 kubectl CLI를 사용하며 운영체제 (OS) 환경이 필요합니다.
kubeconfig 파일 경로 가져오기
Management API 서버에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.
로그인하고 생성합니다. Management API 서버의 kubeconfig 파일이 없는 경우 kubeconfig 파일을 생성합니다.
Management API 서버의 kubeconfig 파일 경로를 사용하여 이 안내의
MANAGEMENT_API_SERVER를 바꿉니다.
VM 시작 시간을 최소화하려면 VM을 시작하기 전에 VM 시작 시간 최소화 의 안내를 따르세요.
IAM 역할 요청
프로젝트 IAM 관리자에게 문의하여 프로젝트에 다음 역할을 요청하세요.
가상 머신 프로젝트 관리자 (
project-vm-admin): 프로젝트 네임스페이스에서 VM을 만들고, 수정하고, 나열하고, 삭제합니다.프로젝트 뷰어(
project-viewer): 프로젝트 네임스페이스 내의 모든 리소스를 봅니다.
모든 VM 역할은 VM이 있는 프로젝트의 네임스페이스에 바인딩되어야 합니다. 액세스 권한을 확인 하려면 단계를 따르세요.
VM 중지
가상 머신 (VM)을 중지하면 하이퍼바이저가 인스턴스와 연결된 모든 리소스를 할당 해제합니다. VM이 종료됩니다.
GDC 콘솔 또는 kubectl을 사용하여 실행 중인 상태의 VM을 중지합니다.
콘솔
탐색 메뉴에서 가상 머신 > 인스턴스 를 클릭합니다.
VM 목록에서 중지하려는 실행 중인 VM의 체크박스를 선택합니다.
중지 를 클릭합니다.
확인 대화상자에서 중지 를 클릭합니다.
gdcloud
VM을 중지하려면 다음 안내를 따르세요.
gdcloud compute instances stop VM_NAME \
--project PROJECT
VM_NAME을 VM의 이름으로 바꿉니다.PROJECT를 VM이 있는 GDC 프로젝트의 이름으로 바꿉니다.
kubectl
다음 명령어를 실행합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEVM의
spec에서runningState필드를 찾고 필드 값을Stopped로 변경합니다.runningState가spec에 없으면runningState를spec에 추가하고 값을Stopped로 설정합니다.spec: runningState: StoppedVM의 상태를 확인합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME이전 변수에 이러한 정의를 사용합니다.
변수 정의 MANAGEMENT_API_SERVER_KUBECONFIGManagement API 서버 kubeconfig 파일입니다. VM_NAMEVM의 이름입니다. PROJECTVM의 프로젝트 이름입니다.
VM 시작
콘솔 또는 kubectl을 사용하여 중지된 상태에서 VM을 시작합니다.
콘솔
탐색 메뉴에서 가상 머신 > 인스턴스 를 클릭합니다.
VM 목록에서 시작하려는 중지된 VM의 체크박스를 선택합니다.
시작 을 클릭합니다.
확인 대화상자에서 시작 을 클릭합니다.
gdcloud
VM을 시작하려면 다음 안내를 따르세요.
gdcloud compute instances start VM_NAME --project PROJECT
VM_NAME을 VM의 이름으로 바꿉니다.PROJECT를 VM이 있는 GDC 프로젝트의 이름으로 바꿉니다.
kubectl
다음 명령어를 실행합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ edit virtualmachines.virtualmachine.gdc.goog VM_NAMEVM의
spec에서runningState필드를 찾고 필드 값을Running으로 변경합니다.spec: runningState: RunningVM 상태를 확인합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME예제 코드의 변수에 이러한 정의를 사용합니다.
변수 정의 MANAGEMENT_API_SERVER_KUBECONFIGManagement API 서버 kubeconfig 파일입니다. MANAGEMENT_API_SERVER_NAMEManagement API 서버의 이름입니다. VM_NAMEVM의 이름입니다. PROJECTVM의 프로젝트 이름입니다.
VM 다시 시작
VM을 다시 시작하면 머신이 초기 상태로 재설정되고 머신의 메모리 콘텐츠가 완전히 삭제됩니다.
콘솔 또는 kubectl을 사용하여 실행 중인 상태의 VM을 다시 시작합니다.
콘솔
탐색 메뉴에서 가상 머신 > 인스턴스 를 클릭합니다.
VM 목록에서 다시 시작하려는 실행 중인 VM의 체크박스를 선택합니다.
재설정 을 클릭합니다.
확인 대화상자에서 재설정 을 클릭합니다.
gdcloud
VM을 재설정하려면 다음 안내를 따르세요.
gdcloud compute instances reset VM_NAME --project PROJECT
VM_NAME을 VM의 이름으로 바꿉니다.PROJECT를 VM이 있는 GDC 프로젝트의 이름으로 바꿉니다.
kubectl
클라이언트 인증서 및 키 데이터와 Management 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}'`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/restartVM 상태를 확인합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n PROJECT \ get virtualmachines.virtualmachine.gdc.goog VM_NAME예제 코드의 변수에 이러한 정의를 사용합니다.
변수 정의 MANAGEMENT_API_SERVER_KUBECONFIGManagement API 서버 kubeconfig 파일입니다. MANAGEMENT_API_SERVER_NAMEManagement API 서버의 이름입니다. VM_NAMEVM의 이름입니다. PROJECTVM의 프로젝트 이름입니다.