개발자가 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 클러스터 프로비저닝
- vSphere에 대한 Kubernetes CLI 도구를 설치합니다.
vSphere에 대한 Kubernetes CLI 도구 설치의 내용을 참조하십시오.
- kubectl용 vSphere 플러그인을 사용하여 감독자로 인증합니다.
kubectl vsphere login --server=IP-ADDRESS-or-FQDN --vsphere-username USERNAME
참고: FQDN은 감독자를 사용하도록 설정된 경우에만 사용할 수 있습니다. - kubectl을 사용하여 vSphere 관리자가 TKGS vGPU 클러스터에 대해 생성한 vSphere 네임스페이스로 컨텍스트를 전환합니다.
kubectl config get-contexts
kubectl config use-context TKG-GPU-CLUSTER-NAMESPACE
- vSphere 관리자가 생성한 vGPU 프로파일을 사용하여 사용자 지정 VM 클래스의 이름을 가져옵니다.
kubectl get virtualmachineclass
참고: VM 클래스는 대상 vSphere 네임스페이스에 바인딩되어야 합니다. - vSphere 관리자가 컨텐츠 라이브러리에서 동기화하고 vSphere 네임스페이스에 추가한 Ubuntu Tanzu Kubernetes 릴리스에 대한 TKR NAME을 가져옵니다.
kubectl get tkr
- vGPU 지원 TKG 클러스터 프로비저닝을 위한 YAML을 만듭니다.
- 사용할 TKGS 클러스터 프로비저닝 API(v1alpha3 API 또는 v1beta1 API)를 결정합니다. TKG 클러스터 프로비저닝 API
- 선택하는 API에 따라 해당 API에 대한 Ubuntu 예를 참조하십시오.
참고: Ubuntu OS 이미지를 사용해야 합니다. Photon OS는 사용할 수 없습니다.
- 이전 명령의 출력에서 수집한 정보를 사용하여 TKGS 클러스터 규격을 사용자 지정합니다.
- 다음 kubectl 명령을 실행하여 클러스터를 프로비저닝합니다.
kubectl apply -f CLUSTER-NAME.yaml
예:kubectl apply -f tkg-gpu-cluster-1.yaml
- 클러스터 프로비저닝을 확인합니다.
kubectl을 사용하여 클러스터 노드의 배포를 모니터링합니다.
kubectl get tanzukubernetesclusters -n NAMESPACE
- 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
- 클러스터를 확인합니다.
다음 명령을 사용하여 클러스터를 확인합니다.
kubectl cluster-info
kubectl get nodes
kubectl get namespaces
kubectl api-resources
운영자 3단계: NVIDIA Network Operator 설치
- TKGS vGPU 워크로드 클러스터에 로그인했고 컨텍스트가 TKGS vGPU 워크로드 클러스터 네임스페이스로 설정되어 있는지 확인합니다.
필요한 경우 운영자 2단계: NVIDIA vGPU용 TKGS 클러스터 프로비저닝지침을 참조하십시오.
- Helm 설명서를 참조하여 Helm을 설치합니다.
- 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
- 구성 값에 대한YAML 파일을 생성합니다.
vi values.yaml
- 다음 정보로
values.yaml
파일을 채웁니다.deployCR: true ofedDriver: deploy: true rdmaSharedDevicePlugin: deploy: true resources: - name: rdma_shared_device_a vendors: [15b3] devices: [ens192]
- 다음 명령을 사용하여 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용으로 업데이트되었습니다.
- TKGS vGPU 워크로드 클러스터에 로그인했고 컨텍스트가 TKGS vGPU 워크로드 클러스터 네임스페이스로 설정되어 있는지 확인합니다.
필요한 경우 운영자 2단계: NVIDIA vGPU용 TKGS 클러스터 프로비저닝지침을 참조하십시오.
- 아직 설치되지 않은 경우 Helm 설명서를 참조하여 Helm을 설치합니다.
gpu-operator
Kubernetes 네임스페이스를 생성합니다.kubectl create namespace gpu-operator
- 빈 vGPU 라이센스 구성 파일을 생성합니다.
sudo touch gridd.conf
- NLS 클라이언트 라이센스 토큰을 생성하고 다운로드합니다.
NVIDIA License System User Guide의 "섹션 4.6. Generating a Client Configuration Token" 을 참조하십시오.
- 다운로드한 NLS 클라이언트 라이센스 토큰의 이름을
client_configuration_token.tok
으로 바꿉니다. 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
- 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
- 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>
- 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 설명서를 참조하십시오.