개발자가 TKG 서비스 클러스터에 AI/ML 워크로드를 배포할 수 있도록 하려면 클러스터 운영자가 하나 이상의 Kubernetes 클러스터를 생성하고 각각에 NVIDIA Network Operator와 NVIDIA GPU Operator를 설치해야 합니다.

운영자 1단계: 사전 요구 사항 확인

이 지침에서는 vSphere 관리자가 NVIDIA GPU에 대한 환경을 설정했다고 가정합니다. TKGS 클러스터에 AI/ML 워크로드를 배포하기 위한 vSphere 관리자 워크플로의 내용을 참조하십시오.

이 지침은 GPU Operator의 NVAIE(NVIDIA AI Enterprise) 버전을 설치한다고 가정합니다. 이 버전은 vSphere IaaS control plane에서 사용하도록 사전 구성되고 최적화되어 있습니다. NVAIE GPU Operator는 공용 NGC 카탈로그에서 사용할 수 있는 GPU Operator와 다릅니다. 자세한 내용은 NVIDIA AI Enterprise를 참조하십시오.

이러한 지침에서는 ESXi에 대해 일치하는 VIB가 있는 vGPU 드라이버 및 NVAIE GPU Operator 버전을 사용하고 있다고 가정합니다. 자세한 내용은 NVIDIA GPU Operator 버전 관리를 참조하십시오.

TKG 클러스터를 프로비저닝할 때 TKR의 Ubuntu 버전을 사용해야 합니다. vSphere 8 감독자의 TKG를 사용하면 Ubuntu 버전이 주석을 사용하여 클러스터 YAML에 지정됩니다.

운영자 2단계: NVIDIA vGPU용 TKGS 클러스터 프로비저닝

VMware에서는 NVIDIA GPU OperatorNVIDIA Network Operator를 사용하여 NVIDIA GPU Certified Server에서 NVIDIA 가상 GPU에 대한 네이티브 TKGS 지원을 제공합니다. 이러한 오퍼레이터는 TKGS 워크로드 클러스터에 설치합니다. vGPU 워크로드를 호스팅하기 위해 TKGS 클러스터를 프로비저닝하려면 다음 단계를 완료합니다.
  1. vSphere에 대한 Kubernetes CLI 도구를 설치합니다.

    vSphere에 대한 Kubernetes CLI 도구 설치의 내용을 참조하십시오.

  2. kubectl용 vSphere 플러그인을 사용하여 감독자로 인증합니다.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
    참고: FQDN은 감독자를 사용하도록 설정된 경우에만 사용할 수 있습니다.
  3. kubectl을 사용하여 vSphere 관리자가 TKGS vGPU 클러스터에 대해 생성한 vSphere 네임스페이스로 컨텍스트를 전환합니다.
    kubectl config get-contexts
    kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
  4. vSphere 관리자가 생성한 vGPU 프로파일을 사용하여 사용자 지정 VM 클래스의 이름을 가져옵니다.
    kubectl get virtualmachineclass
    참고: VM 클래스는 대상 vSphere 네임스페이스에 바인딩되어야 합니다.
  5. vSphere 관리자가 컨텐츠 라이브러리에서 동기화하고 vSphere 네임스페이스에 추가한 Ubuntu Tanzu Kubernetes 릴리스에 대한 TKR NAME을 가져옵니다.
    kubectl get tkr
  6. vGPU 지원 TKG 클러스터 프로비저닝을 위한 YAML을 만듭니다.
    1. 사용할 TKGS 클러스터 프로비저닝 API(v1alpha3 API 또는 v1beta1 API)를 결정합니다. TKG 클러스터 프로비저닝 API
    2. 선택하는 API에 따라 해당 API에 대한 Ubuntu 예를 참조하십시오.
      참고: Ubuntu OS 이미지를 사용해야 합니다. Photon OS는 사용할 수 없습니다.
    3. 이전 명령의 출력에서 수집한 정보를 사용하여 TKGS 클러스터 규격을 사용자 지정합니다.
  7. 다음 kubectl 명령을 실행하여 클러스터를 프로비저닝합니다.
    kubectl apply -f CLUSTER-NAME.yaml
    예:
    kubectl apply -f tkg-gpu-cluster-1.yaml
  8. 클러스터 프로비저닝을 확인합니다.
    kubectl을 사용하여 클러스터 노드의 배포를 모니터링합니다.
    kubectl get tanzukubernetesclusters -n NAMESPACE
  9. kubectl용 vSphere 플러그인을 사용하여 TKGS vGPU 클러스터에 로그인합니다.
    kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
  10. 클러스터를 확인합니다.
    다음 명령을 사용하여 클러스터를 확인합니다.
    kubectl cluster-info
    kubectl get nodes
    kubectl get namespaces
    kubectl api-resources

운영자 3단계: NVIDIA Network Operator 설치

NVIDIA Network Operator는 Kubernetes 사용자 지정 리소스 및 운영자 프레임워크를 활용하여 vGPU에 대한 네트워킹을 최적화합니다. 자세한 내용은 NVIDIA Network Operator를 참조하십시오.
  1. TKGS vGPU 워크로드 클러스터에 로그인했고 컨텍스트가 TKGS vGPU 워크로드 클러스터 네임스페이스로 설정되어 있는지 확인합니다.

    필요한 경우 운영자 2단계: NVIDIA vGPU용 TKGS 클러스터 프로비저닝지침을 참조하십시오.

  2. Helm 설명서를 참조하여 Helm을 설치합니다.
  3. NVIDIA Network Operator Helm Chart를 가져옵니다.
    helm fetch https://helm.ngc.nvidia.com/nvaie/charts/network-operator-v1.1.0.tgz --username='$oauthtoken' --password=<YOUR API KEY> --untar
  4. 구성 값에 대한YAML 파일을 생성합니다.
    vi values.yaml
  5. 다음 정보로 values.yaml 파일을 채웁니다.
    deployCR: true
     ofedDriver:
      deploy: true
     rdmaSharedDevicePlugin:
      deploy: true
      resources:
       - name: rdma_shared_device_a
       vendors: [15b3]
       devices: [ens192]
  6. 다음 명령을 사용하여 NVIDIA Network Operator를 설치합니다.
    helm install network-operator -f ./values.yaml -n network-operator --create-namespace --wait network-operator/

운영자 4단계: NVIDIA GPU Operator 설치

NVIDIA는 NVIDIA AI Enterprise 고객을 위해 사전 구성된 GPU Operator를 제공합니다. 이 지침에서는 미리 구성된 GPU Operator 버전을 사용한다고 가정합니다. 이 지침은 NVIDIA에서 제공한 GPU Operator 설치용 지침을 기반으로 하지만 vSphere 8의 TKG용으로 업데이트되었습니다.

프로비저닝한 TKG 클러스터에 GPU Operator NVIDIA AI Enterprise를 설치하려면 다음 단계를 완료합니다.
  1. TKGS vGPU 워크로드 클러스터에 로그인했고 컨텍스트가 TKGS vGPU 워크로드 클러스터 네임스페이스로 설정되어 있는지 확인합니다.

    필요한 경우 운영자 2단계: NVIDIA vGPU용 TKGS 클러스터 프로비저닝지침을 참조하십시오.

  2. 아직 설치되지 않은 경우 Helm 설명서를 참조하여 Helm을 설치합니다.
  3. gpu-operator Kubernetes 네임스페이스를 생성합니다.
    kubectl create namespace gpu-operator
  4. 빈 vGPU 라이센스 구성 파일을 생성합니다.
    sudo touch gridd.conf
  5. NLS 클라이언트 라이센스 토큰을 생성하고 다운로드합니다.

    NVIDIA License System User Guide의 "섹션 4.6. Generating a Client Configuration Token" 을 참조하십시오.

  6. 다운로드한 NLS 클라이언트 라이센스 토큰의 이름을 client_configuration_token.tok으로 바꿉니다.
  7. gpu-operator 네임스페이스에 licensing-config ConfigMap 개체를 생성합니다.
    이 ConfigMap에 vGPU 라이센스 구성 파일( gridd.conf) 및 NLS 클라이언트 라이센스 토큰( *.tok)을 포함합니다.
    kubectl create configmap licensing-config \
        -n gpu-operator --from-file=gridd.conf --from-file=<path>/client_configuration_token.tok
  8. NVIDIA GPU Operator에 사용할 Linux용 컨테이너화된 NVIDIA vGPU 소프트웨어 그래픽 드라이버가 포함된 개인 레지스트리에 대한 이미지 끌어오기 암호를 생성합니다.
    레지스트리 암호 이름이 ngc-secret이고 개인 레지스트리 이름이 nvcr.io/nvaie인 이미지 끌어오기 암호를 gpu-operator 네임스페이스에 생성합니다. 표시된 필드에 NGC API 키와 이메일 주소를 포함합니다.
    kubectl create secret docker-registry ngc-secret \
    --docker-server=‘nvcr.io/nvaie’ \
    --docker-username=‘$oauthtoken’ \
    --docker-password=<YOUR_NGC_API_KEY> \
    --docker-email=<YOUR_EMAIL_ADDRESS> \
    -n gpu-operator
  9. NVAIE GPU Operator 버전 2.2에 대한 helm 차트를 다운로드합니다.
    YOUR API KEY를 대체합니다.
    helm fetchhttps://helm.ngc.nvidia.com/nvaie/charts/gpu-operator-2-2-v1.11.1.tgz--username=‘$oauthtoken’ \
    --password=<YOUR API KEY>
  10. TKG 클러스터에 NVAIE GPU Operator 버전 2.2를 설치합니다.
    helm install gpu-operator ./gpu-operator-2-2-v1.11.1.tgz -n gpu-operator

운영자 5단계: AI/ML 워크로드 배포

NVIDIA GPU Cloud 카탈로그는 vGPU 지원 Tanzu Kubernetes 클러스터에서 AI/ML 워크로드를 실행하는 데 사용할 수 있는 몇 가지 기본 제공 컨테이너 이미지를 제공합니다. 사용 가능한 이미지에 대한 자세한 내용은 NGC 설명서를 참조하십시오.