이 페이지에서는 VM의 노드 어피니티 라벨을 수정하여 VM의 테넌시를 업데이트하는 방법을 설명합니다.
기본적으로 Compute Engine은 멀티 테넌트 호스트에 VM을 배포합니다. 멀티 테넌트 호스트에서 VM은 일반적으로 호스트 리소스를 다른 프로젝트의 VM 및 고객과 공유합니다. VM을 단독 테넌트 노드로 이동하면 프로젝트가 단독 테넌트 노드 하드웨어에 독점적으로 액세스하고 완전히 제어할 수 있습니다. 사용자가 해당 노드의 유일한 테넌트이므로 사용자의 워크로드는 다른 프로젝트 및 VM의 워크로드와 격리됩니다.
노드 어피니티 라벨을 수정하면 다음과 같은 방식으로 VM을 이동할 수 있습니다.
- 멀티 테넌트 호스트에서 단독 테넌트 노드 그룹 또는 노드로 이동
- 단독 테넌트 노드 그룹 또는 노드에서 멀티 테넌트 호스트로 이동
- 단독 테넌트 노드에서 다른 단독 테넌트 노드 또는 노드 그룹으로 이동
- 단독 테넌트 노드 그룹에서 다른 단독 테넌트 노드 그룹 또는 노드로 이동
워크로드를 단독 테넌시로 임시 이동
성능 검사 또는 규정 준수 규칙 변경을 위해 주기적으로 추가 격리가 필요한 경우처럼 워크로드의 요구사항이 변동하기 때문에 특정 워크로드를 단독 테넌트 노드로 임시 이동해야 할 수 있습니다. 그런 다음 단독 테넌시가 더 이상 필요하지 않으면 VM을 멀티 테넌트 호스트에 다시 배포합니다. VM의 테넌시를 수정하면 Compute Engine이 VM의 구성을 유지합니다.
단독 테넌트 워크로드 재분산
단독 테넌트 노드와 노드 그룹 간에 VM을 이동하는 것 외에도 노드와 노드 그룹 간에 VM을 이동하여 노드를 통합하고 워크로드를 재분산할 수 있습니다. VM을 이동하려면 다시 시작해야 하므로 워크로드의 가용성 요구사항에 따라 VM 이동 계획을 세우세요.
제한사항
- 단독 테넌트 노드에서 이미 실행 중인 VM을 이동하면 VM이 다른 노드에서 다시 시작될 수 있습니다. 노드 그룹 이름 또는
node-group-name
기본 어피니티 라벨을 사용하여 VM의 단독 테넌시를 지정하면 VM이 노드 그룹의 노드에서 다시 시작될 수 있습니다. 어피니티 또는 안티어피니티 커스텀 어피니티 라벨을 사용하여 VM의 단독 테넌시를 지정하면 VM이 영역에 있는 노드 그룹의 노드에서 다시 시작될 수 있습니다.
시작하기 전에
-
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
VM을 중지합니다.
gcloud compute instances stop VM_NAME
VM_NAME
을 중지할 VM의 이름으로 바꿉니다.VM을 이동할 노드 그룹을 지정하여 테넌시를 업데이트합니다.
gcloud compute instances set-scheduling VM_NAME \ --node-group=NODE_GROUP_NAME
다음을 바꿉니다.
VM_NAME
: 특정 노드 그룹으로 이동할 VM의 이름VM을 이동할 노드 그룹의
NODE_GROUP_NAME
이름
또는 노드 이름을 사용하거나 어피니티 라벨을 사용하여 VM을 단독 테넌트 노드로 이동할 수 있습니다. 자세한 내용은
gcloud compute instances set-scheduling
명령어를 참조하세요.VM을 시작합니다.
gcloud compute instances start VM_NAME
VM_NAME
을 어피니티 라벨 파일의 콘텐츠로 이동에 지정된 노드 그룹에서 시작할 VM의 이름으로 바꿉니다.VM을 중지합니다. 이 명령어에 대한 자세한 내용은 instances.stop을 참조하세요.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
다음을 바꿉니다.
PROJECT_ID
: 중지할 VM이 포함된 프로젝트의 IDZONE
: 프로젝트가 포함된 영역VM_NAME
: 중지할 VM의 이름
VM을 이동할 노드 그룹을 지정하여 테넌시를 업데이트합니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "NODE_GROUP_NAME" ] } ] }
다음을 바꿉니다.
이동할 VM이 포함된 프로젝트의
PROJECT_ID
IDZONE
: 프로젝트가 포함된 영역VM_NAME
: 특정 노드 그룹으로 이동할 VM의 이름VM을 이동할 노드 그룹의
NODE_GROUP_NAME
이름
또는 노드 이름을 사용하거나 어피니티 라벨을 사용하여 VM을 단독 테넌트 노드로 이동할 수 있습니다. 자세한 내용은
instances.setScheduling
메서드를 참조하세요.VM을 시작합니다. 이 명령어에 대한 자세한 내용은
instances.start
항목을 참조하세요.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
다음을 바꿉니다.
PROJECT_ID
: 시작할 VM이 포함된 프로젝트의 IDZONE
: 프로젝트가 포함된 영역VM_NAME
: 시작할 VM의 이름
VM을 중지합니다.
gcloud compute instances stop VM_NAME
VM_NAME
을 중지할 VM의 이름으로 바꿉니다.멀티 테넌트 호스트로 이동할 수 있도록 VM에서 노드 어피니티를 지웁니다.
gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
VM_NAME
을 노드 어피니티를 삭제할 VM의 이름으로 바꿉니다.멀티 테넌트 호스트에서 VM을 시작합니다.
gcloud compute instances start VM_NAME
VM_NAME
을 이전에 노드 어피니티를 삭제한 VM의 이름으로 바꿉니다.VM을 중지합니다. 이 명령어에 대한 자세한 내용은
instances.stop
항목을 참조하세요.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
다음을 바꿉니다.
PROJECT_ID
: 중지할 VM이 포함된 프로젝트의 IDZONE
: 프로젝트가 포함된 영역VM_NAME
: 중지할 VM의 이름
VM을 멀티 테넌트 호스트로 이동하기 위해 VM의 노드 어피니티를 지웁니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "nodeAffinities": [] }
다음을 바꿉니다.
이동할 VM이 포함된 프로젝트의
PROJECT_ID
IDZONE
: 프로젝트가 포함된 영역노드 어피니티를 지울 VM의
VM_NAME
이름
멀티 테넌트 호스트에서 VM을 시작합니다. 이 명령어에 대한 자세한 내용은 instances.start를 참조하세요.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
다음을 바꿉니다.
PROJECT_ID
: 시작할 VM이 포함된 프로젝트의 IDZONE
: 프로젝트가 포함된 영역VM_NAME
: 시작할 VM의 이름
VM을 단독 테넌트 노드로 이동하기 전에 단독 테넌트 노드 가격 책정 읽기
단독 테넌트 노드 그룹을 자동 확장하는 방법 알아보기
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
VM을 단독 테넌시로 이동
VM을 다른 단독 노드나 노드 그룹 또는 멀티 테넌트 호스트에서 특정 단독 테넌트 노드 또는 노드 그룹으로 이동하여 테넌시를 업데이트합니다.
gcloud
REST
VM을 단독 테넌시에서 이동
VM에 더 이상 전용 하드웨어가 필요 없는 경우(예: VM을 다른 VM에서 격리해야 하는 이벤트 이후) VM을 단독 테넌트 노드에서 멀티 테넌트 호스트로 이동합니다.
gcloud
REST
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-09-05(UTC)
-