Google Cloud Managed Lustre 執行個體會在 Google 管理的網路中佈建,並使用私人服務存取權連線至您的虛擬私有雲 (VPC)。
您可以透過下列任一網路設定,將 Managed Lustre 執行個體連線至用戶端 Compute Engine VM 或 Google Kubernetes Engine 叢集:
相同虛擬私有雲網路:將用戶端資源和 Managed Lustre 執行個體連線至相同的虛擬私有雲網路。
獨立的虛擬私有雲網路:在獨立的虛擬私有雲網路中部署用戶端資源,並使用 Network Connectivity Center 連接兩個網路。如需設定 NCC 的操作說明,請參閱 Network Connectivity Center 說明文件。
無論是哪種設定,請按照這個頁面的操作說明,設定要佈建 Managed Lustre 執行個體的 VPC 網路。如果您使用不同的虛擬私有雲網路,操作說明會包含註解,說明用戶端虛擬私有雲網路的必要步驟。
所需權限
您必須具備下列 IAM 權限:
serviceusage.services.enablecompute.networks.createcompute.addresses.createcompute.addresses.getcompute.firewalls.createservicenetworking.services.addPeering
如要授予這些權限,請新增下列所有預先定義的角色:
- 服務使用情形管理員 (
roles/serviceusage.serviceUsageAdmin) - Compute 網路管理員 (
roles/compute.networkAdmin) - Compute 安全管理員 (
roles/compute.securityAdmin)
或者,建立包含特定權限的自訂角色。
如要將角色授予使用者:
Google Cloud 控制台
前往 Google Cloud 控制台的「IAM」(身分與存取權管理) 頁面。
按一下「授予存取權」。
在「New principals」(新增主體) 欄位中,輸入使用者的電子郵件地址。
在「Select a role」(選取角色) 下拉式選單中,選取要授予的角色。
如要授予多個角色,請按一下「新增其他角色」,然後選取下一個角色。
按一下 [儲存]。
gcloud
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:EMAIL_ADDRESS" \
--role=ROLE
建立虛擬私有雲並建立對等互連
如要建立虛擬私有雲網路,並為 Managed Lustre 設定私人服務存取權連線,請按照下列步驟操作:
Google Cloud 控制台
啟用 Service Networking API。
建立自訂模式的虛擬私有雲網路:
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下「Create VPC network」(建立虛擬私有雲網路)。
輸入網路的「Name」(名稱)。
取消選取「自動設定 MTU」,然後在「最大傳輸單位 (MTU)」欄位中輸入
8896。在「Subnet creation mode」(子網路建立模式) 底下選取 [Custom] (自訂)。
為 GKE 或 Compute Engine 資源建立主要子網路:
- 在「New subnet」(新的子網路) 區段中,輸入子網路的「名稱」。
- 選擇「Region」(區域)。
- 在「IPv4 range」(IPv4 範圍) 欄位中,輸入主要 IPv4 範圍 (例如
10.128.0.0/20)。 - 按一下「完成」。
- 按一下「建立」,建立虛擬私有雲網路。
為私人服務存取權分配 IP 範圍。
這個內部 IP 範圍用於私人服務存取連線,可將您的虛擬私有雲網路與 Google 管理的網路對等互連,並在該網路中佈建 Managed Lustre 資源。這個分配範圍用於為 Managed Lustre 執行個體提供 IP,且不得與虛擬私有雲網路中的任何子網路重疊。
每個 Managed Lustre 執行個體都需要連續的 CIDR 區塊,且前置長度至少為 23。
建議您建立較大的 /20 IP 範圍,以便建立多個 Managed Lustre 執行個體,或使用其他 Google Cloud 服務。
- 在「虛擬私有雲網路」頁面中,按一下虛擬私有雲網路的名稱。
- 選取「私人服務存取」分頁標籤。
- 選取「Allocated IP ranges for services」(已分配的服務 IP 範圍) 分頁標籤。
- 按一下「Allocate IP range」(分配 IP 範圍)。
- 輸入已分配範圍的「Name」(名稱) 與「Description」(說明) (例如
Managed Lustre VPC Peering)。 - 指定 IP 位址範圍:
- 如要讓 Google 選取可用範圍,請選取「自動」,然後輸入前置字串長度
20。 - 如要指定特定範圍,請選取「自訂」,然後輸入前置長度至少為
/23的 CIDR 區塊 (例如10.128.0.0/20)。 - 按一下「Allocate」(分配)。
請記下與已分配範圍相關聯的 CIDR 區塊。
在「Allocated IP ranges for services」(服務的已分配 IP 範圍) 表格中,找出您建立的範圍,並記下「Internal IP range」(內部 IP 範圍) 欄中的值 (例如
10.128.0.0/20)。您會在下一個步驟中,將這個範圍指定為來源。-
- 前往 Google Cloud 控制台的「Firewall policies」(防火牆政策) 頁面。
- 按一下「Create firewall rule」(建立防火牆規則)。
- 輸入防火牆規則的「Name」(名稱)。
- 在「Network」(網路) 欄位中,選取虛擬私有雲網路。
- 在「流量方向」部分,選取「輸入」。
- 「相符時執行的動作」請選取「允許」。
- 「目標」請選取「網路中的所有執行個體」。
- 「來源篩選器」請選取「IPv4 範圍」。
- 在「來源 IPv4 範圍」欄位中,輸入您在上一個步驟中記下的已分配範圍 CIDR 區塊。
- 在「Protocols and ports」(通訊協定和通訊埠) 下方,選取「Specified protocols and ports」(指定的通訊協定和通訊埠)。
- 勾選「TCP」核取方塊,然後在「Ports」(通訊埠) 欄位中輸入
988, 6988。 - 點選「建立」。
適用於個別虛擬私有雲網路:如果用戶端 VM 或 GKE 叢集位於透過 Network Connectivity Center 連線的個別虛擬私有雲網路,則兩個虛擬私有雲網路中的防火牆規則都必須允許來自已分配 IP 範圍的流量。重複「建立防火牆規則...」步驟,在用戶端虛擬私有雲網路中建立防火牆規則,允許來自已分配 CIDR 區塊的通訊埠
988和6988輸入 TCP 流量。 建立私人服務存取連線。
只有在佈建 Managed Lustre 執行個體的虛擬私有雲網路中,才需要這個連線。
- 在「虛擬私有雲網路」頁面中,按一下虛擬私有雲網路的名稱。
- 選取「私人服務存取」分頁標籤。
- 選取「Private connections to services」(私人服務連線) 分頁標籤。
- 點選「建立連線」。
- 在「Assigned allocation」(已指派的分配範圍) 清單中,選取您建立的已分配 IP 範圍。
- 按一下「連線」。
gcloud
啟用服務聯網。
gcloud services enable servicenetworking.googleapis.com建立自訂模式的虛擬私有雲網路。
gcloud compute networks create NETWORK_NAME \ --subnet-mode=custom \ --mtu=8896為 GKE 或 Compute Engine 資源建立主要子網路。
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --range=10.128.0.0/20 \ --region=REGION為私人服務存取權分配 IP 範圍。
這個內部 IP 範圍用於私人服務存取連線,可將您的虛擬私有雲網路與 Google 管理的網路對等互連,並在該網路中佈建 Managed Lustre 資源。這個分配範圍用於為 Managed Lustre 執行個體提供 IP,且不得與虛擬私有雲網路中的任何子網路重疊。
每個 Managed Lustre 執行個體都需要連續的 CIDR 區塊,且前置長度至少為 23。
建議您建立較大的 /20 IP 範圍,以便建立多個 Managed Lustre 執行個體,或使用其他 Google Cloud 服務。
gcloud compute addresses create IP_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=20 \ --description="Managed Lustre VPC Peering" \ --network=NETWORK_NAME取得與您在上一步建立的範圍相關聯的 CIDR 區塊。
CIDR_BLOCK=$( gcloud compute addresses describe IP_RANGE_NAME \ --global \ --format="value[separator=/](address, prefixLength)" )-
gcloud compute firewall-rules create FIREWALL_NAME \ --allow=tcp:988,tcp:6988 \ --network=NETWORK_NAME \ --source-ranges=$CIDR_BLOCK適用於個別虛擬私有雲網路:如果您的用戶端 VM 或 GKE 叢集位於透過 Network Connectivity Center 連線的個別虛擬私有雲網路,則兩個虛擬私有雲網路中的防火牆規則都必須允許來自已分配 IP 範圍 (
$CIDR_BLOCK) 的流量。再次執行firewall-rules create指令,在用戶端虛擬私有雲網路中建立防火牆規則:gcloud compute firewall-rules create CLIENT_FIREWALL_NAME \ --allow=tcp:988,tcp:6988 \ --network=CLIENT_NETWORK_NAME \ --source-ranges=$CIDR_BLOCK
建立私人服務存取連線。
gcloud services vpc-peerings connect \ --network=NETWORK_NAME \ --ranges=IP_RANGE_NAME \ --service=servicenetworking.googleapis.com只有在佈建 Managed Lustre 執行個體的虛擬私有雲網路中,才需要這個連線。
為多個 NIC 建立額外的子網路
如果您打算使用多個網路介面卡 (多 NIC) 匯總頻寬,則必須在虛擬私有雲網路中,為每個 NIC 建立個別的子網路。
如要使用多 NIC,您必須使用 Compute Engine 機型,並將多個實體 NIC 連接至一般 VPC。附加至具有 RDMA 網路設定檔的虛擬私有雲的 NIC,無法用於增加一般網路頻寬。詳情請參閱「網路和 GPU 機器」。
如要為額外的實體 NIC 建立子網路,請按照下列步驟操作:
Google Cloud 控制台
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下虛擬私有雲網路的名稱。
按一下 [新增子網路]。
在「New subnet」(新的子網路) 區段中:
- 輸入子網路的「名稱」。
- 選擇「Region」(區域)。
- 輸入「IP address range」(IP 位址範圍),例如
10.130.0.0/20。 - 按一下「新增」。
gcloud
gcloud compute networks subnets create SUBNET_NAME_2 \
--network=NETWORK_NAME \
--range=10.130.0.0/20 \
--region=REGION
針對每個額外 NIC 重複這個步驟。確認每個子網路的 IP 範圍不會重疊。
VPC Service Controls
Managed Lustre 支援 VPC Service Controls (VPC-SC)。詳情請參閱「使用服務範圍保護執行個體」。
排解虛擬私有雲設定問題
權限遭拒,無法為服務「servicenetworking.googleapis.com」新增對等互連
ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.
這項錯誤表示您的使用者帳戶沒有 servicenetworking.services.addPeering IAM 權限。
請參閱「使用 IAM 控管存取權」一文,瞭解如何將下列其中一個角色新增至帳戶:
roles/compute.networkAdmin或roles/servicenetworking.networksAdmin
無法修改 CreateConnection 中的分配範圍
ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."
如果您已在這個網路上建立 VPC 對等互連,但 IP 範圍不同,系統就會傳回這個錯誤。兩個可能的解決方案如下:
取代現有 IP 範圍:
Google Cloud 控制台
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下虛擬私有雲網路的名稱。
選取「私人服務存取」分頁標籤。
在「私人服務連線」分頁中,選取「私人服務連線」分頁標籤。
按一下連線名稱 (例如
servicenetworking-googleapis-com)。在「Assigned allocation」(已指派的分配範圍) 清單中,選取新的分配範圍,並清除要取代的分配範圍核取方塊。
按一下 [儲存]。
gcloud
gcloud services vpc-peerings update \
--network=NETWORK_NAME \
--ranges=IP_RANGE_NAME \
--service=servicenetworking.googleapis.com \
--force
或者,將新的 IP 範圍新增至現有連線:
Google Cloud 控制台
前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。
按一下虛擬私有雲網路的名稱。
選取「私人服務存取」分頁標籤。
在「私人服務連線」分頁中,選取「私人服務連線」分頁標籤。
按一下連線名稱。
在「已指派的分配範圍」清單中,保留現有已分配的範圍,並選取新的分配範圍。
按一下 [儲存]。
gcloud
擷取對等互連的現有 IP 範圍清單:
EXISTING_RANGES="$( gcloud services vpc-peerings list \ --network=NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --format="value(reservedPeeringRanges.list())" \ --flatten=reservedPeeringRanges )然後將新範圍新增至對等互連:
gcloud services vpc-peerings update \ --network=NETWORK_NAME \ --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \ --service=servicenetworking.googleapis.com