藉由多承租人功能,可在單一 NSX 部署上跨承租人隔離安全性和網路組態。為了支援多承租人功能,NSX 4.0.1.1 引入了組織和專案。

NSX 原則資料模型為階層式,並具有兩個系統建立的分支:

  • /infra,由基礎結構管理員管理。
  • /orgs/default,用來保存多承租人建構。
備註: 您可以選擇性地為 NSX 部署設定多承租人功能,它的實作情況對現有 NSX 組態沒有任何影響。

下圖說明多承租人的資料模型。

資料模型

組織

NSX 部署具有一個預設組織。您無法建立、修改或刪除該組織。組織物件是系統在啟動時所建立的。系統中的所有第 0 層閘道和 Edge 叢集都可供組織存取。

組織物件由系統使用以下識別碼來建立:

/orgs/default

專案

在組織之下,您可以為您要從 NSX 環境中管理的每個承租人,各建立一個專案。專案會建立在 /orgs/default 之下,以支援每個承租人各有一組個別的組態:

  • 專案會在特定的隔離內容中,提供原則階層式模型。專案組態是在 /orgs/default/projects/<project-id>/infra 之下進行設定。
  • 您無法在專案之下建立第 0 層閘道和 Edge 叢集。企業管理員可以將 /infra 空間中的第 0 層閘道和 Edge 叢集提供給組織共用,從而就可供組織下的專案使用。
  • 專案有權存取已從 /infra 空間共用的某些物件和組態。
  • 您可以從 infra 空間建立規則,以套用至專案中虛擬機器。若要從 infra 空間建立這些規則,請利用專案預設群組,或者建立具有動態成員資格或虛擬機器靜態成員資格的群組。
  • 除了從 infra 空間建立規則之外,不支援從 infra 空間來設定其他專案資源。例如,您無法使用專案中虛擬機器/專案預設群組以外的靜態成員,在組織下建立群組。不支援從基礎結構空間來設定屬於專案的第 1 層閘道。必須從專案內來設定專案資源。

您可以發出以下 API 呼叫,以在組織之下建立專案:

PATCH /policy/api/v1/orgs/default/projects/<project-id>

建立專案時,請指定專案將使用的第 0 層閘道和 Edge 叢集。可將此第 0 層閘道用於該專案內的所有組態。配置給專案的 Edge 叢集必須屬於預設傳輸區域。此傳輸區域是建立專案網路的位置。

範例要求:

URL:

PATCH https:/{{nsx-manager-ip}}/policy/api/v1/orgs/default/projects/Project-Dev

本文:

{
    "site_infos": [
        {
            "edge_cluster_paths": [
                "/infra/sites/default/enforcement-points/default/edge-clusters/ca1b2a4f-057d-42da-b3b8-cf218b1c1a51"
            ],
            "site_path": "/infra/sites/default"
        }
    ],
    "tier_0s": [
        "/infra/tier-0s/Tier0GatewayTest"
    ]
}

建立專案時,會建立一些預設物件,例如預設網域、安全原則和預設群組。您可以根據自己的需求,選擇建立多個專案。

建立專案後,您可以發出 API 呼叫,以完成 DHCP、第 1 層閘道和區段等的網路組態。

備註: 若要使專案管理員能夠將區段或第 1 層閘道連線至第 0 層閘道或第 0 層 VRF,請指派其他自訂角色給具有專案管理員角色的使用者。您指派的自訂角色必須對系統第 0 層閘道具有讀取存取權。這樣,專案管理員才能檢視系統中的所有第 0 層閘道。有關建立自訂角色的詳細資料,請參閱 建立或管理自訂角色

建立自訂角色時,請選取網路,並將所有權限重設為。在設定權限對話方塊中,選取網路 > 連線,然後將第 0 層閘道權限設定為唯讀。

資源配額

您可以使用限制,來定義專案中資源的配額。配額可讓您針對給定專案的特定資源,定義最大限制。如果未定義任何限制,則會套用系統預設限制。

發出以下 API 呼叫,以定義專案的限制:
PATCH /policy/api/v1/infra/constraints/<contraint-id>
範例要求:
URL:
PATCH https://{{nsx-manager-ip}}/policy/api/v1/infra/constraints/c-1
本文:
{
    "display_name": "TestConstraint",
    "constraint_expression": {
        "resource_type": "EntityInstanceCountConstraintExpression",
        "count": 10,
        "operator": "<="
    },
    "target": {
        "path_prefix": "/orgs/default/projects/project-1",
        "target_resource_type": "Group"
    }
}