您在管理 Azure Kubernetes Service (AKS) 中的叢集時,往往需要隔離小組和工作負載。 AKS 讓您靈活執行多租用戶叢集和隔離資源。 為了充分發揮您在 Kubernetes 上的投資效益,務必了解 AKS 的多租用戶與隔離功能。
這篇最佳實務的文章著重於叢集操作員的隔離。 在本文中,您將學會如何:
- 為多租用戶叢集和資源分隔進行規劃。
- 在 AKS 叢集中使用邏輯或實體隔離。
為多租用戶設計叢集
Kubernetes 可讓您邏輯式隔離相同叢集中的小組和工作負載。 目標是提供最少數量的權限,並將其範圍限制在每個小組需要的資源。 Kubernetes 命名空間會建立邏輯隔離界限。 其他適用於隔離及多租用戶的 Kubernetes 功能與考量,涵蓋以下幾個層面:
排程
排程使用資源配額和 Pod 中斷預算等基本功能。 如需這些功能的詳細資訊,請參閱 AKS 中基本排程器功能的最佳做法。
進階排程器功能包含:
- 污點和容忍。
- 節點選擇器。
- 節點與 Pod 的親和性或反親和性。
如需這些功能的詳細資訊,請參閱 AKS 中進階排程器功能的最佳做法。
網路
網路使用網路原則來控制 Pod 流入和流出流量。
如需詳細資訊,請參閱在 AKS 中使用網路原則來保護 Pod 之間的流量。
驗證與授權
驗證與授權的用途:
- 角色型存取控制 (RBAC)。
- Microsoft Entra 整合。
- Pod 身分識別。
- Azure Key Vault 中的祕密。
如需這些功能的詳細資訊,請參閱 AKS 中驗證和授權的最佳做法。
容器
容器包含:
- AKS 的 Azure Policy 附加元件,用於強制執行 Pod 安全性。
- Pod 安全登入許可。
- 掃描影像及執行階段,檢查是否有弱點。
- 使用 App Armor 或 Seccomp (安全運算) 以限制容器存取基礎節點。
邏輯隔離叢集
最佳做法指導
使用邏輯隔離來分隔小組和專案。 盡量減少您用來隔離小組或應用程式的實體 AKS 叢集數。
透過邏輯隔離,您可以針對多個工作負載、小組或環境使用單一 AKS 叢集。 Kubernetes 命名空間構成了工作負載和資源的邏輯隔離界限。
叢集的邏輯區隔通常提供比實體隔離叢集更高的 Pod 密度,且叢集中有較少的額外計算容量閒置。 與 Kubernetes 叢集自動調整程式結合時,您可以相應增加或減少節點數目以符合需求。 這個最佳做法是只運行所需的節點數,以達到成本最小化。
Kubernetes 環境對於敵意的多租戶使用並不完全安全。 在多租用戶環境中,多個租用戶會共用同一個基礎結構。 若無法信任所有租用戶,您需要額外規劃,以防有租用戶影響其他租用戶的安全性和服務。
其他安全性功能(例如適用於節點的 Kube RBAC)可有效阻擋惡意探索。 在執行敵對多租用戶工作負載時,若要真正確保安全性,您應該只信任 Hypervisor。 Kube 的安全性網域會成為整個叢集,而不是單一節點。
針對這些類型具潛在威脅性的多租戶工作負載,宜使用實體隔離的叢集。
實體隔離叢集
最佳做法指導
請盡量少用各獨立團隊或應用程式部署的實體隔離;請改用邏輯隔離。
實際分隔 AKS 叢集為叢集隔離的常見方法。 在此隔離模型中,小組或工作負載會獲派自己的 AKS 叢集。 實體隔離看起來雖是隔離工作負載或小組最簡單的方式,但也會增加管理和財務上的額外負荷。 若採用實體隔離叢集,您必須維護多個叢集並單獨提供存取和指派權限。 您也需要為每個單一節點付費。
實體隔離叢集的 Pod 密度通常較低。 由於每個小組或工作負載皆有自己的 AKS 叢集,因此叢集往往會過度佈建運算資源。 通常,只有少數幾個 Pod 會被排定到那些節點上。 其他小組也無法使用未宣告的節點容量來開發應用程式或服務。 多餘的資源會增加實體隔離叢集的成本。
下一步
本文著重於叢集隔離。 有關 AKS 中叢集作業的詳細資訊,請參閱以下最佳做法的相關文章: