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


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

요구사항 및 제한사항

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

다음을 바꿉니다.

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

이제 노드의 기본 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

다음을 바꿉니다.

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

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

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

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

nodeSelector:
  nested-virtualization: enabled

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

다음 단계