Compartilhar via


Tutorial: Conectar o AKS ao OpenAI do Azure

Este tutorial mostra como conectar seus aplicativos do AKS (Serviço de Kubernetes do Azure) ao OpenAI do Azure usando o Conector de Serviço com autenticação de identidade de carga de trabalho. Você estabelecerá conexões sem credenciais implantando um aplicativo Python de exemplo que se comunica com o Azure OpenAI.

Você concluirá as seguintes tarefas:

  • Criar um cluster do AKS e um recurso do OpenAI do Azure com o modelo GPT-4
  • Configurar o Conector de Serviço para estabelecer a conexão com a identidade da carga de trabalho
  • Clonar um aplicativo de exemplo
  • Compilar e enviar imagens de contêiner por push para o Registro de Contêiner do Azure
  • Implantar o aplicativo no AKS e verificar a conexão
  • Limpar os recursos

Pré-requisitos

Criar recursos do OpenAI do Azure e do AKS

Inicie este tutorial criando vários recursos do Azure.

  1. Crie um grupo de recursos para este tutorial.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Crie um cluster do AKS com o comando a seguir ou consulte o Guia de início rápido do AKS. Neste tutorial, criamos a conexão de serviço e a definição do pod e implantamos o aplicativo de exemplo nesse cluster.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
        --generate-ssh-keys
    
  3. Conecte-se ao cluster usando o comando az aks get-credentials.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Crie um recurso do OpenAI do Azure usando o comando az cognitiveservices account create. Opcionalmente, consulte este tutorial para obter mais instruções. O OpenAI do Azure é o serviço de destino ao qual o cluster do AKS se conectará.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. Implante um modelo com o comando az cognitiveservices deployment create. O modelo é usado no aplicativo de exemplo para testar a conexão.

    az cognitiveservices account deployment create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard" \
        --capacity 1
    
  6. Crie um ACR (Registro de Contêiner do Azure) para armazenar o aplicativo de exemplo em contêineres. Use o comando az acr create ou consulte este tutorial.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Habilite o pull anônimo usando o comando az acr update para que o cluster do AKS possa consumir as imagens no registro.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. Crie uma identidade gerenciada atribuída pelo usuário com o comando az identity create ou referindo-se a este tutorial. Quando a conexão é criada, a identidade gerenciada atribuída pelo usuário é usada para habilitar a identidade da carga de trabalho para cargas de trabalho do AKS.

    az identity create \
        --resource-group MyResourceGroup \
        --name MyIdentity
    

Criar uma conexão de serviço do AKS para o OpenAI do Azure

Crie uma conexão de serviço entre um cluster do AKS e o OpenAI do Azure no portal do Azure ou na CLI do Azure.

Consulte o início rápido da conexão de serviço do AKS para obter instruções para criar uma conexão e preencher as configurações referentes aos exemplos na tabela a seguir. Deixe todas as outras configurações com os valores padrão delas.

  1. Guia Básico:

    Configuração Valor de exemplo Descrição
    Namespace do Kubernetes default O namespace do Kubernetes.
    Tipo de serviço Serviço OpenAI O tipo de serviço de destino.
    Nome da conexão openai_conn Use o nome da conexão fornecido pelo Conector de Serviço ou escolha um nome de conexão próprio.
    Assinatura Minha assinatura A assinatura do Azure que contém o recurso do OpenAI do Azure.
    OpenAI MyOpenAI O recurso do OpenAI do Azure de destino ao qual você deseja se conectar.
    Tipo de cliente Python A linguagem de programação ou a estrutura para a configuração de conexão.
  2. Guia Autenticação:

Configuração de Autenticação Valor de exemplo Descrição
Tipo de autenticação Identidade da Carga de Trabalho O método de autenticação para conectar o aplicativo ao OpenAI do Azure. A identidade da carga de trabalho é recomendada para segurança aprimorada. Métodos alternativos incluem cadeia de conexão e entidade de serviço e exigem considerações de gerenciamento de credenciais.
Assinatura Minha assinatura A assinatura que contém a identidade gerenciada atribuída pelo usuário.
Identidade gerenciada atribuída ao usuário myidentity A identidade gerenciada atribuída pelo usuário que habilita a autenticação de identidade de carga de trabalho para o cluster do AKS.

Depois que a conexão for criada, você poderá ver os detalhes no painel Conector de Serviço.

Clonar aplicativo de exemplo do Python

  1. Clone o repositório de exemplo:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Vá para a pasta de exemplo do repositório para o OpenAI do Azure:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. Substitua o espaço reservado <MyModel> no arquivo app.py pelo nome do modelo que implantamos.

Compilar e enviar imagens de contêiner por push para o Registro de Contêiner do Azure

  1. Compile e efetue push das imagens para o registro de contêiner usando o comando az acr build da CLI do Azure.

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. Exiba as imagens no registro de contêiner usando o comando az acr repository list.

    az acr repository list --name myregistry --output table
    

Implantar e testar o AKS na conexão do OpenAI do Azure

  1. Substitua os espaços reservados no arquivo pod.yaml na pasta azure-openai-workload-identity.

    • Substitua <YourContainerImage> pelo nome da imagem que você criou anteriormente. Por exemplo, <myregistry>.azurecr.io/<sc-demo-openai-identity>:<latest>.
    • Substitua <ServiceAccountCreatedByServiceConnector> pelo nome da conta de serviço. Ele pode ser encontrado no portal do Azure, no painel Conector de Serviço.
    • Substitua <SecretCreatedByServiceConnector> pelo nome do segredo. Ele pode ser encontrado no portal do Azure, no painel Conector de Serviço.
  2. Implante o pod no cluster com o comando kubectl apply, que cria um pod chamado sc-demo-openai-identity no namespace padrão do cluster do AKS. Instale kubectl localmente usando o comando az aks install-cli se ele não estiver instalado.

    kubectl apply -f pod.yaml
    
  3. Verifique se a implantação foi bem-sucedida exibindo o pod com kubectl.

    kubectl get pod/sc-demo-openai-identity
    
  4. Verifique se a conexão é estabelecida exibindo os logs com kubectl.

    kubectl logs pod/sc-demo-openai-identity
    

Limpar os recursos

Se você não precisar mais dos recursos criados neste tutorial, limpe-os excluindo o grupo de recursos.

az group delete \
    --resource-group MyResourceGroup