設定 Azure Kubernetes Service (AKS) 的網路隔離

已完成

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

設計多租用戶的叢集

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

  • Azure Kubernetes Service (AKS) 中叢集隔離的最佳做法
    • 設計多租用戶的叢集
      • 正在排程
      • 網路
      • 驗證與授權
      • 容器
  • 邏輯隔離叢集
  • 實體隔離叢集

正在排程

排程使用資源配額和 Pod 中斷預算等基本功能。

進階排程器功能包含:

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

網路

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

驗證和授權

驗證與授權

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

容器

容器包含:

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

邏輯隔離叢集

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

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

顯示邏輯隔離叢集範例的圖表。

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

Kubernetes 環境對於惡意多租用戶使用方式並非完全安全。 在多租用戶環境中,多個租使用者會在共用基礎結構上運作。 若無法信任所有租用戶,您需要額外規劃,以防有租用戶影響其他租用戶的安全性和服務。

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

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

實體隔離叢集

最佳做法指南:將每個個別小組或應用程式部署的實體隔離使用降到最低,並改用邏輯隔離。

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

顯示實體隔離叢集範例的圖表。

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