你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 架构良好的框架评审 - Azure Kubernetes 服务 (AKS)

本文提供 Azure Kubernetes 服务 (AKS) 的体系结构最佳做法。 本指南基于卓越体系结构的五大支柱:

  • 可靠性
  • 安全性
  • 成本优化
  • 卓越运营
  • 性能效率

我们假设你了解系统设计原则,具有Azure Kubernetes 服务的实践知识,并精通其功能。 有关详细信息,请参阅 Azure Kubernetes 服务

先决条件

了解 Well-Architected 框架支柱有助于生成高质量、稳定且高效的云体系结构。 建议使用 Azure Well-Architected 框架评审评估来查看 工作负荷。

对于上下文,请考虑查看在其设计中反映这些注意事项的参考体系结构。 建议从 Azure Kubernetes 服务 上的 Azure Kubernetes 服务 (AKS) 群集微服务体系结构的基线体系结构开始。 另请参阅 AKS 登陆区域加速器,该加速器提供体系结构方法和参考实现,用于为可缩放的 Azure Kubernetes 服务 (AKS) 群集准备登陆区域订阅。

可靠性

在云端,我们承认故障总会发生。 我们的目标不是试图防止各种故障,而是最大程度地减轻单个组件故障造成的影响。 使用以下信息将失败的实例降到最低。

与 Azure Kubernetes 服务 讨论可靠性时,请务必区分群集可靠性和工作负载可靠性。 群集可靠性是群集管理员与其资源提供程序之间的共同责任,而工作负载可靠性是开发人员的领域。 Azure Kubernetes 服务针对这两个角色都提供了注意事项和建议。

在下面的设计清单和建议列表中,我们进行了标注,以指示每个选项是否适用于群集体系结构和/或工作负荷体系结构。

设计清单

  • 群集体系结构: 对于关键工作负载,请为 AKS 群集使用 可用性区域
  • 群集体系结构: 规划 IP 地址空间以确保群集能够可靠地缩放,包括处理多群集拓扑中的故障转移流量。
  • 群集体系结构: 启用 容器见解 以监视群集,并为影响可靠性的事件配置警报。
  • 工作负载体系结构: 确保构建工作负载以支持水平缩放并报告应用程序就绪情况和运行状况。
  • 群集和工作负载体系结构: 确保工作负荷在用户节点池上运行,并选择正确的 SKU 大小。 至少为用户节点池包含两个节点,为系统节点池包含三个节点。
  • 群集体系结构: 使用 AKS 运行时间 SLA 来满足生产工作负荷的可用性目标。

AKS 配置建议

浏览以下建议表,以优化 AKS 配置的可靠性。

建议 好处
群集和工作负载体系结构: 使用节点选择器和相关性控制 Pod 计划。 可让 Kubernetes 计划程序以逻辑方式按节点中的硬件隔离工作负荷。 与 容忍不同,没有匹配节点选择器的 Pod 可以在标记的节点上进行计划,这允许使用节点上未使用的资源,但优先考虑定义匹配节点选择器的 Pod。 使用节点相关性可提供更高的灵活性,使你可以定义在 Pod 无法与节点匹配时所发生的情况。
群集体系结构: 确保根据网络要求和群集大小调整正确选择网络插件。 特定方案(例如基于 Windows 的节点池、特定网络要求和 Kubernetes 网络策略)需要使用 Azure CNI。 有关详细信息 ,请参阅 Kubenet 与 Azure CNI
群集和工作负载体系结构: 对生产级群集使用 AKS 运行时间 SLA AKS 运行时间 SLA 保证:
- 使用 Azure 可用性区域的 AKS 群集的 Kubernetes API 服务器终结点的可用性为 99.95%,或
- 不使用 Azure 可用性区域的 AKS 群集的可用性为 99.9%
群集和工作负载体系结构: 使用 容器见解配置群集监视。 容器见解有助于通过指标 API 监视 Kubernetes 中提供的控制器、节点和容器的运行状况和性能。 与 Prometheus 集成可以收集应用程序和工作负载指标。
群集体系结构: 通过跨物理上独立的数据中心分布 AKS 代理节点,使用 可用性区域 最大限度地提高 Azure 区域中的复原能力。 通过将节点池分散到多个区域,即使另一个区域发生故障,一个节点池中的节点也会继续运行。 如果存在共置性要求,则可以使用基于 VMSS 的常规 AKS 部署到单个区域或 邻近放置组 来最大程度地减少节点间延迟。
群集体系结构: 通过部署跨不同 Azure 区域部署的 AKS 群集来采用 多区域策略 ,以最大程度地提高可用性并提供业务连续性。 面向 Internet 的工作负载应利用 Azure Front DoorAzure 流量管理器 跨 AKS 群集全局路由流量。
群集和工作负载体系结构:在应用程序部署清单中定义 Pod 资源请求和限制,并通过Azure Policy强制执行。 容器 CPU 和内存资源限制是防止 Kubernetes 群集中的资源耗尽所必需的。
群集和工作负载体系结构: 使系统节点池与应用程序工作负载隔离。 系统节点池需要至少 2 个 vCPU 和 4 GB 内存的 VM SKU,但建议使用 4 个 vCPU 或更多。 请参阅系统和用户节点池,了解详细要求。
群集和工作负载体系结构: 根据特定要求将应用程序分隔到专用节点池。 应用程序可能共享相同的配置,并且需要支持 GPU 的 VM、CPU 或内存优化 VM,或者能够缩放到零。 避免使用大量节点池,以减少额外的管理开销。
群集体系结构: 对运行多个并发出站连接的工作负载的群集使用 NAT 网关。 为了避免高并发出站流量Azure 负载均衡器限制的可靠性问题,我们改用 NAT 网关来支持大规模可靠的出口流量。

有关更多建议,请参阅 可靠性支柱原则

Azure Policy

Azure Kubernetes 服务提供各种内置 Azure 策略,适用于 Azure 资源(例如典型的 Azure 策略),以及使用适用于 Kubernetes 的 Azure Policy 加载项(也在群集中)。 有许多策略,此处汇总了与此支柱相关的关键策略。 有关更详细的视图,请参阅 Kubernetes 的内置策略定义

群集和工作负载体系结构

除了内置Azure Policy定义之外,还可以为 AKS 资源和 Kubernetes 的 Azure Policy 加载项创建自定义策略。 这允许你在群集和工作负载体系结构中添加要强制实施的其他可靠性约束。

安全性

安全性是任何体系结构最为重视的方面之一。 若要了解 AKS 如何增强应用程序工作负载的安全性,建议查看 安全设计原则。 如果需要将Azure Kubernetes 服务群集设计为运行符合支付卡行业数据安全标准 (PCI-DSS 3.2.1) 的法规要求的敏感工作负载,请查看 PCI-DSS 3.2.1 的 AKS 管制群集

若要了解 DoD 影响级别 5 (IL5) AKS 的支持和要求,请查看Azure 政府 IL5 隔离要求

与 Azure Kubernetes 服务 讨论安全性时,请务必区分群集安全性和工作负载安全性。 群集安全性是群集管理员及其资源提供程序之间的共同责任,而工作负载安全性是开发人员的域。 Azure Kubernetes 服务针对这两个角色都提供了注意事项和建议。

在下面的设计清单和建议列表中,我们进行了标注,以指示每个选项是否适用于群集体系结构和/或工作负荷体系结构。

设计清单

  • 群集体系结构: 使用 托管标识 来避免管理和轮换服务原则。
  • 群集体系结构:将 Kubernetes 基于角色的访问控制 (RBAC) 与Microsoft Entra ID配合使用,实现最小特权访问,并最大程度地减少授予管理员权限以保护配置和机密访问权限。
  • 群集体系结构:将Microsoft Defender用于容器和 Azure Sentinel,以检测并快速响应群集及其上运行的工作负载中的威胁。
  • 群集体系结构: 部署专用 AKS 群集,以确保流向 API 服务器的群集管理流量保留在专用网络上。 或者对非专用群集使用 API 服务器允许列表。
  • 工作负载体系结构:使用Web 应用程序防火墙保护 HTTP (S) 流量。
  • 工作负载体系结构: 确保使用容器感知扫描强化 CI/CID 管道。

建议

浏览以下建议表,以优化 AKS 配置的安全性。

建议 好处
群集体系结构:使用Microsoft Entra集成。 使用 Microsoft Entra ID集中标识管理组件。 访问 AKS 群集时,用户帐户或组状态的任何更改会自动更新。 Kubernetes 群集的开发人员和应用程序所有者需要访问不同的资源。
群集体系结构:使用 Microsoft Entra ID 进行身份验证以Azure 容器注册表。 AKS 和 Microsoft Entra ID 允许使用 Azure 容器注册表 进行身份验证,imagePullSecrets而无需使用机密。 有关详细信息,请查看使用来自 Azure Kubernetes 服务 的Azure 容器注册表进行身份验证
群集体系结构: 使用 专用 AKS 群集保护到 API 服务器的网络流量。 默认情况下,节点池与 API 服务器之间的网络流量通过 Microsoft 主干网络;通过使用专用群集,可以确保发到 API 服务器的网络流量仅保留在专用网络上。
群集体系结构: 对于非专用 AKS 群集,请使用 API 服务器授权的 IP 范围。 使用公共群集时,仍可以使用授权的 IP 范围功能来限制可以到达群集 API 服务器的流量。 包括部署生成代理的公共 IP、操作管理和节点池的出口点 (等源,例如 Azure 防火墙) 。
群集体系结构:使用 Microsoft Entra RBAC 保护 API 服务器。 要保护群集的安全,保护对 Kubernetes API 服务器的访问是你能够做的最重要的事情之一。 将 Kubernetes 基于角色的访问控制 (RBAC) 与 Microsoft Entra ID 集成,以控制对 API 服务器的访问。 禁用本地帐户以使用基于Microsoft Entra ID的标识强制实施所有群集访问。
群集体系结构: 使用 Azure 网络策略 或 Calico。 保护和控制群集中 Pod 之间的网络流量。
群集体系结构:使用 Azure Policy 保护群集和 Pod。 Azure Policy有助于以集中、一致的方式对群集应用大规模强制措施和安全措施。 它还可以控制向哪些函数授予 Pod,以及是否针对公司策略运行任何函数。
群集体系结构: 保护容器对资源的访问。 限制对容器可以执行的操作的访问。 提供最少权限数量,并避免使用根或特权提升。
工作负载体系结构:使用Web 应用程序防火墙来保护 HTTP (S) 流量。 若要扫描传入流量中的潜在攻击,请在 Azure 应用程序网关 或 Azure Front Door 上使用 Web 应用程序防火墙(例如 Azure Web 应用程序防火墙 (WAF) )。
群集体系结构: 控制群集出口流量。 确保群集的出站流量通过网络安全点(例如Azure 防火墙HTTP 代理)。
群集体系结构:将开源Microsoft Entra Workload ID机密存储 CSI 驱动程序与 Azure 密钥保管库配合使用。 使用强加密保护和轮换 Azure 密钥保管库中的机密、证书和连接字符串。 提供访问审核日志,并将核心机密保存在部署管道外。
群集体系结构:对容器使用 Microsoft Defender 监视和维护群集、容器及其应用程序的安全性。

有关更多建议,请参阅 安全支柱的原则

Azure 顾问有助于确保和改进 Azure Kubernetes 服务。 它针对以下策略部分中列出的项目的子集(例如未配置 RBAC 的群集、缺少Microsoft Defender配置、对 API 服务器的不受限制的网络访问)提出建议。 同样,它会为某些 Pod 安全计划项提供工作负载建议。 查看 建议

策略定义

Azure Policy提供各种适用于 Azure 资源和 AKS 的内置策略定义,例如标准策略定义,并在群集中使用适用于 Kubernetes 的 Azure Policy 加载项。 许多 Azure 资源策略既包括 审核/拒绝,也有 部署(如果不存在) 变体。

有许多策略,此处汇总了与此支柱相关的关键策略。 有关更详细的视图,请参阅 Kubernetes 的内置策略定义

群集体系结构

  • 适用于基于云的策略的Microsoft Defender
  • 身份验证模式和配置策略 (Microsoft Entra ID、RBAC、禁用本地身份验证)
  • API 服务器网络访问策略,包括专用群集

群集和工作负载体系结构

  • 基于 Linux 的 Kubernetes 群集 Pod 安全计划工作负载
  • 包括 Pod 和容器功能策略,例如 AppArmor、sysctl、安全上限、SELinux、seccomp、特权容器、自动装载群集 API 凭据
  • 装载、卷驱动程序和文件系统策略
  • Pod/容器网络策略,例如主机网络、端口、允许的外部 IP、HTTP 和内部负载均衡器

Azure Kubernetes 服务部署通常还对 Helm 图表和容器映像使用Azure 容器注册表。 Azure 容器注册表还支持各种跨网络限制、访问控制和云Microsoft Defender的 Azure 策略,这是安全 AKS 体系结构的补充。

除了内置策略外,还可以为 AKS 资源和 Kubernetes 的 Azure Policy 加载项创建自定义策略。 这允许你在群集和工作负载体系结构中添加要强制实施的其他安全约束。

有关更多建议,请参阅 AKS 安全概念 ,并根据 CIS Kubernetes 基准评估安全强化建议。

成本优化

成本优化涉及了解各种配置选项和建议的最佳做法,以减少不必要的支出和提高运营效率。 在按照本文中的指南操作之前,建议先查看以下资源:

在讨论使用 Azure Kubernetes 服务优化成本时,请务必区分群集资源的成本工作负载资源的成本。 群集资源是群集管理员及其资源提供程序的共同责任,而工作负载资源则属于开发人员的范畴。 Azure Kubernetes 服务针对这两个角色都提供了注意事项和建议。

设计清单和建议列表中,标注用于指示每个选项是否适用于群集体系结构和/或工作负载体系结构。

对于群集成本优化,请转到 Azure 定价计算器,并从可用产品中选择Azure Kubernetes 服务。 可以在计算器中测试不同的配置和付款计划。

设计清单

  • 群集体系结构:在需要长期容量的每个节点池和预留实例上使用适当的 VM SKU。
  • 群集和工作负载体系结构:使用适当的托管磁盘层和大小。
  • 群集体系结构:查看性能指标(首先查看 CPU、内存、存储和网络),按群集、节点和命名空间确定成本优化机会。
  • 群集和工作负载体系结构: 当工作负荷不太活跃时,使用自动缩放程序进行缩放。

建议

浏览以下建议表,优化 AKS 配置以降低成本。

建议 好处
群集和工作负载体系结构: 使 SKU 选择和托管磁盘大小与工作负载要求保持一致。 将所选内容与工作负载需求相匹配可确保无需为不需要的资源付费。
群集体系结构: 选择正确的虚拟机实例类型。 选择正确的虚拟机实例类型至关重要,因为它直接影响在 AKS 上运行应用程序的成本。 在没有适当利用的情况下选择高性能实例可能会导致浪费开支,而选择功能强大的实例可能会导致性能问题并增加停机时间。 若要确定正确的虚拟机实例类型,请考虑工作负载特征、资源要求和可用性需求。
群集体系结构:根据 Arm 体系结构选择虚拟机 AKS 支持在群集中创建 ARM64 Ubuntu 代理节点,以及混合使用 Intel 和 ARM 体系结构节点,从而以更低的成本提高性能。
群集体系结构:选择“Azure 现成虚拟机”。 与) 即用即付价格相比,现成 VM 允许利用未使用的 Azure 容量, (高达 90% 的大幅折扣。 如果 Azure 需要恢复容量,Azure 基础结构会逐出现成节点。
群集体系结构: 选择相应的区域。 由于许多因素,资源成本在 Azure 中因区域而异。 评估成本、延迟和合规性要求,确保以经济高效的方式运行工作负载,并且不会影响最终用户或产生额外的网络费用。
工作负载体系结构: 维护小型优化映像。 简化映像有助于降低成本,因为新节点需要下载这些映像。 以允许容器尽快启动的方式生成映像,以帮助避免应用程序启动时用户请求失败或超时,这可能会导致过度预配。
群集体系结构: 启用 群集自动缩放程序 以自动减少代理节点数,以响应多余的资源容量。 通过自动缩减 AKS 群集中的节点数,可以在需求较低时运行高效群集,并在需求返回时纵向扩展。
群集体系结构: 启用 节点自动预配 以自动选择 VM SKU。 节点自动预配简化了 SKU 选择过程,并根据挂起的 Pod 资源要求决定以最高效、最经济高效的方式运行工作负载的最佳 VM 配置。
工作负载体系结构: 使用 水平 Pod 自动缩放程序 根据 CPU 使用率或其他支持群集横向缩减操作的选定指标调整部署中的 Pod 数。
工作负载体系结构: 使用 Vertical Pod 自动缩放程序 (预览) 。 将 Pod 权限化,并根据历史使用情况动态设置 请求和限制
工作负载体系结构: 使用 Kubernetes 事件驱动的自动缩放 (KEDA) 。 根据正在处理的事件数进行缩放。 从包含 50 多个 KEDA 缩放器的丰富目录中选择。
群集和工作负载体系结构: 采用云财务规则和文化实践来推动云使用情况的所有权。 启用成本优化的基础是成本节省群集的分布。 (FinOps) 的财务运营方法 通常用于帮助组织降低云成本。 这是一种涉及财务、运营和工程团队之间协作的做法,以推动成本节约目标的一致性,并为云成本带来透明度。
群集体系结构: 注册 Azure 预留Azure 节省计划 如果正确规划了容量,则工作负荷是可预测的且存在较长时间,请注册 Azure 预留节省计划 以进一步降低资源成本。
群集体系结构: 使用 容器见解配置群集监视。 容器见解有助于提供有关群集空闲和未分配资源的可操作见解。 容器见解还支持收集 Prometheus 指标并与 Azure 托管 Grafana 集成,以获取应用程序和基础结构的整体视图。
群集体系结构: 配置 AKS 成本分析加载项 成本分析群集扩展使你能够深入了解与群集或命名空间中各种 Kubernetes 资源相关的成本。

有关更多建议,请参阅成本优化支柱的原则优化Azure Kubernetes 服务中的成本

策略定义

虽然没有与成本优化相关的内置策略,但可以为 AKS 资源和 Kubernetes 的 Azure Policy 加载项创建自定义策略。 这样,就可以添加希望在群集和工作负载体系结构中强制实施的其他成本优化约束。

云效率

使工作负载更具 可持续性和云效率,需要围绕 成本优化减少碳排放优化能源消耗进行综合努力。 优化应用程序成本是使工作负载更具可持续性的第一步。

了解如何构建可持续且高效的 AKS 工作负载,请参阅 Azure Kubernetes 服务 (AKS) 中的可持续软件工程原则

卓越运营

监视和诊断至关重要。 不仅可以衡量性能统计信息,还可以使用指标快速排查和修正问题。 建议查看 卓越运营设计原则第 2 天操作指南

在与 Azure Kubernetes 服务 讨论卓越运营时,必须区分群集卓越运营工作负载卓越运营。 群集操作是群集管理员与其资源提供程序之间的共同责任,而工作负载操作是开发人员的域。 Azure Kubernetes 服务针对这两个角色都提供了注意事项和建议。

在下面的 设计清单 和建议 列表中 ,标注用于指示每个选项是否适用于群集体系结构和/或工作负载体系结构。

设计清单

  • 群集体系结构: 使用 Bicep、Terraform 或其他基于模板的部署。 确保所有部署都是可重复的、可跟踪的,并且存储在源代码存储库中。
  • 群集体系结构: 生成自动化过程,以确保群集通过必要的群集范围配置和部署启动。 这通常使用 GitOps 执行。
  • 工作负载体系结构: 在软件开发生命周期内对工作负载使用可重复的自动化部署过程。
  • 群集体系结构:启用诊断设置以确保记录控制平面或核心 API 服务器交互。
  • 群集和工作负载体系结构:启用容器见解以收集指标、日志和诊断,以监视群集及其上运行的工作负载的可用性和性能。
  • 工作负载体系结构: 工作负荷应设计为发出可以收集的遥测数据,其中还应包括动态线和就绪状态。
  • 群集和工作负载体系结构: 使用面向 Kubernetes 的混沌工程实践来确定应用程序或平台可靠性问题。
  • 工作负载体系结构: 优化工作负载,以在容器中高效操作和部署。
  • 群集和工作负载体系结构:使用 Azure Policy 强制实施群集和工作负载治理。

建议

浏览以下建议表,以针对操作优化 AKS 配置。

建议 好处
群集和工作负载体系结构: 查看 AKS 最佳做法 文档。 若要在 AKS 中成功生成和运行应用程序,需要了解和实现一些关键注意事项。 相关方面包括多租户和计划程序功能、群集和 Pod 安全性,或者业务连续性和灾难恢复。
群集和工作负载体系结构: 查看 Azure Chaos Studio Azure Chaos Studio 可帮助模拟故障并触发灾难恢复情况。
群集和工作负载体系结构: 使用 容器见解配置群集监视。 容器见解通过指标 API 和容器日志从 Kubernetes 中可用的控制器、节点和容器收集内存和处理器指标,从而帮助监视容器的性能。
工作负载体系结构: 使用 Azure Monitor 监视应用程序性能。 配置 Application Insights ,以便对 AKS 群集中运行的应用程序进行基于代码的监视。
工作负载体系结构: 使用容器见解配置 Prometheus 指标的抓取。 容器见解是 Azure Monitor 的一部分,提供无缝载入体验来收集 Prometheus 指标。 有关详细信息 ,请参阅配置 Prometheus 指标的抓取
群集体系结构: 通过部署跨不同 Azure 区域部署的 AKS 群集,采用 多区域策略 ,最大程度地提高可用性并提供业务连续性。 面向 Internet 的工作负载应利用 Azure Front DoorAzure 流量管理器 跨 AKS 群集全局路由流量。
群集体系结构:使用 Azure Policy 操作群集和 Pod 配置标准。 Azure Policy有助于以集中、一致的方式对群集应用大规模强制措施和安全措施。 它还可以控制向哪些函数授予 Pod,以及是否针对公司策略运行任何函数。
工作负载体系结构: 在发布工程过程中使用平台功能。 Kubernetes 和入口控制器支持许多高级部署模式,以包含在发布工程过程中。 考虑蓝绿部署或金丝雀发布等模式。
群集和工作负载体系结构: 对于任务关键型工作负载,请使用标记级蓝/绿部署。 自动执行任务关键型设计领域,包括 部署和测试

有关更多建议,请参阅 卓越运营支柱的原则

Azure 顾问还会针对以下策略部分中列出的项目子集(例如不支持的 AKS 版本和未配置的诊断设置)提出建议。 同样,它会围绕使用默认命名空间提出工作负载建议。

策略定义

Azure Policy提供各种适用于 Azure 资源和 AKS 的内置策略定义,例如标准策略定义,并在群集中使用适用于 Kubernetes 的 Azure Policy 加载项。 许多 Azure 资源策略既包括 审核/拒绝,也有 部署(如果不存在) 变体。

有许多策略,此处汇总了与此支柱相关的关键策略。 有关更详细的视图,请参阅 Kubernetes 的内置策略定义

群集体系结构

  • 适用于 Kubernetes 的Azure Policy加载项
  • GitOps 配置策略
  • 诊断设置策略
  • AKS 版本限制
  • 阻止命令调用

群集和工作负载体系结构

  • 命名空间部署限制

除了内置策略外,还可以为 AKS 资源和 Kubernetes 的 Azure Policy 加载项创建自定义策略。 这允许你在群集和工作负载体系结构中添加要强制实施的其他安全约束。

性能效率

性能效率是指工作负载能够以高效的方式扩展以满足用户对它的需求。 建议查看 性能效率原则

使用 Azure Kubernetes 服务 讨论性能时,请务必区分群集性能和工作负荷性能。 群集性能是群集管理员与其资源提供程序之间的共同责任,而工作负载性能是开发人员的域。 Azure Kubernetes 服务针对这两个角色都提供了注意事项和建议。

在下面的 设计清单 和建议 列表中 ,标注用于指示每个选项是否适用于群集体系结构和/或工作负载体系结构。

设计清单

在为Azure Kubernetes 服务做出设计选择时,请查看性能效率原则

  • 群集和工作负载体系结构: 执行并循环访问详细的容量计划练习,其中包括 SKU、自动缩放设置、IP 寻址和故障转移注意事项。
  • 群集体系结构: 启用 群集自动缩放程序 以在响应工作负载需求中自动调整代理节点数。
  • 群集体系结构: 使用 水平 Pod 自动缩放程序 根据 CPU 使用率或其他选择指标调整部署中的 Pod 数。
  • 群集和工作负载体系结构: 执行正在进行的负载测试活动,以练习 Pod 和群集自动缩放程序。
  • 群集和工作负载体系结构: 将工作负载分离到不同的节点池中,允许独立缩放。

建议

浏览以下建议表,以优化Azure Kubernetes 服务配置的性能。

建议 好处
群集和工作负载体系结构: 制定详细的容量计划,并不断审查和修订。 正式确定容量计划后,应通过持续观察群集的资源利用率来频繁更新容量计划。
群集体系结构: 启用 群集自动缩放程序 以自动调整代理节点数以响应资源约束。 通过自动增加或减少 AKS 群集中的节点数,你可以运行高效且具有成本效益的群集。
群集和工作负载体系结构: 将工作负载分成不同的节点池,并考虑 缩放 用户节点池。 与始终需要运行节点的系统节点池不同,用户节点池允许纵向扩展或缩减。
工作负载体系结构: 使用 AKS 高级计划程序功能 帮助控制需要资源的工作负载的资源均衡。
工作负载体系结构: 使用有意义的工作负载缩放指标。 并非所有缩放决策都可以从 CPU 或内存指标派生。 通常,缩放注意事项将来自更复杂的数据点,甚至外部数据点。 使用 KEDA 基于特定于工作负荷的信号生成有意义的自动缩放规则集。

有关更多建议,请参阅 性能效率支柱的原则

策略定义

Azure Policy提供各种适用于 Azure 资源和 AKS 的内置策略定义,例如标准策略定义,并在群集中使用适用于 Kubernetes 的 Azure Policy 加载项。 许多 Azure 资源策略既包括 审核/拒绝,也有 部署(如果不存在) 变体。

有许多策略,此处汇总了与此支柱相关的关键策略。 有关更详细的视图,请参阅 Kubernetes 的内置策略定义

群集和工作负载体系结构

  • CPU 和内存资源限制

除了内置策略外,还可以为 AKS 资源和 Kubernetes 的 Azure Policy 加载项创建自定义策略。 这允许你在群集和工作负载体系结构中添加要强制实施的其他安全约束。

其他资源

Azure 体系结构中心指南

云采用框架指导

后续步骤