Partilhar via


Tutorial: Conectar-se ao Serviço OpenAI do Azure no AKS usando a Identidade da Carga de Trabalho (visualização)

Neste tutorial, você aprenderá a criar um pod em um cluster do Azure Kubernetes (AKS), que conversa com o Serviço OpenAI do Azure usando a identidade da carga de trabalho e o Service Connector. Neste tutorial, vai concluir as seguintes tarefas:

  • Crie um cluster AKS e o Serviço OpenAI do Azure com gpt-4 implantação de modelo.
  • Crie uma conexão entre o cluster AKS e o Azure OpenAI com o Service Connector.
  • Clone um aplicativo de exemplo que conversará com o serviço Azure OpenAI a partir de um cluster AKS.
  • Implante o aplicativo em um pod no cluster AKS e teste a conexão.
  • Limpe os recursos.

Pré-requisitos

Criar recursos do Azure

Você inicia 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 AKS com o seguinte comando ou consultando o início rápido do AKS. Neste tutorial, criamos a conexão de serviço e a definição de 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 Serviço OpenAI do Azure usando o comando az cognitiveservices account create . Opcionalmente, consulte este tutorial para obter mais instruções. O Serviço OpenAI do Azure é o serviço de destino que conectaremos ao cluster AKS.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAIService \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenaiservice \
        --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 MyOpenAIService
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard"
        --capacity 1
    
  6. Crie um recurso do Azure Container Registry (ACR) com o comando az acr create ou referindo-se a este tutorial. O registro hospeda a imagem de contêiner do aplicativo de exemplo, que a definição de pod AKS consome.

    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 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 consultando 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 AKS.

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

Criar uma conexão de serviço no AKS com o Service Connector (visualização)

Crie uma conexão de serviço entre um cluster AKS e o Serviç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 AKS para obter instruções para criar uma nova conexão e preencha as configurações referentes aos exemplos na tabela a seguir. Deixe todas as outras configurações com seus valores padrão.

  1. Guia Noções básicas:

    Definição Valor de exemplo Description
    Espaço de nomes do Kubernetes default O namespace Kubernetes.
    Tipo de serviço Serviço OpenAI O tipo de serviço de destino.
    Nome da ligação openai_conn Use o nome da conexão fornecido pelo Service Connector ou escolha seu próprio nome de conexão.
    Subscrição <MySubscription> A assinatura usada para o Serviço OpenAI do Azure.
    OpenAI <MyOpenAIService> O serviço OpenAI do Azure de destino ao qual você deseja se conectar.
    Tipo de cliente Python A linguagem de código ou estrutura que você usa para se conectar ao serviço de destino.
  2. Guia Autenticação:

    Configuração de autenticação Valor de exemplo Description
    Tipo de autenticação Identidade da carga de trabalho Tipo de autenticação do Service Connector.
    Subscrição <MySubscription> A assinatura que contém a identidade gerenciada atribuída ao usuário.
    Identidade gerenciada atribuída ao usuário <MyIdentity> Uma identidade gerenciada atribuída ao usuário é necessária para habilitar a identidade da carga de trabalho.

Depois que a conexão tiver sido criada, você poderá exibir seus detalhes no painel Service Connector .

Aplicação de exemplo de clonagem

  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 Azure OpenAI:

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

Crie e envie imagens de contêiner por push

  1. Crie e envie as imagens para seu ACR usando o comando azur CLI az acr build .

    az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
    
  2. Visualize as imagens em sua instância ACR usando o comando az acr repository list .

    az acr repository list --name <MyRegistry> --output table
    

Executar aplicativo e testar conexão

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

    • Substitua <YourContainerImage> pelo nome da imagem que construímos anteriormente. Por exemplo, <MyRegistry>.azurecr.io/sc-demo-openai-identity:latest.
    • Substitua <ServiceAccountCreatedByServiceConnector> pela conta de serviço criada pelo Service Connector após a criação da conexão. Você pode verificar o nome da conta de serviço no portal do Azure, no painel Service Connector .
    • Substitua <SecretCreatedByServiceConnector> pelo segredo criado pelo Service Connector após a criação da conexão. Você pode verificar o nome secreto no portal do Azure, no painel Service Connector .
  2. Implante o pod no cluster com o kubectl apply comando, que cria um pod nomeado sc-demo-openai-identity no namespace padrão do cluster AKS. Instale kubectl localmente usando o comando az aks install-cli se não estiver instalado.

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

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

    kubectl logs pod/sc-demo-openai-identity
    

Clean up resources (Limpar 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

Próximos passos

Leia os artigos a seguir para saber mais sobre os conceitos do Service Connector e como ele ajuda o AKS a se conectar aos serviços.