Azure Kubernetes Service (AKS) 中叢集隔離的最佳做法

您在管理 Azure Kubernetes Service (AKS) 中的叢集時,往往需要隔離小組和工作負載。 AKS 讓您靈活執行多租用戶叢集和隔離資源。 若要在 Kube 投資方面獲得最大收益,請務必了解 AKS 多租用戶和隔離功能。

這個最佳做法文章著重於叢集操作員的隔離操作。 在本文中,您將學會如何:

  • 規劃多租用戶叢集和資源隔離。
  • 在 AKS 叢集中使用邏輯或實體隔離。

設計多租用戶的叢集

Kubernetes 可讓您邏輯式隔離相同叢集中的小組和工作負載。 目標是提供最少數量的權限,並將其範圍限制在每個小組需要的資源。 Kubernetes 命名空間會建立邏輯隔離界限。 隔離和多租用戶的其他 Kube 功能和注意事項如下:

正在排程

排程使用資源配額和 Pod 中斷預算等基本功能。 如需這些功能的詳細資訊,請參閱 AKS 中基本排程器功能的最佳做法

進階排程器功能包含:

  • 污點和容忍。
  • 節點選取器。
  • 節點及 Pod 親和性或反親和性。

如需這些功能的詳細資訊,請參閱 AKS 中進階排程器功能的最佳做法

網路

網路使用網路原則來控制 Pod 流入和流出流量。

驗證和授權

驗證與授權

  • 角色型存取控制 (RBAC)。
  • Microsoft Entra 整合。
  • Pod 身分識別。
  • Azure Key Vault 中的祕密。

如需這些功能的詳細資訊,請參閱 AKS 中驗證和授權的最佳做法

容器

容器包含:

  • AKS 的 Azure 原則附加元件。用於強制執行 Pod 安全性。
  • Pod 安全性許可。
  • 掃描影像及執行階段,檢查是否有弱點。
  • 使用 App Armor 或 Seccomp (安全運算) 以限制容器存取基礎節點。

邏輯隔離叢集

最佳做法指導

使用邏輯隔離來分隔小組和專案。 盡量減少隔離小組或應用程式所部署的實體 AKS 叢集數。

透過邏輯隔離,您可以針對多個工作負載、小組或環境使用單一 AKS 叢集。 Kube 命名空間構成了工作負載和資源的邏輯隔離界限。

Logical isolation of a Kubernetes cluster in AKS

叢集的邏輯區隔通常提供比實體隔離叢集更高的 Pod 密度,且叢集中的計算容量不足。 與 Kubernetes 叢集自動調整程式結合時,您可以相應增加或減少節點數目以符合需求。 這個最佳做法方法只會執行所需的節點數目,將成本降至最低。

就多租用戶惡意使用方式而言,Kube 環境並不完全安全。 在多租用戶環境中,多個租用戶會共用同一個基礎結構。 若無法信任所有租用戶,您需要額外規劃,以防有租用戶影響其他租用戶的安全性和服務。

其他安全性功能(例如適用於節點的 Kube RBAC)可有效阻擋惡意探索。 執行嚴格控管式多租用戶工作負載時,若要真正確保安全性,應只信任 Hypervisor。 Kube 的安全性網域會成為整個叢集,而不是單一節點。

針對這些類型的惡意多租用戶工作負載,您應該使用實際隔離的叢集。

實體隔離叢集

最佳做法指導

請盡量少用各獨立團隊或應用程式部署的實體隔離;請改用邏輯隔離。

實際分隔 AKS 叢集為叢集隔離的常見方法。 在此隔離模型中,小組或工作負載會獲派自己的 AKS 叢集。 實體隔離看起來雖是隔離工作負載或小組最簡單的方式,但也會增加管理和財務上的額外負荷。 若採用實體隔離叢集,您必須維護多個叢集並單獨提供存取和指派權限。 您也需要為每個單一節點付費。

Physical isolation of individual Kubernetes clusters in AKS

實體隔離叢集的 Pod 密度通常較低。 由於每個小組或工作負載皆有自己的 AKS 叢集,因此叢集往往會過度佈建運算資源。 通常會在這些節點上安排一些 Pod。 其他小組也無法使用未宣告的節點容量來開發應用程式或服務。 多餘的資源會增加實體隔離叢集的成本。

下一步

本文著重於叢集隔離。 有關 AKS 中叢集作業的詳細資訊,請參閱以下最佳做法的相關文章: