共用方式為


使用受控機群命名空間執行多叢集多租用戶 (預覽)

適用於 ✔️ 具有中樞叢集的機群管理員

本文提供 Azure Kubernetes Fleet Manager 的管理型車隊命名空間概念性概述,這些命名空間提供集中管理的多叢集多租戶解決方案。

這很重要

Azure Kubernetes Fleet Manager 預覽功能可在自助服務、選擇加入的基礎上使用。 預覽是「依現況」及「可用時」提供的,並不包括在服務等級協定和有限保固之內。 客戶支援部門會竭盡全力支援一部分的 Azure Kubernetes 機群管理員預覽功能。 因此,這些功能不適合實際執行用途。

什麼是管理艦隊命名空間?

當部署於目標成員叢集時,管理艦隊命名空間允許平台管理員套用資源配額、網路政策、標籤、註解,並控制每個叢集對命名空間資源的存取權限。 管理車隊命名空間擴展了 受管 Kubernetes 命名空間的功能,後者提供在單一 AKS 叢集內邏輯隔離工作負載的方法。

管理的車隊命名空間使用生成的唯讀車隊管理員 叢集資源配置(CRP),將中央定義的命名空間分發至選定的成員叢集。

在建立車隊管理命名空間時,你還可以控制:

  • 採用原則:定義當受控機群命名空間置於成員叢集,且存在同名的非受控命名空間或受控 Kubernetes 命名空間時,衝突的解決方式。
  • 刪除政策:定義 Kubernetes 資源在 Managed Fleet Namespace Azure 資源刪除時是否會被刪除。

設定資源配額

平台管理員可以使用 資源配額 ,在命名空間層級限制 CPU 與記憶體的使用。 若省略,則不會對命名空間套用資源配額。

  • CPU 請求和限制:設定命名空間中工作負載可以請求或取用的最小和最大 CPU 資源。
  • 記憶體請求和限制:設定命名空間中工作負載可以請求或取用的最小和最大記憶體資源。

備註

命名空間的配額是獨立套用於每個成員叢集,而非所有執行該命名空間的叢集共享。

設定網路政策

網路原則 可控制命名空間內 Pod 允許的流量。 您可以獨立選取輸入和輸出流量的三個內建網路原則之一。 如果省略,則不會將任何網路原則套用至命名空間。

網路原則會個別套用至每個叢集,而且不會控制命名空間的跨叢集網路流量。 每個成員叢集都會在其本機命名空間執行個體內獨立強制執行自己的網路原則。 網路政策包括:

  • 全部允許:允許全部網路流量,包括 Pod 與外部端點之間的流量。
  • 允許相同的命名空間:允許相同命名空間內 Pod 之間的所有網路流量。
  • 拒絕全部:拒絕所有網路流量,包括容器與外部端點之間的流量。

備註

管理型車隊命名空間設定預設網路政策,但擁有足夠權限的命名空間使用者可新增額外政策,放寬該命名空間的整體網路政策。 此行為符合 Kubernetes 網路政策的標準加法行為。

標籤和註釋

你可以將 Kubernetes 標籤 和註解套用到 Managed Fleet 命名空間。 根據預設,每個受控命名空間都有一個內建標籤,指出它是由 ARM 管理。

採用原則

建立受控機群命名空間時,採用原則會決定目標叢集中已存在非受控或受控 Kubernetes 命名空間時該如何處理。 有下列選項可供使用:

  • 從不:如果叢集中已存在具有相同名稱的命名空間,則受管理命名空間建立會失敗。
  • IfIdentical:如果叢集中已存在具有相同名稱的命名空間,則受管理命名空間建立會失敗,除非命名空間相同。 若命名空間相同,Fleet Manager 會接管現有的命名空間來管理。
  • 一律:受管理命名空間一律會接管現有的命名空間,即使命名空間中的某些資源被覆寫也一樣。

在採用過程中,受管理車隊命名空間可以接管成員叢集現有命名空間的欄位,但不會移除該命名空間的資源。

刪除原則

刪除原則會控制在刪除受控機群命名空間 Azure 資源時,如何處理 Kubernetes 命名空間。 有兩個內建選項:

  • 保留:保留成員叢集上的 Kubernetes 命名空間,但移除 ManagedByARM 標籤。
  • 刪除:移除 Kubernetes 命名空間及其內所有資源,從成員叢集中移除。

警告

刪除政策「 刪除 」會將 Kubernetes 命名空間資源及其內的所有資源完全從目標成員叢集中移除,即便這些資源先前已存在並被管理艦隊命名空間採用。

管理機群命名空間內建角色

受管理的車隊命名空間利用現有的 Azure 角色基礎存取控制(RBAC)Azure 資源管理員角色 來管理與存取受管理命名空間。 現有的 Kubernetes 資料平面角色 會被套用來與在 Fleet Manager 集線叢集上建立的受管理車隊命名空間實例互動。

這很重要

當你在受管艦隊命名空間範圍內指派 RBAC 角色時,會被授予同名成員叢集上任何未管理的 Kubernetes 命名空間存取權。

要控制成員叢集上管理艦隊命名空間的存取,請使用以下內建角色,這些角色可在命名空間範圍內套用:

Role Description
Azure Kubernetes 機群管理員成員叢集的 RBAC 讀者 • 對成員叢集上命名空間中大多數物件的唯讀存取權。
• 無法檢視角色或角色繫結。
• 無法檢視機密信息(防止透過ServiceAccount 認證來提升權限)。
Azure Kubernetes 機群管理員成員叢集的 RBAC 寫入者 • 命名空間中大多數 Kubernetes 資源的讀取和寫入存取權。
• 無法檢視或修改角色或角色繫結。
• 可以讀取密碼 (並可假設命名空間中的任何密碼 ServiceAccount )。
Azure Kubernetes 機群管理員成員叢集的 RBAC 管理員 • 在成員叢集的命名空間中對 Kubernetes 資源具有讀寫權限。
Azure Kubernetes 機群管理員成員叢集的 RBAC 叢集管理員 • 對成員叢集上所有 Kubernetes 資源的完整讀取/寫入存取權。

例如,team-A 中使用 team-A 受控機群命名空間的開發人員,需要在機群管理員中樞叢集的命名空間中讀取與寫入 Kubernetes 資源。 開發人員也需要在所在成員叢集的 team-A 命名空間中讀取 Kubernetes 物件。 因此,平台管理員會在艦隊範圍內指派 Azure Kubernetes Fleet Manager RBAC Writer ,在管理艦隊命名空間範圍內指派 Azure Kubernetes Fleet Manager RBAC Reader for Member Clusters ,以符合這些需求。

在預覽期間,Kubernetes 自訂資源(CR)的存取控制對於這些角色是不支援的。

後續步驟