다음 페이지에서는 중첩된 가상화를 지원하는 노드를 사용하여 Google Kubernetes Engine(GKE) Standard 클러스터를 만드는 방법을 설명합니다. Compute Engine VM은 중첩된 VM이 GKE 노드의 기본 VM에서 실행될 수 있도록 Intel VT-x 명령을 사용합니다. 그런 다음 QEMU와 같은 도구를 사용하는 포드를 배포하여 중첩된 VM을 만들 수 있습니다. 중첩된 VM을 사용하여 Android Emulator와 같은 특수한 워크로드 또는 VM을 격리 경계로 활용하는 워크로드를 실행할 수 있습니다.
성능에 미치는 영향 감소
하드웨어 지원 중첩된 가상화를 사용하면 중첩된 VM에서 실행되는 워크로드의 성능이 중첩되지 않은 가상화 구성에 비해 저하될 수 있습니다. 성능에 미치는 영향의 정도는 I/O 및 메모리 사용량 특성을 비롯한 특정 워크로드 프로필에 따라 다릅니다.
또한 GKE 노드의 기본 VM에서 중첩된 VM을 만들면 해당 노드에서 실행되는 다른 워크로드의 성능에 영향을 줄 수 있습니다.
시작하기 전에
시작하기 전에 다음 태스크를 수행했는지 확인합니다.
- Google Kubernetes Engine API를 사용 설정합니다. Google Kubernetes Engine API 사용 설정
- 이 태스크에 Google Cloud CLI를 사용하려면 gcloud CLI를 설치한 후 초기화합니다. 이전에 gcloud CLI를 설치한 경우
gcloud components update
를 실행하여 최신 버전을 가져옵니다.
- 조직 정책에서 중첩된 VM 생성을 지원하는지 확인합니다.
- 중첩된 VM 제한사항을 검토합니다.
요구사항 및 제한사항
GKE에서 중첩된 가상화를 사용 설정하고 포드가 중첩된 VM을 만들도록 허용하기 전에 다음 정보를 고려하세요.
- 제한된 수의 VM 머신 시리즈가 있는 중첩된 VM으로만 노드 풀을 구성할 수 있습니다. 지원되는 머신 시리즈는 머신 시리즈 비교의 중첩된 가상화 행을 참조하세요.
UBUNTU_CONTAINERD
이미지 유형을 사용하거나 버전 1.28.4-gke.1083000 이상을 실행하는 노드에서COS_CONTAINERD
이미지 유형을 사용해야 합니다.- Autopilot 클러스터가 아닌 Standard 클러스터에만 중첩된 가상화를 사용할 수 있습니다.
- 중첩된 가상화가 사용 설정된 노드 풀에서는 노드 자동 프로비저닝을 사용할 수 없습니다.
- 조직 정책에 VM 중첩된 가상화 사용 중지 제약조건이 적용되면 중첩된 가상화를 사용할 수 없습니다.
- 포드가 중첩된 VM과 상호작용하려면
securityContext.privileged:true
를 설정해야 합니다.
중첩된 가상화 사용 설정
클러스터를 만들 때(기본 노드 풀에 사용 설정) 또는 노드 풀을 만들 때 중첩된 가상화를 사용 설정할 수 있습니다. 기존 노드 풀에는 이 기능을 사용 설정하거나 사용 중지할 수 없습니다.
다음 섹션의 안내에서는 nested-virtualization=enabled
라벨이 있는 노드를 사용하여 노드 풀을 만듭니다. GKE가 노드를 만든 후에는 노드의 기본 VM에서 중첩된 VM을 만든 포드를 예약할 수 있습니다.
새 Standard 클러스터에서 중첩된 가상화 사용 설정
기본 노드 풀에 중첩된 가상화가 사용 설정된 새 Standard 클러스터를 만듭니다. GKE는 중첩 가상화가 사용 설정된 경우에만 기본 노드 풀을 만듭니다. GKE는 클러스터에 대해 생성된 모든 새 노드 풀에 이 기능을 자동으로 사용 설정하지 않습니다.
gcloud container clusters create CLUSTER_NAME \
--enable-nested-virtualization \
--node-labels=nested-virtualization=enabled \
--machine-type=MACHINE_TYPE
다음을 바꿉니다.
CLUSTER_NAME
: 클러스터의 이름MACHINE_TYPE
: 지원되는 머신 유형(중첩된 가상화 행 참조)
필요한 경우 노드 풀의 노드에 중첩된 가상화가 사용 설정되어 있는지 확인합니다.
이제 노드의 기본 VM에서 중첩된 VM을 만드는 포드를 예약할 수 있습니다.
새 노드 풀에서 중첩된 가상화 사용 설정
기존 Standard 클러스터에 중첩된 가상화가 사용 설정된 새 노드 풀을 만듭니다.
gcloud container node-pools create NODEPOOL_NAME \
--enable-nested-virtualization \
--node-labels=nested-virtualization=enabled \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE
다음을 바꿉니다.
NODEPOOL_NAME
: 중첩된 가상화가 사용 설정된 노드 풀의 이름CLUSTER_NAME
: 클러스터의 이름MACHINE_TYPE
: 지원 머신 유형(중첩된 가상화 행 참조)
필요한 경우 노드 풀의 노드에 중첩된 가상화가 사용 설정되어 있는지 확인합니다.
이제 노드의 기본 VM에서 중첩된 VM을 만드는 포드를 예약할 수 있습니다.
중첩된 가상화를 지원하는 노드에 포드 예약
중첩된 가상화가 사용 설정된 노드에서 포드를 예약하려면 다음 노드 선택기를 사양에 추가합니다.
nodeSelector:
nested-virtualization: enabled
또한 포드를 중첩된 VM과 연결하려면 securityContext.privileged:true
를 구성하여 포드를 권한이 있는 포드로 설정해야 합니다.