Azure Kubernetes Service (AKS) Fabrikam 无人机送货
这个参考实现展示了在 Microsoft Azure 上构建和运行微服务架构的一系列最佳实践。该内容建立在 AKS 安全基线 之上,后者是 AKS 集群 的推荐起点(基线)基础架构架构。
要快速了解 AKS Fabrikam 无人机送货如何扩展了 AKS 安全基线,请参考下表:
AKS 安全基线 | AKS Fabrikam 无人机送货 | |
---|---|---|
使用 Azure 防火墙限制出口 | ✅ | ✅ |
入口控制器 | ✅ | ✅ |
Microsoft Entra 工作负载身份 | ✅ | ✅ |
资源限制 | ✅ | ✅ |
其他基础设施方面 | ✅ | ✅ |
零信任网络策略 | ❌ | ✅ |
水平 Pod 自动缩放 | ❌ | ✅ |
集群自动缩放 | ❌ | ✅ |
就绪/存活探针 | ❌ | ✅ |
Helm 图表 | ❌ | ✅ |
分布式监控 | ❌ | ✅ |
AKS Fabrikam 无人机送货不仅仅关注工作负载,还通过扩展 AKS 安全基线 来整合基础设施。与组织在尝试基于 AKS 安全基线实施其解决方案时可能遇到的情况类似,这个参考实现谨慎地修改或互换小部件,如使用不同类型的入口控制器或在集群之上部署不同的工作负载。如果您或您的团队处于起步阶段或仅关注基础设施相关方面,建议从 AKS 安全基线 开始。如果您想要更全面的指导来部署更加"有趣"的工作负载,这就是合适的指南。
Azure 架构中心指南
本项目有一系列配套文章,描述了安全 AKS 集群的挑战、设计模式和最佳实践。您可以在 Azure 架构中心找到这些文章:
- 在 Azure 上使用 Kubernetes 设计、构建和运行微服务
- Azure Kubernetes Service (AKS) 上的微服务架构
- Azure Kubernetes Service (AKS) 基线集群
架构
这个架构集成了许多 Azure 服务,以展示具有分布式跟踪、消息传递和存储功能的工作负载。该架构还实现了推荐的原生 Kubernetes 功能,如自动缩放能力、探针、网络策略以及 Helm 图表等其他标准。作为扩展 AKS 安全基线的结果,这个架构也应被视为您的预生产和生产阶段的起点。
这个架构的一个重要区别是它实现了 Azure 应用程序网关入口控制器,而不是像基线中那样使用 Traefik。
在整个参考实现中,您会看到对 Fabrikam 无人机送货应用 的引用。Fabrikam, Inc.(一家虚构公司)正在启动一项无人机送货服务,并做出了在 AKS 安全基线之上实施其解决方案的架构决策,因为它涵盖了他们被要求运营的所有基础设施方面。该公司管理着一支无人机机队。企业在该服务中注册,用户可以请求无人机进行货物取件和送货。当客户安排取件时,后端系统会分配一架无人机并通知用户预计的送货时间。在送货过程中,客户可以通过持续更新的预计到达时间跟踪无人机的位置。
核心架构组件
Azure 平台
- AKS v1.28
- 系统和用户节点池分离
- AKS 管理的 Microsoft Entra ID
- 托管身份
- Azure CNI
- Azure Monitor for containers
- Azure 虚拟网络(中心辐射型)
- Azure 应用程序网关(WAF)
- AKS 管理的内部负载均衡器
- Azure 防火墙
- Azure 服务总线
- Azure CosmosDb
- Azure MongoDb
- Azure Redis 缓存
集群内开源组件
- Flux GitOps Operator
- Azure 应用程序网关入口控制器
- Microsoft Entra 工作负载身份
- Azure KeyVault Secret Store CSI Provider
- Kured
部署参考实现
以下是部署 AKS Fabrikam 无人机送货参考实现所需遵循的步骤。
- 安装并满足先决条件
- 获取面向客户的和 AKS 入口控制器的 TLS 证书
- 规划 Microsoft Entra 集成
- 构建中心辐射型网络
- 部署 AKS 集群和支持服务
- 将集群置于 GitOps 管理之下
- 解决工作负载先决条件
- 配置 AKS 入口控制器与 Azure Key Vault 集成
- 部署工作负载
- 执行端到端部署验证
- 清理所有资源
下一步
这个参考实现有意不涵盖所有场景。如果您正在寻找这里未涉及的其他主题,请访问 AKS 安全基线,了解 AKS 周围涵盖的完整场景列表。
贡献
请参阅我们的贡献者指南。
本项目采用了 Microsoft 开源行为准则。有关更多信息,请参阅行为准则常见问题或联系 opencode@microsoft.com 获取任何其他问题或意见。
来自 Microsoft 模式与实践的 :heart:,Azure 架构中心。