Tutorial: Conectar-se ao Serviço OpenAI do Azure no AKS usando a Identidade da Carga de Trabalho (versão prévia)
Neste tutorial, você aprenderá a criar um pod em um cluster do Kubernetes do Azure(AKS), que conversa com o Serviço OpenAI do Azure usando a identidade da carga de trabalho e o Conector de Serviço. Neste tutorial, você completa as seguintes tarefas:
- Crie um cluster do AKS e o Serviço OpenAI do Azure com a implantação de modelo
gpt-4
. - Crie uma conexão entre o cluster do AKS e o OpenAI do Azure com o Conector de Serviço.
- Clone um aplicativo de exemplo que falará com o serviço Azure OpenAI de um cluster do AKS.
- Implante o aplicativo em um pod no cluster do AKS e teste a conexão.
- Limpe os recursos.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
-
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
- Instale o Docker e o kubectl para gerenciar a imagem do contêiner e os recursos do Kubernetes.
- Conhecimento básico de contêineres e AKS. Introdução à preparação de um aplicativo para o AKS.
- Uma compreensão básica da identidade da carga de trabalho.
- Permissões de acesso para criar recursos do OpenAI do Azure e implantar modelos.
Criar recursos do Azure
Inicie 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 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
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 do 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 ACR (Registro de Contêiner do Azure) 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 será consumida pela definição de pod do AKS.
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 do 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 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 no AKS com o Service Connector (versão prévia)
Crie uma conexão de serviço entre um cluster do 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 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.
Guia Básico:
Configuração Valor de exemplo Descrição Namespace do Kubernetes padrão 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 <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 a estrutura que você usa para se conectar ao serviço de destino. Guia Autenticação:
Configuração de Autenticação Valor de exemplo Descrição Tipo de autenticação Identidade da Carga de Trabalho Tipo de autenticação do Conector de Serviço. Assinatura <MySubscription>
A assinatura que contém a identidade gerenciada atribuída pelo usuário. Identidade gerenciada atribuída ao usuário <MyIdentity>
Em seguida, selecione uma identidade gerenciada atribuída pelo usuário 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.
Clonar aplicativo de exemplo
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 OpenAI do Azure:
cd serviceconnector-aks-samples/azure-openai-workload-identity
Substitua o espaço reservado
<MyModel>
no arquivoapp.py
pelo nome do modelo que implantamos.
Compilar e efetuar push da imagem do contêiner
Crie e envie por push as imagens para o ACR usando o comando de build az acr da CLI do Azure.
az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
Exiba as imagens em sua instância do ACR usando o comando az acr repository list.
az acr repository list --name <MyRegistry> --output table
Executar o aplicativo e testar a conexão
Substitua os espaços reservados no arquivo
pod.yaml
da pastaazure-openai-workload-identity
.- Substitua
<YourContainerImage>
pelo nome da imagem que criamos anteriormente. Por exemplo,<MyRegistry>.azurecr.io/sc-demo-openai-identity:latest
. - Substitua
<ServiceAccountCreatedByServiceConnector>
pela conta de serviço criada pelo Conector de Serviço após a criação da conexão. Você pode verificar o nome da conta de serviço no portal do Azure, no painel Conector de serviço. - Substitua
<SecretCreatedByServiceConnector>
pelo segredo criado pelo Conector de Serviço após a criação da conexão. Você pode verificar o nome do segredo no portal do Azure, no painel Conector de Serviço.
- Substitua
Implante o pod no cluster com o comando
kubectl apply
, que cria um pod chamadosc-demo-openai-identity
no namespace padrão do cluster do AKS. Instalekubectl
localmente usando o comando az aks install-cli se ele não estiver instalado.kubectl apply -f pod.yaml
Verifique se a implantação foi bem-sucedida exibindo o pod com
kubectl
.kubectl get pod/sc-demo-openai-identity
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
Próximas etapas
Leia os artigos a seguir para saber mais sobre os conceitos do Conector de Serviço e como ele ajuda o AKS a se conectar aos serviços.