你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:使用连接字符串在 AKS 中连接 Azure OpenAI 服务(预览)
本教程介绍如何在 Azure Kubernetes (AKS) 群集中创建 Pod,该群集使用连接字符串与 Azure OpenAI 服务通信。 你将完成以下任务:
- 使用
gpt-4
模型部署创建 AKS 群集和 Azure OpenAI 服务。 - 使用服务连接器在 AKS 群集与 Azure OpenAI 之间创建连接。
- 克隆一个示例应用程序,该应用程序将在 AKS 集群中与 OpenAI 服务进行通信。
- 将应用程序部署到 AKS 群集中的 Pod 并测试连接。
- 清理资源。
警告
Microsoft 建议使用最安全的可用身份验证流。 本过程中介绍的身份验证流程需要非常高的信任度,并携带其他流中不存在的风险。 请仅在无法使用其他更安全的流(例如托管标识)时才使用此流。 请参阅使用托管标识的教程。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
-
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Azure Cloud Shell 中的 Bash 快速入门。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
- Docker 和 kubectl,用于管理容器映像和 Kubernetes 资源。
- 基本了解容器和 AKS。 从为 AKS 准备应用程序开始。
- 具备访问权限,能够创建 Azure OpenAI 服务资源和部署模型。
创建 Azure 资源
为本教程创建资源组。
az group create \ --name MyResourceGroup \ --location eastus
使用以下命令或参考 AKS 快速入门创建 AKS 群集。 我们将在此群集中创建服务连接、Pod 定义和部署示例应用程序。
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 \ --generate-ssh-keys
使用 az aks get-credentials 命令连接到群集。
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
使用 az cognitiveservices account create 命令创建 Azure OpenAI 服务资源。 (可选)请参阅本教程以获取更多说明。 Azure OpenAI 服务是我们将连接到 AKS 群集的目标服务。
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
使用 az cognitiveservices deployment create 命令来部署模型。 该模型在示例应用程序中用于测试连接。
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
使用 az acr create 命令或参考本教程创建 Azure 容器注册表 (ACR) 资源。 注册表托管示例应用程序的容器映像,该映像将由 AKS Pod 定义使用。
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku Standard
使用 az acr update 命令启用匿名拉取,以便 AKS 群集使用注册表中的映像。
az acr update \ --resource-group MyResourceGroup \ --name myregistry \ --anonymous-pull-enabled
使用服务连接器在 AKS 中创建服务连接(预览版)
通过 Azure 门户或 Azure CLI 在 AKS 群集与 Azure OpenAI 服务之间创建服务连接。
请参阅 AKS 服务连接快速入门,获取创建新连接的说明,并参考下表中的示例填写设置。 将其他所有设置保留为其默认值。
“基本信息”选项卡:
设置 示例值 说明 Kubernetes 命名空间 default Kubernetes 命名空间。 服务类型 OpenAI 服务 目标服务类型。 连接名称 openai_conn 使用服务连接器提供的连接名称或选择自己的连接名称。 订阅 <MySubscription>
用于 Azure OpenAI 服务的订阅。 OpenAI <MyOpenAIService>
要连接到的目标 OpenAI 服务。 客户端类型 Python 用于连接到目标服务的代码语言或框架。 “身份验证”选项卡:
身份验证设置 示例值 说明 身份验证类型 连接字符串 服务连接器身份验证类型。
创建连接后,可以在“服务连接器”窗格中查看其详细信息。
克隆示例应用程序
克隆示例存储库:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
转到 Azure OpenAI 的存储库示例文件夹:
cd serviceconnector-aks-samples/azure-openai-connection-string
将
app.py
文件中的<MyModel>
占位符替换为部署的模型名称。
生成并推送容器映像
使用 Azure CLI az acr build 命令生成映像并将其推送到容器注册表。
az acr build --registry <MyRegistry> --image sc-demo-openai-connstr:latest ./
使用 az acr repository list 命令查看容器注册表中的映像。
az acr repository list --name <MyRegistry> --output table
运行应用程序并测试连接
替换
azure-openai-connection-string
文件夹中pod.yaml
文件中的占位符。- 将
<YourContainerImage>
替换为先前生成的映像的名称。 例如:<MyRegistry>.azurecr.io/sc-demo-openai-connstr:latest
。 - 将
<SecretCreatedByServiceConnector>
替换为由服务连接器创建的机密。 可以在 Azure 门户的“服务连接器”窗格中查看机密名称。
- 将
使用
kubectl apply
命令将 Pod 部署到群集。 使用 az aks install-cli 命令在本地安装kubectl
(如果尚未安装)。 该命令在 AKS 群集的默认命名空间中创建名为sc-demo-openai-connstr
的 Pod。kubectl apply -f pod.yaml
通过使用
kubectl
查看 Pod 来检查部署是否成功。kubectl get pod/sc-demo-openai-connstr
通过使用
kubectl
查看日志来检查连接是否正常运行。kubectl logs pod/sc-demo-openai-connstr
清理资源
如果不再需要这些资源,请通过删除资源组来清理本教程中创建的 Azure 资源。
az group delete \
--resource-group MyResourceGroup
后续步骤
阅读以下文章,详细了解服务连接器的概念以及它如何帮助 AKS 连接到 Azure 服务。