vSphere with Tanzu のスーパーバイザーの仮想マシン サービスにより、データ サイエンティストや DevOps エンジニアは Kubernetes API を使用してディープ ラーニング仮想マシンを展開および実行できます。
データ サイエンティストまたは DevOps エンジニアは、kubectl を使用して、クラウド管理者が構成した名前空間にディープ ラーニング仮想マシンを展開します。
前提条件
クラウド管理者に、AI 対応インフラストラクチャのための次の前提条件が満たされていることを確認します。
- VMware Private AI Foundation with NVIDIA が展開および構成されている。VMware Private AI Foundation with NVIDIA の展開を参照してください。
- ディープ ラーニング仮想マシンを含むコンテンツ ライブラリが AI ワークロードの名前空間に追加されている。VMware Private AI Foundation with NVIDIA のディープ ラーニング仮想マシン イメージを含むコンテンツ ライブラリを作成するを参照してください。
手順
- スーパーバイザー制御プレーンにログインします。
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
- 仮想マシン クラスや仮想マシン イメージなど、必要なすべての仮想マシン リソースが名前空間に配置されていることを確認します。
「vSphere with Tanzu の名前空間で使用可能な仮想マシン リソースの表示」を参照してください。
- ディープ ラーニング仮想マシンの YAML ファイルを準備します。
vm-operator-api を使用して、OVF プロパティを ConfigMap オブジェクトとして設定します。
たとえば、PyTorch を実行するディープ ラーニング仮想マシンの例の YAML 仕様 example-dl-vm.yaml を作成できます。
apiVersion: vmoperator.vmware.com/v1alpha1 kind: VirtualMachine metadata: name: example-dl-vm namespace: vpaif-ns labels: app: example-dl-app spec: className: gpu-a30 imageName: vmi-xxxxxxxxxxxxx powerState: poweredOn storageClass: tanzu-storage-policy vmMetadata: configMapName: example-dl-vm-config transport: OvfEnv
apiVersion: v1 kind: ConfigMap metadata: name: example-dl-vm-config namespace: vpaif-ns data: user-data: I2Nsb3VkLWNvbmZpZwogICAgd3JpdGVfZmlsZXM6CiAgICAtIHBhdGg6IC9vcHQvZGx2bS9kbF9hcHAuc2gKICAgICAgcGVybWlzc2lvbnM6ICcwNzU1JwogICAgICBjb250ZW50OiB8CiAgICAgICAgIyEvYmluL2Jhc2gKICAgICAgICBkb2NrZXIgcnVuIC1kIC1wIDg4ODg6ODg4OCBudmNyLmlvL252aWRpYS9weXRvcmNoOjIzLjEwLXB5MyAvdXNyL2xvY2FsL2Jpbi9qdXB5dGVyIGxhYiAtLWFsbG93LXJvb3QgLS1pcD0qIC0tcG9ydD04ODg4IC0tbm8tYnJvd3NlciAtLU5vdGVib29rQXBwLnRva2VuPScnIC0tTm90ZWJvb2tBcHAuYWxsb3dfb3JpZ2luPScqJyAtLW5vdGVib29rLWRpcj0vd29ya3NwYWNl vgpu-license: NVIDIA-client-configuration-token nvidia-portal-api-key: API-key-from-NVIDIA-licensing-portal password: password-for-vmware-user
注:user-data
は、次の cloud-init コードの base64 エンコードされた値です。#cloud-config write_files: - path: /opt/dlvm/dl_app.sh permissions: '0755' content: | #!/bin/bash docker run -d -p 8888:8888 nvcr.io/nvidia/pytorch:23.10-py3 /usr/local/bin/jupyter lab --allow-root --ip=* --port=8888 --no-browser --NotebookApp.token='' --NotebookApp.allow_origin='*' --notebook-dir=/workspace
apiVersion: vmoperator.vmware.com/v1alpha1 kind: VirtualMachineService metadata: name: example-dl-vm namespace: vpaif-ns spec: ports: - name: ssh port: 22 protocol: TCP targetPort: 22 - name: junyperlab port: 8888 protocol: TCP targetPort: 8888 selector: app: example-dl-app type: LoadBalancer
- クラウド管理者が作成した vSphere 名前空間のコンテキストに切り替えます。
たとえば、
example-dl-vm-namespace
という名前空間の場合は次のとおりです。kubectl config use-context example-dl-vm-namespace
- ディープ ラーニング仮想マシンを展開します。
kubectl apply -f example-dl-vm.yaml
- 次のコマンドを実行して、仮想マシンが作成されていることを確認します。
kubectl get vm -n example-dl-vm.yaml
kubectl describe virtualmachine example-dl-vm
ping IP_address_returned_by_kubectl_describe
- 要求されたネットワーク サービスによって割り当てられた仮想マシンの IP アドレスに ping コマンドを実行します。
ディープ ラーニング仮想マシンにアクセスするためのパブリック アドレスとポートを取得するには、作成されたロード バランサ サービスの詳細を取得します。
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-dl-vm LoadBalancer <internal-ip-address> <public-IPaddress> 22:30473/TCP,8888:32180/TCP 9m40s
ディープ ラーニング仮想マシンを初めて起動すると、vGPU ゲスト ドライバと指定された DL ワークロードがインストールされます。
ログを調べたり、一部のイメージに付属している JupyterLab Notebook を開いたりできます。VMware Private AI Foundation with NVIDIA のディープ ラーニング ワークロードを参照してください。