共用方式為


Architecture best practices for Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) 是受控 Kubernetes 服務,可用來部署和管理容器化應用程式。 與其他受控服務類似,AKS 會將大部分作業額外負荷卸除至 Azure,同時為工作負載提供高可用性、延展性和可移植性功能。

本文假設您身為架構設計師,已檢閱 運算決策樹,並選擇 AKS 作為工作負載的運算平台。 本文中的指引提供架構建議,這些建議會映射到 Azure 架構框架的 原則 Well-Architected支柱。

重要

如何使用本指南

每個區段都有一個 設計檢查清單,呈現架構重點關注區域及針對技術範圍調整的設計策略。

此外,也包含可協助具體化這些策略的技術功能建議。 建議並不代表 AKS 及其相依性可用之所有組態的完整清單。 Instead, they list the key recommendations mapped to the design perspectives. 使用建議來建置概念證明,或將現有的環境優化。

示範主要建議的基礎架構:AKS 基準架構

技術範圍

此檢閱著重於下列 Azure 資源的相關決策:

  • AKS

當您討論 AKS 的 Well-Architected 架構要素最佳做法時,請務必區分 叢集工作負載。 叢集最佳做法是叢集管理員與其資源提供者之間的共同責任,而工作負載最佳做法是開發人員的網域。 本文針對每個角色都有考慮和建議。

Note

下列要素包括 設計檢查清單,以及 建議清單,指出每個選擇都適用於 叢集 架構、工作負載 架構,或兩者皆適用。

Reliability

可靠性支柱的目的是藉由 建置足夠的復原能力,以及從失敗快速復原的能力,來提供持續的功能。

可靠性設計原則 提供適用於個別元件、系統流程和整個系統的高階設計策略。

Design checklist

Start your design strategy based on the design review checklist for Reliability. 在記住 AKS 的功能及其相依性的同時,判斷其與業務需求的相關性。 擴充策略,以視需要包含更多方法。

  • (叢集) 建立備援以改善復原能力。 將 AKS 叢集的可用性區域作為復原策略的一部分,以在部署至單一區域時增加可用性。 許多 Azure 區域都提供可用性區域。 這些區域足夠接近,可以實現低延遲的連線,但也有適當的距離,以降低局部故障影響多個區的可能性。

    對於重要的工作負載,請跨不同的 Azure 區域部署多個叢集。 透過分散 AKS 叢集的地理位置,您可以達到更高的復原能力,並將區域失敗的影響降到最低。 多區域策略可協助最大化可用性並提供商務持續性。 面向網際網路的工作負載應使用 Azure Front DoorAzure 流量管理員,以跨 AKS 叢集全域路由流量。 如需詳細資訊,請參閱 多重區域策略

    規劃IP位址空間,以確保叢集能夠可靠地調整及處理多個叢集拓撲中的故障轉移流量。

  • (叢集和工作負載)監視叢集和工作負載的可靠性與整體健康情況指標。 收集記錄和計量來監視工作負載健康情況、識別效能和可靠性趨勢,以及針對問題進行疑難解答。 請檢閱 使用 Azure 監視器 監視 Kubernetes 的最佳做法,以及工作負載的 Well-Architected 健康情況模型化 指南,以協助設計 AKS 解決方案的可靠性與健康情況監視解決方案。

    確保工作負載已建構以支援水平調整,並能報告應用程式的準備狀態和健康狀況。

  • (Cluster and workload) Host application pods in user node pools. By isolating system pods from application workloads, you help ensure that AKS essential services are unaffected by the resource demands or potential problems caused by a workload that runs user node pools.

    請確定您的工作負載會在用戶節點集區上執行,並選擇正確的 SKU 大小。 At a minimum, include two nodes for user node pools and three nodes for the system node pool.

  • (叢集和工作負載)將 AKS 執行時間服務等級協定(SLA)納入您的可用性和復原目標。 若要定義叢集和工作負載的可靠性與復原目標,請遵循 建議中的指引來定義可靠性目標。 然後制定符合這些目標的設計。

  • (叢集和工作負載)使用 Azure 備份來保護 AKS 叢集服務,方法是將恢復點儲存在備份保存庫中,並在任何災害案例期間執行還原。 若要備份和還原在 AKS 叢集中執行的容器化應用程式和數據,請遵循 AKS 備份概觀中的指引來設定保護。

Recommendations

Recommendation Benefit
(Cluster and workload) Control pod scheduling by using node selectors and affinity.

在 AKS 中,Kubernetes 排程器可以透過節點中的硬體,以邏輯方式隔離工作負載。 Unlike tolerations, pods that don't have a matching node selector can be scheduled on labeled nodes, but priority is given to pods that define the matching node selector.
節點親和性提供更大的彈性,使您能夠定義當 Pod 無法與節點匹配時會發生什麼情況。
(叢集)根據網路需求和叢集大小選擇適當的網路外掛程式。

不同的網路外掛程式提供不同層級的功能。 特定案例需要 Azure 容器網路介面 (Azure CNI),例如 Windows 節點集區、某些網路需求,以及 Kubernetes 網路原則。

如需詳細資訊,請參閱 Kubenet 與 Azure CNI
正確的網路外掛程式有助於確保更好的相容性和效能。
(Cluster and workload) Use the AKS uptime SLA for production-grade clusters. 工作負載可以支援更高的可用性目標,因為 AKS 叢集的 Kubernetes API 伺服器端點可用性保證較高。
(叢集)使用 可用性區域,藉由將 AKS 代理程式節點分散到實體個別的數據中心,將 Azure 區域內的復原能力最大化。

If colocality requirements exist, use a regular virtual machine scale sets-based AKS deployment into a single zone or use proximity placement groups to minimize internode latency.
藉由將節點集區分散到多個區域,即使另一個區域關閉,一個節點集區中的節點仍會繼續執行。
(叢集和工作負載)在應用程式部署設定檔中定義 Pod 資源的要求和限制。 使用 Azure 原則強制執行這些限制。 Container CPU and memory resource limits are necessary to prevent resource exhaustion in your Kubernetes cluster.
(叢集和工作負載)讓系統節點集區與應用程式工作負載保持隔離。

系統節點集區需要至少 2 個 vCPU 和 4 GB 記憶體的虛擬機器 (VM) SKU。 建議您使用 4 個 vCPU 或更多。 如需詳細資訊,請參閱 系統和用戶節點集區
The system node pool hosts critical system pods that are essential for the control plane of your cluster. 藉由將這些系統 Pod 與應用程式工作負載隔離,您可以協助確保基本服務不受工作負載所造成的資源需求或潛在問題影響。
(叢集和工作負載)根據特定需求,將應用程式分成專用節點集區。 避免大量的節點集區,以減少管理額外負荷。 應用程式可以共用相同的配置,並需要支援 GPU 的 VM、經過 CPU 或記憶體優化的 VM,或具備縮減至零的能力。 藉由將節點集區奉獻給特定應用程式,您可以協助確保每個應用程式都能取得所需的資源,而不需要過度布建或使用量過低的資源。
(叢集)針對執行許多並行輸出連線之工作負載的叢集,請使用 NAT 閘道 Azure NAT 閘道支持大規模的可靠輸出流量,並藉由將 Azure Load Balancer 限制套用至高並行輸出流量,協助您避免可靠性問題。
(叢集和工作負載)使用 Azure 備份 保護 AKS 叢集,並將 還原至災害期間的替代區域。 Azure 備份支援針對叢集狀態和應用程式數據執行的容器化應用程式和數據的備份和還原作業。

您可以在區域災害案例中使用備份,並將備份復原
Azure 備份與 Azure Kubernetes Service (AKS) 提供完全受控、可調整、安全且符合成本效益的解決方案。 不需要設定和維護備份基礎結構的複雜性,即可增強工作負載的可靠性。

Security

安全性要素的目的是為工作負載提供 機密性、完整性和可用性 保證。

安全性設計原則 藉由將方法套用至 AKS 的技術設計,為達成這些目標提供高階的設計策略。

Design checklist

Start your design strategy based on the design review checklist for Security and identify vulnerabilities and controls to improve the security posture. 熟悉 AKS 安全概念, 並根據 CIS Kubernetes 基準評估安全強化建議。 擴充策略,以視需要包含更多方法。

  • (叢集) 與 Microsoft Entra ID 整合,以取得 身分識別和存取管理 使用 Microsoft Entra ID 集中管理叢集的身分識別。 Any change in user account or group status is automatically updated in access to the AKS cluster. 將身分識別建立為主要安全邊界。 The developers and application owners of your Kubernetes cluster need access to different resources.

    Use Kubernetes role-based access control (RBAC) with Microsoft Entra ID for least privilege access. 藉由將系統管理員許可權的配置降到最低,以保護設定和秘密。

  • (叢集) 與安全性監視和安全性資訊和事件管理工具整合。 使用適用於容器的 Microsoft Defender 搭配 Microsoft Sentinel,以偵測並快速回應叢集及其上執行之工作負載的威脅。 啟用 AKS 連接器以將您的 AKS 診斷記錄串流至 Microsoft Sentinel

  • (叢集和工作負載)實作分割和網路控制。 若要防止數據外流,請確定只允許授權且安全的流量,並包含安全性缺口的爆破半徑。

    請考慮使用私人 AKS 叢集,協助確保 API 伺服器的叢集管理流量會保留在專用網路上。 或使用公用叢集的 API 伺服器允許清單。

  • (工作負載) 使用 Web 應用程式防火牆 (WAF) 掃描連入流量是否有潛在攻擊。 WAF 可以即時偵測並減輕威脅,以協助封鎖惡意流量,再到達您的應用程式。 它提供強大的保護,以防止常見的 Web 型攻擊,例如 SQL 插入式攻擊、跨網站腳本,以及其他開放式 Web 應用程式安全性專案弱點。 某些負載平衡器,例如 Azure 應用程式閘道Azure Front Door 具有整合式 WAF。

  • (Workload) Maintain a hardened workload's software supply chain. Ensure that your continuous integration and continuous delivery pipeline is hardened with container-aware scanning.

  • (叢集和工作負載)為特製化安全工作負載實作額外的保護。 如果您的叢集需要執行敏感性工作負載,您可能需要部署私人叢集。 以下是一些範例:

Recommendations

Recommendation Benefit
(Cluster) Use managed identities on the cluster. 您可以避免與管理和輪替服務原則相關聯的額外負荷。
(工作負載)搭配 AKS 使用 Microsoft Entra 工作負載標識符,從您的工作負載存取 Microsoft Entra 受保護的資源,例如 Azure Key Vault 和 Microsoft Graph。 使用 AKS 工作負載標識符來保護對 Azure 資源的存取,方法是使用 Microsoft Entra ID RBAC,而不需要直接在程式代碼中管理認證。
(Cluster) Use Microsoft Entra ID to authenticate with Azure Container Registry from AKS. 藉由使用 Microsoft Entra 識別符,AKS 可以使用 Container Registry 進行驗證,而不需使用 imagePullSecrets 秘密。
(Cluster) Secure network traffic to your API server by using private AKS cluster if the workload requirements require higher levels of segmentation. 根據預設,節點集區和 API 伺服器之間的網路流量會移動Microsoft骨幹網路。 藉由使用私人叢集,您可以協助確保 API 伺服器的網路流量只保留在專用網上。
(叢集)針對公用 AKS 叢集,請使用 API 伺服器授權的 IP 位址範圍。 包含來源,例如部署組建代理程式的公用IP位址、作業管理和節點集區的輸出點,例如 Azure 防火牆。 當您使用公用叢集時,可以藉由限制可到達叢集 API 伺服器的流量,大幅減少 AKS 叢集的攻擊面。
(叢集)使用 Microsoft Entra ID RBAC 來保護 API 伺服器。

停用本機帳戶,以使用 Microsoft Entra 識別符型身分識別強制執行所有叢集存取。
保護 Kubernetes API 伺服器的存取權是保護叢集安全最重要的事項之一。 整合 Kubernetes RBAC 與 Microsoft Entra ID,以控制對 API 伺服器的存取。
(Cluster) Use Azure network policies or Calico. 藉由使用原則,您可以保護和控制叢集中 Pod 之間的網路流量。 Calico 提供一組更豐富的功能,包括原則排序和優先順序、拒絕規則,以及更有彈性的比對規則。
(叢集)使用 Azure 原則來保護叢集和 Pod。 Azure 原則可協助您以集中式、一致的方式,大規模地在叢集上套用強制和保護。 It can also control what functions pods are granted and detect whether anything is running against company policy.
(叢集)保護對資源的容器存取。 Limit access to actions that containers can perform. Provide the least number of permissions, and avoid the use of root or privileged escalation.

For Linux based containers, see Security container access to resources using built-in Linux security features.
藉由限制權限並避免使用 root 或提升特權操作,有助於降低安全漏洞的風險。 您可以協助確保即使容器遭到入侵,潛在損害也會最小化。
(叢集)藉由確保叢集的輸出流量通過網路安全性點,例如 Azure 防火牆HTTP Proxy,來控制叢集輸出流量。 透過 Azure 防火牆或 HTTP Proxy 路由傳送輸出流量,您可以協助強制執行安全策略,以防止未經授權的存取和數據外流。 此方法也會簡化安全策略的管理,並讓您更輕鬆地在整個 AKS 叢集中強制執行一致的規則。
(Cluster) Use the open-source Microsoft Entra Workload ID and Secrets Store CSI Driver with Key Vault. 這些功能可協助您使用強式加密來保護和輪替 Key Vault 中的秘密、憑證和連接字串。 They provide an access audit log and keep core secrets out of the deployment pipeline.
(Cluster) Use Microsoft Defender for Containers. Microsoft適用於容器的 Defender 可協助您監視和維護叢集、容器及其應用程式的安全性。

成本優化

成本優化著重於 偵測支出模式、將投資放在重要領域,並將其他 優化,以符合組織的預算,同時符合商務需求。

成本優化設計原則 提供高階設計策略,以達成這些目標,並在與 AKS 及其環境相關的技術設計中在必要時進行取捨。

Design checklist

Start your design strategy based on the design review checklist for Cost Optimization for investments. 微調設計,讓工作負載符合為工作負載配置的預算。 您的設計應該使用正確的 Azure 功能、監視投資,以及尋找經過一段時間優化的機會。

  • (叢集)在您的成本模型中包含 AKS 定價層。 若要預估成本,請使用 Azure 定價計算機,並在計算機中測試不同的組態和付款方案。

  • (叢集) 取得工作負載的最佳費率。 針對每個節點集區使用適當的 VM SKU,因為它直接影響執行工作負載的成本。 選擇沒有適當使用率的高效能 VM 可能會導致浪費費用。 選取較不強大的 VM 可能會導致效能問題,並增加停機時間。

    如果您已正確規劃容量,且工作負載可預測,且將存在一段較長的時間,請註冊 Azure Reservations節省方案,以降低您的資源成本。

    選擇 Azure Spot 虛擬機,以大幅折扣使用未使用量的 Azure 容量。 These discounts can reach up to 90% of pay-as-you-go prices. If Azure needs capacity back, the Azure infrastructure evicts the Spot nodes.

    如果您在內部部署或邊緣執行 AKS,也可以使用 Azure Hybrid Benefit,以在這些案例中執行容器化應用程式時降低成本。

  • (叢集和工作負載)優化工作負載元件成本。 為您的工作負載選擇最符合成本效益的區域。 評估成本、延遲和合規性需求,以確保您以符合成本效益的方式執行工作負載,且不會影響您的客戶或建立額外的網路費用。 您在 Azure 中部署工作負載的區域可能會大幅影響成本。 由於許多因素,資源成本會因 Azure 中的每個區域而有所不同。

    維護小型和優化的映像,以協助降低成本,因為新節點需要下載這些映像。 User request failures or timeouts when the application is starting up can lead to overprovisioning. 以允許容器儘快啟動的方式建置映射,以協助避免失敗和逾時。

    請檢閱 使用 Azure 監視器 監視 Kubernetes 的最佳做法中的成本優化建議,以判斷工作負載的最佳監視策略。 分析效能計量,從CPU、記憶體、記憶體、記憶體和網路開始,以依叢集、節點和命名空間識別成本優化機會。

  • (叢集和工作負載)優化工作負載調整成本。 考慮替代的垂直和水平調整組態,以減少調整成本,同時仍符合所有工作負載需求。 Use autoscalers to scale in when workloads are less active.

  • (Cluster and workload) Collect and analyze cost data. The foundation of enabling cost optimization is the spread of a cost-saving cluster. 開發成本效益思維,包括財務、營運和工程小組之間的共同作業,以推動成本節約目標的一致性,並讓雲端成本保持透明度。

Recommendations

Recommendation Benefit
(Cluster and workload) Align AKS SKU selection and managed disk size with workload requirements. 將您的選擇與工作負載需求相匹配,有助於確保您不會為不需要的資源付費。
(叢集)為 AKS 節點集區選擇正確的 VM 實例類型,

若要判斷正確的 VM 實例類型,請考慮工作負載特性、資源需求和可用性需求。
選取正確的 VM 實例類型非常重要,因為它直接影響到 AKS 上執行應用程式的成本。 選擇高效能實例卻沒有充分利用,可能會導致資源浪費。 選擇功能較弱的實例可能會導致效能問題並增加停機時間。
(叢集)根據更有效率的 Azure Resource Manager 架構選擇 VM。 AKS supports creating Arm64 node pools and a mix of Intel and Resource Manager architecture nodes within a cluster. Arm64 架構提供較佳的價格與效能比率,因為它的功率使用率較低,且計算效能有效率。 這些功能可以降低成本來提升效能。
(叢集)啟用 叢集自動調整程式,以自動減少代理程序節點數目,以響應資源容量過剩。 自動相應減少 AKS 叢集中的節點數目,可讓您在需求較低時執行有效率的叢集,並在需求增加時相應增加。
(Cluster) Enable node autoprovisioning to automate VM SKU selection. 節點自動布建可簡化 SKU 選取程式,並根據擱置的 Pod 資源需求,決定以最有效率且符合成本效益的方式執行工作負載的最佳 VM 組態。
(工作負載)使用 HorizontalPodAutoscaler,根據 CPU 使用率或其他計量來調整部署中的 Pod 數目。 Automatically scaling down the number of pods when demand is low and scaling out when demand increases results in a more cost-effective operation of your workload.
(Workload) Use VerticalPodAutoscaler (preview) to rightsize your pods and dynamically set requests and limits based on historic usage. 藉由為每個工作負載設定容器的資源要求和限制,VerticalPodAutoscaler 可釋出其他 Pod 的 CPU 和記憶體,並協助確保 AKS 叢集的有效使用率。
(叢集)設定 AKS 成本分析外掛 成本分析叢集延伸模組可讓您深入瞭解與叢集或命名空間中各種 Kubernetes 資源相關聯的成本。

卓越營運

運營卓越主要著重於 開發實務、可觀察性和發行管理的程序。

營運卓越設計原則 提供高階設計策略,以達成工作負載作業需求的目標。

Design checklist

以營運卓越 設計檢查清單作為您的設計策略起點,定義可觀察性、測試和部署的過程。 請參閱 AKS 最佳做法第 2 天操作指南 以瞭解和實作的重要考慮事項。

  • (Cluster) Implement an infrastructure as code (IaC) deployment approach. Use a declarative, template-based deployment approach by using Bicep, Terraform, or similar tools. Make sure that all deployments are repeatable, traceable, and stored in a source code repo. 如需詳細資訊,請參閱 AKS 產品檔中的 快速入門

  • (叢集和工作負載)自動化基礎結構和工作負載部署。 使用標準軟體解決方案來管理、整合及自動化叢集和工作負載的部署。 整合部署管線與原始檔控制系統,並納入自動化測試。

    建置自動化程式,以協助確保您的叢集已使用必要的全叢集組態和部署來啟動。 此程式通常是使用 GitOps 來執行。

    在您的軟體開發生命週期內,針對您的工作負載使用可重複且自動化的部署程式。

  • (叢集和工作負載)實施全面的監視策略。 收集記錄和計量以監視工作負載的健康情況、找出效能和可靠性的趨勢,以及針對問題進行疑難解答。 檢閱使用 Azure 監視器 監視 Kubernetes 的 最佳做法,以及設計及建立監視系統 的 Well-Architected 建議,以判斷工作負載的最佳監視策略。

    啟用診斷設定,以確保記錄控制平面或核心 API 伺服器互動。

    工作負載應設計為發出可收集的遙測資料,這應包括存活狀態和準備狀態。

  • (叢集和工作負載)在生產策略中實作測試。 生產環境中的測試會使用實際部署來驗證及測量應用程式在生產環境中的行為和效能。 使用以 Kubernetes 為目標的混亂工程做法來識別應用程式或平臺可靠性問題。

    Azure Chaos Studio 可協助模擬錯誤並觸發災害復原情況。

  • (叢集和工作負載)強制執行工作負載控管。 Azure 原則可協助確保符合組織標準、自動化原則強制執行,並提供叢集資源的集中可見度和控制。

    請檢閱 Azure 原則 一節,以深入瞭解 AKS 可用的內建原則。

  • (叢集和工作負載)針對任務關鍵性工作負載使用 戳記層級、藍綠部署 戳記層級、藍綠部署方法可以增加發行變更的信心,並啟用零停機升級,因為可以驗證與 Azure 平臺、資源提供者和 IaC 模組等下游相依性的相容性。

    Kubernetes and ingress controllers support many advanced deployment patterns for inclusion in your release engineering process. Consider patterns like blue-green deployments or canary releases.

  • (叢集和工作負載)讓工作負載更具可持續性。 讓工作負載更具 可持續和雲端效率 需要結合 成本優化減少碳排放,以及 優化能耗。 Optimizing the application's cost is the initial step in making workloads more sustainable.

    請參閱 AKS 中的 永續性軟體工程原則,以瞭解如何建置可持續且有效率的 AKS 工作負載。

Recommendations

Recommendation Benefit
(叢集)使用適用於 AKS 的 Azure 原則來實現叢集和 Pod 設定標準 適用於 AKS 的 Azure 原則可協助您以集中式、一致的方式,大規模地在叢集上套用強制和保護。 使用政策來定義授予 Pod 的權限,並確保符合公司政策。
(Workload) Use Kubernetes Event Driven Autoscaler (KEDA). KEDA 可讓您的應用程式根據事件進行調整,例如所處理的事件數目。 您可以從 50 個以上的 KEDA 縮放器豐富的目錄中進行選擇。

效能效率

Performance Efficiency is about maintaining user experience even when there's an increase in load by managing capacity. 此策略包括調整資源、識別和優化潛在的瓶頸,以及優化尖峰效能。

效能效率設計原則 提供針對預期使用量達成這些容量目標的高階設計策略。

Design checklist

Start your design strategy based on the design review checklist for Performance Efficiency for defining a baseline based on key performance indicators for AKS.

  • (叢集和工作負載)進行容量規劃。 執行並重複進行包含 SKU、自動調整設定、IP 位址設定和容錯切換考量的詳細容量計劃。

    正式化容量計劃之後,請持續觀察叢集的資源使用率,以經常更新計劃。

  • (叢集)定義調整策略。 設定調整,以確保資源能有效率地調整,以滿足工作負載需求,而不會過度使用或浪費。 使用 AKS 功能,例如叢集自動調整和水平 Pod 自動調整器,以動態符合您的工作負載需求,同時減輕營運的負擔。 將您的工作負載優化,以在容器中有效率地運作和部署。

    請檢閱 調整和分割 指南,以瞭解調整組態的各個層面。

  • (Cluster and workload) Conduct performance testing. Perform ongoing load testing activities that exercise both the pod and cluster autoscaler. 比較結果與效能目標與已建立的基準。

  • (叢集和工作負載)獨立調整工作負載和流程。 分開將工作負載和流程放入不同的節點集區,以允許獨立調整。 Follow the guidance in Optimize workload design using flows to identify and prioritize your flows.

Recommendations

Recommendation Benefit
(叢集)啟用 叢集自動調整程式,以自動調整代理程序節點數目,以回應工作負載需求。

使用 HorizontalPodAutoscaler,根據 CPU 使用率或其他計量來調整部署中的 Pod 數目。
能夠自動擴展或縮減 AKS 叢集中的節點和 Pod 的數量的能力,可讓您運行一個有效且具有成本效益的叢集。
(Cluster and workload) Separate workloads into different node pools and consider scaling user node pools. 不同於系統節點集區始終需要執行節點,用戶節點集區可以進行擴展或縮減。
(工作負載)使用 AKS 進階排程器功能 針對需要資源的工作負載實作進階平衡。 當您管理 AKS 叢集時,通常需要隔離小組和工作負載。 Kubernetes 排程器提供的進階功能可讓您控制哪些 Pod 可以在特定節點上排程。 They also let you control how multipod applications can be appropriately distributed across the cluster.
(工作負載)使用 KEDA,根據工作負載特有的訊號來建置有意義的自動調整規則集。 Not all scale decisions can be derived from CPU or memory metrics. 規模考慮通常來自更複雜的甚至外部數據點。 KEDA 可讓您的應用程式根據事件進行調整,例如佇列中的訊息數目或主題延遲的長度。

Azure 原則

Azure 提供一套豐富的內建政策,這些政策適用於 Azure 資源,涵蓋與 AKS 相關的項目,例如一般 Azure 政策和適用於 Kubernetes 的 Azure Policy 附加元件,並應用於叢集內。 Many of the Azure resource policies come in both Audit/Deny and a Deploy If Not Exists variants. 除了內建的 Azure 原則定義之外,您還可以為 AKS 資源和 Kubernetes 的 Azure 原則附加元件建立自定義原則。

本文中的一些建議可透過 Azure 原則進行稽核。 例如,您可以檢查下列叢集原則:

  • Clusters have readiness or liveness health probes configured for your pod spec.
  • Microsoft Defender for cloud-based policies.
  • 驗證模式和設定原則,例如Microsoft Entra ID、RBAC 和停用本機驗證。
  • API 伺服器網路存取原則,包括私人叢集。
  • GitOps 設定原則。
  • 診斷設定原則。
  • AKS 版本限制。
  • Prevent command invoke.

您也可以檢查下列叢集和工作負載原則:

  • Kubernetes cluster pod security initiatives for Linux-based workloads.
  • 包含 Pod 和容器功能原則,例如 AppArmor、sysctl、安全性上限、SELinux、seccomp、特殊許可權容器,以及自動掛接叢集 API 認證。
  • Mount, volume drivers, and filesystem policies.
  • Pod and container networking policies, such as host network, port, allowed external IPs, HTTPs, and internal load balancers.
  • Namespace deployment restrictions.
  • CPU 和記憶體資源限制。

如需全面治理,請檢閱 Kubernetes 和其他可能影響計算層安全性的 Azure 原則內建定義

Azure Advisor 建議

Azure Advisor 是個人化的雲端顧問,可協助您遵循最佳做法來優化 Azure 部署。 以下是一些建議,可協助您改善 AKS 的可靠性、安全性、成本效益、效能和營運卓越。

請考慮下列文章作為資源,用以展示本文所強調的建議。

使用下列產品檔建置實作專業知識: