项目是用于在 AKS 桌面中管理应用程序的主要单元。 项目将相关的 Kubernetes 资源(例如部署、服务和配置)分组到单个逻辑单元中。 本文概述了 AKS 桌面中的项目,包括其优势、功能以及它们与传统 Kubernetes 命名空间的比较方式。
为什么在 AKS 桌面中使用项目?
通过项目,可以更轻松地:
- 了解应用程序边界。
- 使用 RBAC 管理访问权限。
- 在一个位置查看所有资源。
- 归属 Kubernetes 和 Azure 资源的所有权,并管理成本。
项目的命名空间标记和访问权限
在 AKS 桌面中创建项目时,它将与 Kubernetes 命名空间相关联。 AKS 桌面在命名空间上使用 Kubernetes 标签来确定哪些标签在 UI 中显示为项目。 有权访问关联命名空间的任何用户都可以查看项目,因此命名空间访问和标记决定了哪些用户可以查看每个项目。
可以使用下列选项之一在 AKS 桌面中创建项目:
- 使用现有命名空间:此选项允许将现有 Kubernetes 命名空间作为项目导入 AKS 桌面。 如果你已经部署了应用程序,并且想要通过 AKS 桌面管理它们,而不会中断,这非常有用。 导入命名空间时,AKS 桌面会向该命名空间添加 Kubernetes 标签并将其显示为项目。
- 创建新的命名空间:此选项将创建新的标准 Kubernetes 命名空间,该命名空间提供用于管理应用程序资源、其属性和映射的基本功能。 Headlamp 项目也支持此选项。
- 创建新的 AKS 托管命名空间:默认情况下,此增强型项目类型直接链接到 AKS 托管命名空间,这是在逻辑上隔离群集中的工作负荷和团队的方法。 此功能使管理员能够在命名空间级别强制实施资源配额、应用网络策略和管理访问控制。 托管命名空间将 Azure 资源和 Kubernetes 资源组合在一起,这对于所有权归属、成本管理和标识属于应用程序的所有内容非常有用。 项目可以包含一个或多个应用程序,在大多数示例中,我们只显示一个应用以保持简单。
AKS 桌面显示每个命名空间是否已是项目的一部分。 导入命名空间时,AKS 桌面会向该命名空间添加 Kubernetes 标签并将其显示为项目。
“项目概述”屏幕
通过 AKS 桌面将应用程序部署到项目后,即可访问 “项目概述 ”屏幕。 “项目概述”屏幕是您的集中控制中心,让您能可视化地查看项目情况,获取见解,并直接采取行动来管理、监控和优化您的应用。
下表描述了“项目概述”屏幕中提供的主要功能:
| 功能 | Description |
|---|---|
| 资源 | 查看项目中部署的所有 Kubernetes 资源,包括工作负载和网络配置。 |
| Access | 授予或删除对项目的访问权限。 |
| 地图 | 可视化 Project 中的 Kubernetes 资源如何交互,显示部署和服务之间的数据流。 |
| 信息 | 查看和编辑项目资源配额、网络策略。 |
| 部署 | 请参阅 GitHub Pipelines 预览版创建的管道。 |
| 日志 | 访问应用程序的流式处理日志。 |
| Metrics | 查看应用程序的详细指标,例如 CPU、内存和资源使用情况。 |
| 缩放 | 使用水平 Pod 自动缩放器(HPA)或手动设置来配置应用程序缩放。 |
| 见解 | 运行基于 eBPF 的诊断(进程、跟踪传输控制协议(TCP)、跟踪 DNS),以排查应用程序问题,而无需更改代码或 Pod 重启。 请参阅 使用 Insights 排查应用程序问题。 |
项目与 Kubernetes 命名空间
下表将 AKS 桌面中的项目与 Kubernetes 命名空间进行比较,这是对 Kubernetes 中的资源进行分组的更传统的方法:
| 概念 | AKS 桌面项目 | Kubernetes 命名空间 |
|---|---|---|
| Purpose | 应用程序级分组 | 资源隔离 |
| 抽象级别 | 高 (开发人员友好) | 低级(以基础设施为中心的) |
| 映射 | 通常为 1:1 | 原生 Kubernetes 概念 |