Tutorial: Conectar-se ao Serviço OpenAI do Azure no AKS usando a Identidade da Carga de Trabalho
Neste tutorial, você aprenderá a criar um pod em um cluster do Azure Kubernetes (AKS) que se comunica com o Serviço OpenAI do Azure usando a ID de Carga de Trabalho do Microsoft Entra e o Conector de Serviço. 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
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
-
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.
- Instale o Docker e o kubectl para gerenciar a imagem do contêiner e os recursos do Kubernetes.
- Uma compreensão básica de contêiner e AKS. Comece a preparar uma candidatura para o AKS.
- Uma compreensão básica da identidade da carga de trabalho.
- Permissões de acesso para criar recursos do Azure OpenAI e implantar modelos.
Criar recursos do Azure
Você inicia este tutorial criando vários recursos do Azure.
Crie um grupo de recursos para este tutorial.
az group create \ --name MyResourceGroup \ --location eastus
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
Conecte-se ao cluster usando o comando az aks get-credentials .
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
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>
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
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
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
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
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.
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. 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 pelo 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 for criada, você poderá exibir seus detalhes no painel Conector de Serviço .
Aplicação de exemplo de clonagem
Clone o repositório de exemplo:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Vá para a pasta de exemplo do repositório para o Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-workload-identity
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
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 ./
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
Substitua os espaços reservados no
pod.yaml
arquivo naazure-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 .
- Substitua
Implante o pod no cluster com o
kubectl apply
comando, que cria um pod nomeadosc-demo-openai-identity
no namespace padrão do cluster AKS. Instalekubectl
localmente usando o comando az aks install-cli se não estiver instalado.kubectl apply -f pod.yaml
Verifique se a implantação foi bem-sucedida visualizando o pod com
kubectl
.kubectl get pod/sc-demo-openai-identity
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