다음 페이지에서는 중첩된 가상화를 지원하는 노드를 사용하여 Google Kubernetes Engine(GKE) Standard 클러스터를 만드는 방법을 설명합니다. Compute Engine VM은 Intel VT-x 명령어를 지원하므로, GKE 노드의 기본 VM 위에서 중첩된 VM을 실행할 수 있습니다. 그런 다음 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으로만 노드 풀을 구성할 수 있습니다. 지원되는 머신 시리즈는 머신 시리즈 비교의 중첩된 가상화 행을 참조하세요.
- 버전 1.28.4-gke.1083000 이상을 실행하는 노드에
UBUNTU_CONTAINERD
이미지 유형 또는COS_CONTAINERD
이미지 유형을 사용해야 합니다. - 중첩된 가상화는 Autopilot 클러스터가 아닌 표준 클러스터에만 사용할 수 있습니다.
- 중첩된 가상화가 사용 설정된 노드 풀에는 노드 자동 프로비저닝을 사용할 수 없습니다.
- 조직 정책에 VM 중첩된 가상화 사용 중지 제약조건이 적용되면 중첩된 가상화를 사용할 수 없습니다.
- 중첩된 VM과 상호작용하도록 포드에 대해
securityContext.privileged:true
를 설정해야 합니다.
중첩된 가상화 사용 설정
기본 노드 풀에 대해 사용 설정하여 클러스터를 만들거나 노드 풀을 만들 때 중첩된 가상화를 사용 설정할 수 있습니다. 기존 노드 풀에 대해서는 기능을 사용 설정 또는 사용 중지할 수 없습니다.
다음 섹션의 안내에 따라 각 노드에 nested-virtualization=enabled
라벨이 지정된 노드 풀을 만듭니다. GKE에서 노드가 생성된 후 노드의 기본 VM에 중첩된 VM을 만든 포드를 예약할 수 있습니다.
새 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을 만든 포드를 예약할 수 있습니다.
새 노드 풀에서 중첩된 가상화 사용 설정
기존 표준 클러스터에 대해 중첩된 가상화를 사용 설정하여 새 노드 풀을 만듭니다.
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
를 구성하여 포드를 권한이 있는 포드로 설정해야 합니다.