监视和可观测性在维护 AKS 上的 AI 工作负载部署的高性能和低成本方面起着关键作用。 系统和性能指标可见性可能表明底层基础结构的限制,并激励实时调整和优化以减少工作负载中断。 监视还提供对资源利用率的宝贵见解,实现计算资源经济高效的管理,并避免过度预配或预配不足。
AI 工具链操作器 (KAITO) 是 AKS 的托管加载项,可简化 AKS 群集上 AI 模型的部署和操作。 从 KAITO 版本 0.4.4 开始,vLLM 推理运行时默认在 AKS 托管加载项中启用。 vLLM 展示了可用于评估 KAITO 推理部署的关键系统性能、资源使用情况和请求处理 Prometheus 指标。
重要
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
本文介绍如何在 AKS 群集上使用 Azure 托管 Prometheus 和 Azure 托管 Grafana,通过 AI 工具链操作器的加载项(预览版)监控和可视化 vLLM 推理指标。
在您开始之前
- 本文假设你有现有 AKS 群集。 如果没有群集,请使用 Azure CLI、 Azure PowerShell 或 Azure 门户创建群集。
- 安装并配置了 Azure CLI 版本 2.47.0 或更高版本。 运行
az --version
即可查找版本。 如果需要进行安装或升级,请参阅 [安装 Azure CLI][install-azure-cli]。
先决条件
- 已安装并配置 Kubernetes 命令行客户端 kubectl。 有关详细信息,请参阅安装 kubectl。
- 在 AKS 群集上启用 AI 工具链操作器加载项。
- 如果已启用 AI 工具链操作器加载项,请将 AKS 群集更新到最新版本以运行 KAITO v0.4.4 或更高版本。
- 在 AKS 群集上启用 Azure 托管 Prometheus 和 Azure 托管 Grafana。
- 拥有足够权限以在 Azure 订阅中创建和/或更新 Grafana 实例。
部署 KAITO 推理服务
在此示例中,你将收集 Qwen-2.5-coder-7B-instruct 语言模型的指标。 首先在群集上应用以下 KAITO 工作区 CRD:
kubectl apply -f https://raw.githubusercontent.com/Azure/kaito/main/examples/inference/kaito_workspace_qwen_2.5_coder_7b-instruct.yaml
使用
kubectl get
命令跟踪 KAITO 工作区中的实时资源更改。kubectl get workspace workspace-qwen-2-5-coder-7b-instruct -w
注释
跟踪 KAITO 推理服务部署时,请注意,计算机就绪情况可能需要长达 10 分钟,工作区就绪情况最多需要 20 分钟,具体取决于模型的大小。
确认推理服务正在运行,并使用
kubectl get svc
命令获取服务 IP 地址。export SERVICE_IP=$(kubectl get svc workspace-qwen-2-5-coder-7b-instruct -o jsonpath='{.spec.clusterIP}') echo $SERVICE_IP
向 Azure 托管 Prometheus 展示 KAITO 推理指标
Prometheus 指标默认在 KAITO /metrics
终结点处收集。
将以下标签添加到 KAITO 推理服务,以便 Kubernetes
ServiceMonitor
部署检测到它:kubectl label svc workspace-qwen-2-5-coder-7b-instruct App=qwen-2-5-coder
创建
ServiceMonitor
资源,以定义抓取 vLLM Prometheus 指标所需的推理服务终结点和配置。 通过在ServiceMonitor
命名空间中部署以下kube-system
YAML 清单,将这些指标导出到 Azure 托管 Prometheus:cat <<EOF | kubectl apply -n kube-system -f - apiVersion: azmonitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: prometheus-kaito-monitor spec: selector: matchLabels: App: qwen-2-5-coder endpoints: - port: http interval: 30s path: /metrics scheme: http EOF
创建
ServiceMonitor
后,应会看到以下输出:servicemonitor.azmonitoring.coreos.com/prometheus-kaito-monitor created
使用
ServiceMonitor
命令确认kubectl get
部署是否成功运行。kubectl get servicemonitor prometheus-kaito-monitor -n kube-system
在 Azure Monitor 工作区中的“托管 Prometheus”下导航到“Prometheus 资源管理器”页,确认已在 Azure 托管 Prometheus 中成功收集 vLLM 指标。
选择“网格”选项卡,并确认存在与名为 的作业关联的指标项。
workspace-qwen-2-5-coder-7b-instruct
注释
此项的
up
值应为 1,指示 Prometheus 指标已成功从 AI 推理服务终结点中抓取。
可视化 Azure 托管 Grafana 中的 KAITO 推理指标
vLLM 项目提供名为 grafana.json 的 Grafana 仪表板配置,用于推理工作负载监视。 导航到此页面底部并复制
grafana.json
文件的全部内容。按照这些步骤将 Grafana 配置导入 Azure 托管 Grafana 中的新仪表板。
导航到“托管 Grafana”终结点,查看可用的仪表板。 然后选择名为
vLLM
的新仪表板。要开始收集所选模型部署的数据,请确认 Grafana 仪表板左上角显示的
datasource
是为此示例创建的 Azure 托管 Prometheus 实例。将 KAITO 工作区中定义的推理预设名称复制到 Grafana 仪表板中的
model_name
字段。 在此示例中,模型名称为 qwen2.5-coder-7b-instruct。片刻后,KAITO 推理服务的指标将在 vLLM Grafana 仪表板中填充。
注释
这些推理指标的值将保持 0,直到请求提交到模型推理服务器。