你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Linux 应用服务应用(仅代码应用和自定义容器)中,sidecar 是一个辅助容器,可在与主应用容器相同的环境中运行。 Sidecars 可以提供支持服务(例如遥测、缓存或 AI 推理),并作为应用服务应用的一部分进行管理。
为什么在应用服务上使用挎斗?
使用 Sidecars 可以添加新功能,例如监视、缓存、AI 或自定义逻辑,而无需修改主应用程序代码(仅代码应用)或主容器(在自定义容器中)。 优点包括:
- 关注点分离: 独立于主应用添加或更新服务。
- 扩展: 集成预生成或自定义扩展(例如 OpenTelemetry、Redis、Datadog、Phi-3/4 AI 模型)。
- 操作灵活性:挎斗与应用一起管理、升级或扩展。
- 迁移路径: 从 Docker Compose 或多容器解决方案迁移到托管的可缩放平台(请参阅 将 Docker Compose 应用迁移到 Azure 应用服务中的 sidecars)。
挎斗如何在应用服务中工作?
-
容器角色: 每个已启用 sidecar 的应用都有一个主容器(
isMain: true)和最多 9 个 sidecar 容器(isMain: false)。 在容器配置中,isMain: true指定主应用容器。 所有其他的必须具有isMain: false。 -
联网: 应用中的所有容器共享相同的网络命名空间,并通过该
localhost命名空间进行通信。 无需服务名称解析,因此请使用localhost:<port>。 每个容器必须侦听唯一端口。 外部 HTTP 流量仅支持端口 80 和 8080。 对于内部通信,请使用任何可用的唯一端口。 - 生命周期:挎斗与主应用容器一起启动、停止和缩放。 当应用横向扩展或缩减时,所有关联的挎斗容器都会自动遵循相同的生命周期。
- 配置: 可以通过 Azure 门户、ARM 模板或 CLI 配置 Sidecars。 指定每个容器的容器映像、环境变量和其他设置。 应用设置在所有容器之间共享。 还可以设置特定于容器的环境变量。
- 卷装载:每个容器可以有自己的卷装载。
- 认证: Sidecars 可以从公共或专用注册表(包括 Azure 容器注册表)拉取映像。 对私有注册表使用托管标识或管理员凭据。
挎斗的类型
- 自定义挎斗:提供的任何容器映像,例如 OpenTelemetry Collector、NGINX 或你自己的微服务。
-
预生成扩展: 正式支持的容器用于:
- AI(Phi-3、Phi-4): 将本地 SLM(小型语言模型)推理添加到应用。
- Redis: 添加本地 Redis 缓存以快速访问数据。
- Datadog: 整合 Datadog 监控和可观测性。
- 随着 Azure 目录的扩展,将会有更多的产品和服务。
常见问题解答
是否可以在现有的 Linux 应用中使用 sidecar?
有关现有的仅限 Linux 代码的应用(内置容器),请参阅 教程:在 Azure 应用服务中为 Linux 应用配置 sidecar 容器。
有关现有自定义容器应用,请参阅 为 Linux 自定义容器启用 sidecar 支持。
如何监视挎斗和排查挎斗问题?
在 Azure 门户中使用 Azure Monitor、Log Analytics 和 “诊断和解决” 窗格。 应用服务日志流中提供了来自所有容器的日志。
是否有任何限制?
尚不支持应用服务环境(ASE)和国家云。 查看最新的 Azure 文档以获取更新。
更多资源
- 交互式指南:Azure 应用服务中的挎斗
- 教程:在 Azure 应用服务中为 Linux 应用配置 sidecar 容器
- 教程:在 Azure 应用服务中为自定义容器配置 Sidecar 容器
- 在 Azure 应用服务中配置 Sidecars
- 将现有容器化应用迁移到 Azure 应用服务中的 Sidecar 模型
- 教程:在应用服务中使用 Phi-4 sidecar 扩展运行聊天机器人 (ASP.NET Core)
- 教程:使用 Phi-4 伴随扩展在应用服务中运行聊天机器人 (Spring Boot)
- 教程:使用 Phi-4 sidecar 扩展在应用服务中运行聊天机器人 (FastAPI)
- 教程:使用 Phi-4 sidecar 扩展在应用服务中运行聊天机器人(Express.js)