Este site utiliza cookies

Utilizamos cookies para melhorar sua experiência de navegação, personalizar conteúdo e analisar nosso tráfego. Ao clicar em 'Aceitar', você concorda com o uso de cookies conforme nossa Política de Privacidade.

Virtualização

Implementação de Serviços VMware Private AI em Ambientes Mínimos VMware Cloud Foundation

VMware
18 de dezembro de 2025
11 min de leitura
Compartilhar:
Implementação de Serviços VMware Private AI em Ambientes Mínimos VMware Cloud Foundation

Implementando VCF Private AI Services sem VCF Automation

O VMware Cloud Foundation (VCF) oferece um conjunto abrangente de serviços definidos por software, permitindo que as empresas construam infraestruturas cloud confiáveis e eficientes com operações consistentes em diversos ambientes. A adição mais recente a esta plataforma é o VCF Private AI Services, um conjunto seguro de serviços para a implantação de aplicações de IA utilizando modelos e fontes de dados.

O VCF Private AI Services se integra ao VCF Automation para fornecer uma experiência simplificada e semelhante à cloud, que permite aos usuários implantar modelos em produção facilmente, muitas vezes em minutos. Por exemplo, o fluxo de trabalho para implantação de endpoints de modelo (model endpoints) está disponível na UI do VCF Automation. Sem o VCF Automation, a implantação de endpoints de modelo em um namespace exigiria o uso da Interface de Linha de Comando de Consumo do VCF (VCF Consumption Command Line Interface - VCF Consumption CLI) e do kubectl.

Embora o VCF Automation simplifique significativamente a experiência do usuário para o VCF Private AI Services, a plataforma permanece acessível mesmo em ambientes que ainda não adotaram totalmente o VCF Automation. Este artigo guiará você pela implantação do VCF Private AI Services em um ambiente VCF onde o VCF Automation ainda não foi configurado.

Visão Geral do Fluxo de Trabalho de Implantação

Este é o processo de implantação do VCF Private AI Services em um ambiente VCF onde o VCF Automation ainda não está em uso:

  1. Instalar o Private AI Services no Supervisor.
  2. Criar um namespace através do vSphere Client.
  3. Preparar o ConfigMap e o Secret da NVIDIA.
  4. Preparar os trust bundles para o Private AI Services.
  5. Preparar o arquivo YAML de configuração do Private AI Services.
  6. Criar um contexto para o namespace usando o VCF Consumption CLI.
  7. Ativar o Private AI Services no namespace.

Uma vez que o VCF Private AI Services esteja ativado em um namespace, você pode enviar modelos para o Model Store e implantar Endpoints de Modelo via kubectl.

Pré-requisitos

Para acompanhar este guia, você precisará de:

  • VMware Cloud Foundation 9.0.0 ou posterior.
  • Hosts ESX habilitados para GPU com drivers de host NVIDIA vGPU (incluindo o licenciamento NVIDIA vGPU apropriado).
  • Supervisor de zona única habilitado para um cluster vSphere com hosts ESX habilitados para GPU.
  • Registro Harbor.
  • Hugging Face CLI.
  • Banco de dados PostgreSQL com extensão pgvector.
  • Provedor de Identidade OpenID Connect (OIDC IdP).

Para uma lista mais detalhada de pré-requisitos para a implantação do VCF Private AI Services, consulte a documentação oficial.

Implantação do VCF Private AI Services

1. Instalar o Private AI Services no Supervisor

Primeiro, precisamos baixar o arquivo de definição YAML para o Private AI Services no Broadcom Support Portal. Encontre o VMware Private AI Services e clique na versão de release desejada. Para obter suas credenciais de registro OCI, clique no ícone do selo verde ao lado da versão. Siga as instruções fornecidas para adicionar o registro ao Supervisor via vSphere Client.

Alternativamente, você pode seguir a documentação oficial para instalar o Private AI Services, aproveitando o workflow Private AI Foundation disponível no vSphere Client.

Você também pode instalar o Private AI Services diretamente usando o Gerenciamento do Supervisor (Supervisor Management) com as seguintes etapas:

  1. Navegue até Gerenciamento do Supervisor no vSphere Client.
  2. Em Serviços (Services), clique em Adicionar (Add) em Adicionar Novo Serviço (Add New Service).
  3. Faça o upload do arquivo YAML do Private AI Services para registrar o serviço e clique em Concluir (Finish).
  4. Assim que o novo cartão do Private AI Services aparecer, clique em Ações (Actions) e depois em Gerenciar Serviço (Manage Service).
  5. Selecione o Supervisor e clique em Próximo (Next).
  6. Deixe o YAML de Configuração do Serviço (YAML Service Config) em branco e clique em Concluir (Finish).

Para verificar se a instalação foi bem-sucedida, navegue até o Supervisor. Em Configurar (Configure), selecione Visão Geral (Overview) em Serviços do Supervisor (Supervisor Services). O Private AI Services deve exibir "Configurado" (Configured) sob o Status.

2. Criar um namespace através do vSphere Client

O VCF Private AI Services é ativado no nível do namespace. Portanto, vamos criar um namespace vSphere navegando até Gerenciamento do Supervisor > Namespaces e selecionando Novo Namespace (New Namespace). Prossiga com o assistente de configuração. Para mais detalhes, consulte a documentação oficial.

Após criar um namespace, você precisa adicionar as políticas de storage e as classes de VM que serão acessíveis aos recursos dentro dele. Você pode fazer isso acessando o namespace e usando os tiles Armazenamento (Storage) e Serviço de VM (VM Service) na aba Resumo (Summary). Para o Serviço de VM, você deve incluir classes de VM somente CPU para control plane e worker nodes, e classes de VM com GPUs para endpoints de modelo.

3. Preparar o ConfigMap e o Secret da NVIDIA

Para usar vGPUs da NVIDIA para os recursos do Private AI, você precisa criar um ConfigMap para a licença da NVIDIA e um Secret para o token da API NVIDIA GPU Cloud (NGC) para autenticação.

O ConfigMap da licença da NVIDIA requer o client_configuration_token.tok nos dados.

yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: licensing-config
data:
  client_configuration_token.tok: eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
  gridd.conf: ""

O Secret requer o token da API no .dockerconfigjson.

yaml
apiVersion: v1
kind: Secret
metadata:
  name: ngc-secret
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: ewogICJhdXRocyI6IHsKICAgICJudmNyLmlvL252aWRpYS92Z3B1IjogewogICAgICAidXNlcm5hbWUiOiAiJG9hdXRodG9rZW4iLAogICAgICAicGFzc3dvcmQiOiAibnZhcGktRWNzQ2FNM1otQUo4X0p1anA5b2lLcFRscFpqN05XeGJqajc0cGhEQXVyVWNVM1BFckRpaXVsdhaqsdfasdfqdgICJlbWFpbCI6ICJuaWtoaWwtbmQuZGVzaHBhbmRlQGJyb2FkY29tLmNvbSIsCiAgICAgICJhdXRoIjogIkpHOWhkWFJvZEc5clpXNDZiblpoY0drdFJXTnpRMkZOTTFvdFFVbzRYMHAxYW5BNWIybExjRlJzY0ZwcU4wNVhlR0pxYWpjMGNHaEVRWFZ5VldOVk0xQkZja1JwYVhWSWVtdEdNbmxDZURoUVlnPT0iCiAgICB9CiAgfQp9Cg==

Observe que, embora tenhamos usado licensing-config para o ConfigMap e ngc-secret para o Secret, você pode escolher nomes diferentes. Apenas certifique-se de registrar esses nomes, pois eles devem ser referenciados no arquivo YAML de configuração do Private AI Services. Você também pode encontrar templates YAML limpos para o ConfigMap e Secret da NVIDIA na documentação oficial.

4. Preparar trust bundles para o Private AI Services

Você precisará de trust bundles, provisionados como ConfigMaps, para que o VCF Private AI Services estabeleça conexões HTTPS seguras com vários componentes, como o provedor OIDC, o registro Harbor e o banco de dados PostgreSQL. Os trust bundles específicos necessários dependem do seu ambiente e dos componentes integrados ao Private AI Services.

Provavelmente, você precisará de trust bundles separados para o provedor OIDC e para o registro Harbor. Utilizo o VMware Data Services Manager em meu ambiente para provisionar um banco de dados PostgreSQL para o Private AI Services. Abaixo está um exemplo de um trust bundle para o VMware Data Services Manager.

yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: ca-trust-bundle-for-dsm
data:
  ca.crt: |
    -----BEGIN CERTIFICATE-----
    MIIC7TCCAdWgAwIBAgIGAZhSNu6iMA0GCSqGSIb3DQEBCwUAMCgxFTATBgNVBAMM
    DFZNd2FyZS1EQi1DQTEPMA0GA1UECgwGVk13YXJlMB4XDTI1MDcyNTE4MDYyOFoX
    ... (omitido por brevidade) ...
    i8XBt8qhiR5S2XVVD3v//NGUgsHGqDQQZQuCoIueh5mQ
    -----END CERTIFICATE-----

Você pode consultar a documentação oficial para obter exemplos adicionais de trust bundles.

5. Preparar o arquivo YAML de configuração do Private AI Services

Finalmente, preparamos o arquivo YAML de configuração do Private AI Services. Você pode consultar a documentação oficial para obter o template de configuração YAML que está em conformidade com a Custom Resource Definition (CRD) PAISConfiguration. Certifique-se de prestar atenção à versão do driver de host NVIDIA vGPU em seu ambiente – você pode precisar sobrescrever a versão do gpu-operator com um ConfigMap, conforme detalhado nas instruções do template YAML de configuração.

Abaixo está o arquivo de configuração do Private AI Services para minha implantação como exemplo:

yaml
apiVersion: pais.vmware.com/v1alpha1
kind: PAISConfiguration
metadata:
  name: default
  load_balancer_external_fqdn
spec:
  worker:
    storageClassName: vsan-default-storage-policy
  clientTls:
    caBundleRefs:
      - name: ca-trust-bundle-for-broadcom
      - name: ca-trust-bundle-for-dsm
  database:
    host: 10.160.64.51
    username: pgadmin
    dbname: pk-postgres02
    passwordRef:
      name: pk-postgres02-secret
      fieldPath: password
  auth:
    oidc:
      issuerUrl: https://mylogin.broadcom.com/default/
      clientId: 98bfc999-e4a5-468d-b18b-3124130a69cd84
      scope:
        - openid
        - groups
        - offline_access
      authorizedGroups:
        - AH_PK-PAIS
      groupsClaim: groups
  ingress:
    serviceType: LoadBalancer
  vksControlPlane:
    virtualMachineClassName: best-effort-large
    storageClassName: vsan-default-storage-policy
  nvidiaConfig:
    licenseConfigRef:
      name: licensing-config
    imagePullSecretRef:
      name: ngc-secret

6. Criar um contexto para o namespace usando o VCF Consumption CLI

Agora temos todos os arquivos necessários para ativar o Private AI Services, mas primeiro precisamos obter acesso ao namespace. Você pode usar qualquer máquina que tenha o VCF Consumption CLI instalado; o VCF Consumption CLI pode ser baixado do cluster supervisor (https://<ip-do-cluster-supervisor>).

Crie um contexto Kubernetes usando autenticação básica do vSphere com acesso ao Supervisor. Digite a senha quando solicitado.

bash
vcf context create <nome_do_contexto_supervisor> --endpoint <endereco_ip_supervisor> --auth-type 'basic' --username '[email protected]'

Opcionalmente, você pode usar o flag --insecure-skip-tls-verify para ignorar a verificação de certificado, mas isso não é recomendado em produção. Todos os namespaces configurados no Supervisor serão listados.

Mude para o contexto onde você deseja ativar o PAIS.

bash
vcf context use <nome_do_contexto_namespace>

7. Ativar o Private AI Services no namespace

Depois de mudar para o contexto onde você deseja ativar o PAIS, navegue até o diretório onde você tem todos os arquivos preparados nas etapas anteriores. Aplique todos os arquivos usando kubectl apply -f <nome_do_arquivo>. Certifique-se de aplicar o arquivo YAML de configuração do Private AI Services por último, pois ele depende dos Secrets e ConfigMaps.

Você pode verificar se a implantação da configuração do PAIS foi bem-sucedida com os seguintes comandos:

bash
kubectl describe paisconfiguration <nome_da_configuracao_pais>
kubectl get paisconfiguration

A saída deve ser semelhante a:

NAME      SERVICE             READY   REASON
default   pais-ingress-default   True    paisAvailable

Você também pode consultar a documentação oficial para mais detalhes.

Utilizando o VCF Private AI Services

Usar o Model Store

Você pode baixar modelos de sites como NVIDIA NGC ou HuggingFace localmente e, em seguida, usar o VCF Consumption CLI para enviar modelos para o Model Store. Você pode usar qualquer registro compatível com OCI como seu Model Store, como Artifactory e Harbor.

Abaixo está um exemplo onde o Harbor está sendo usado como Model Store. A sequência de comandos demonstra como baixar um modelo (llama-3.2-1b-instruct) do HuggingFace e fazer o upload para o Harbor:

bash
mkdir llama-3.2-1b-instruct
cd llama-3.2-1b-instruct
huggingface-cli login
huggingface-cli download meta-llama/Llama-3.2-1B-Instruct --local-dir .
docker login harbor-registry.broadcom.net
vcf pais models push --modelName meta-llama/llama-3.2-1b-instruct --modelStore harbor-registry.broadcom.net/model-store -t v1

Você pode consultar a documentação oficial para instruções detalhadas.

Implantar Endpoints de Modelo

A UI para implantar endpoints de modelo está disponível através do VCF Automation. Sem o VCF Automation configurado, você implantaria os endpoints de modelo usando o YAML de Recurso Kubernetes. Abaixo está um exemplo de arquivo YAML para um endpoint de modelo que implanta um modelo de conclusão Mistral.

yaml
apiVersion: pais.vmware.com/v1alpha1
kind: ModelEndpoint
metadata:
  name: mistral-7b-instruct-v0.3--vllm
spec:
  model:
    ociRef: harbor-registry.broadcom.net/mistralai/mistral-7b-instruct-v0.3:approved
  # pullSecrets:
  # - name: harbor-pull-secret-readonly
  engine: vLLM
  type: Completions
  routingName: mistralai/mistral-7b-instruct-v0.3
  virtualMachineClassName: h100-1xgpu
  storageClassName: vsan-default-storage-policy
  podResourceOverrides:
    nvidia.com/gpu: "1"
  inferenceServerCustomization:
    cliArgs:
      # Enable tool-calling support (see https://docs.vllm.ai/en/stable/features/tool_calling.html)
      - --enable-auto-tool-choice
      - --tool-call-parser=mistral
    # Further example customizations
    #@ if False:
    # - "--dtype=half" # Required for V100 (Tesla generation) GPUs, but not for A30s
    engineImage: dockerhub.packages.vcfd.broadcom.net/vllm/vllm-openai:v0.9.1 # Override VLLM container
    engineImageCompressedSize: 15Gi # may need to increase this when using large engine images like VLLM 0.9
    sharedMemoryMountSize: 2Gi # may need a larger one when using NCCL
    envVars:
      - name: SOME_ENV_VAR
        value: "42" # note always a string
      - name: "VLLM_LOGGING_LEVEL"
        value: "DEBUG" # The logging level for vLLM inference server can be set by specifying VLLM_LOGGING_LEVEL env variable
    #@ end

Depois de ter um arquivo YAML de endpoint de modelo preparado, você implanta o endpoint de modelo aplicando este arquivo no namespace.

Você pode verificar as implantações de endpoints de modelo com o seguinte comando:

bash
kubectl get modelendpoints

Para visualizar um endpoint de modelo específico, você pode usar o seguinte comando:

bash
kubectl get modelendpoints/<nome-do-endpoint-de-modelo>

Entregando Aplicações RAG usando VCF Private AI Services

O VCF Private AI Services possui uma UI standalone onde você pode criar bases de conhecimento com fontes de dados vinculadas para coletar e indexar automaticamente as atualizações de dados ao longo do tempo. Você também pode construir um agent no Agent Builder nesta UI standalone para facilitar o ajuste e teste de prompts. O agent utiliza um modelo de conclusões em execução no Model Runtime e, para aplicações RAG (Retrieval-Augmented Generation - Geração Aumentada por Recuperação), o integra a uma base de conhecimento do Data Indexing and Retrieval (Indexação e Recuperação de Dados).

Para acessar a UI, localize o endereço IP externo atribuído à instância do Private AI Services pelo serviço ingress (pais-ingress-default) verificando os serviços via kubectl get services. Navegue até o endereço IP externo do serviço pais-ingress-default via HTTPS em um navegador da web.

Consulte a documentação oficial para mais detalhes sobre como usar esses Private AI Services através de sua UI standalone. Você também pode usar as APIs de Compatibilidade Open AI para interagir com modelos implantados usando clients compatíveis com OpenAI.

Descubra mais no Blog VMware Cloud Foundation (VCF)

Assine para receber as últimas publicações em seu e-mail.

Precisa de ajuda com suas soluções de TI?

A VirtuAllIT Solutions oferece consultoria especializada em virtualização, cloud computing e infraestrutura tecnológica.