GKE Standard 클러스터에서 중첩된 VM 사용


다음 페이지에서는 중첩된 가상화를 지원하는 노드를 사용하여 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를 실행하여 최신 버전을 가져옵니다.

요구사항 및 제한사항

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

다음을 바꿉니다.

필요한 경우 노드 풀의 노드에 중첩된 가상화가 사용 설정되어 있는지 확인합니다.

이제 노드의 기본 VM에서 중첩된 VM을 만든 포드를 예약할 수 있습니다.

새 노드 풀에서 중첩된 가상화 사용 설정

기존 표준 클러스터에 대해 중첩된 가상화를 사용 설정하여 새 노드 풀을 만듭니다.

gcloud container node-pools create NODEPOOL_NAME \
    --enable-nested-virtualization \
    --node-labels=nested-virtualization=enabled \
    --cluster=CLUSTER_NAME \
    --machine-type=MACHINE_TYPE

다음을 바꿉니다.

필요한 경우 노드 풀의 노드에 중첩된 가상화가 사용 설정되어 있는지 확인합니다.

이제 노드의 기본 VM에서 중첩된 VM을 만든 포드를 예약할 수 있습니다.

중첩된 가상화를 지원하는 노드에 포드 예약

중첩된 가상화가 사용 설정된 노드에서 포드를 예약하려면 다음 노드 선택기를 사양에 추가합니다.

nodeSelector:
  nested-virtualization: enabled

또한 포드를 중첩된 VM과 연결하려면 securityContext.privileged:true를 구성하여 포드를 권한이 있는 포드로 설정해야 합니다.

다음 단계