VM 儲存空間政策可自動為 Google Distributed Cloud 叢集放置資料儲存庫。您可以使用政策,在符合容量和效能需求的儲存空間上佈建叢集 VM,而不必指定個別資料儲存庫。
總覽
在 vSphere 中,儲存空間政策管理 (SPBM) 可協助根據虛擬機器的應用程式需求調整儲存空間。它提供儲存空間政策架構,可做為各種資料服務和儲存空間解決方案的單一整合控制面板。
在 Google Distributed Cloud 中,您可以指定儲存空間政策,做為指定datastores的替代方案。您可根據應用程式需求定義儲存空間政策,然後由 vSphere 自動選取及管理資料儲存庫。這可減少與儲存空間相關的負擔和維護作業。
繼承
您可以為使用者叢集、使用者叢集中的節點集區,或使用者叢集中的一組控制層節點指定儲存空間政策。只要管理員叢集具備高可用性控制層,且沒有任何 Windows 節點集區,您也可以為管理員叢集指定儲存空間政策。
如果您為使用者叢集指定儲存空間政策,使用者叢集中的節點集區會繼承該政策。如果您為個別節點集區指定儲存空間政策,系統會使用該政策,而非叢集層級的儲存空間政策。同樣地,如果您為個別節點集區指定資料儲存庫,系統會使用該資料儲存庫,而非叢集層級的儲存空間政策。
在已啟用 Controlplane V2 的使用者叢集中,控制層節點會沿用叢集層級的儲存空間政策。如果您為控制層節點指定儲存空間政策或資料儲存庫,系統會使用該儲存空間政策或資料儲存庫,而非叢集層級的儲存空間政策。
將儲存空間政策套用至資料儲存庫
您可以將儲存空間政策套用至單一或多個資料儲存庫。如果將儲存空間政策套用至多個資料儲存庫,管理員叢集、使用者叢集或節點集區的儲存空間資源,可能會分散在這些資料儲存庫中。
範例:建立儲存空間政策和使用者叢集
本節提供建立儲存空間政策和使用者叢集的範例。這個範例說明儲存空間政策可套用至兩個資料儲存庫。
為資料儲存庫套用標記
如要執行本範例中的步驟,vSphere 環境必須至少有兩個datastores。
託管使用者叢集節點的 vSphere 叢集必須能存取您打算用於本練習的資料儲存庫。系統會執行預檢來驗證這項設定。
您用來套用標記的 vCenter 帳戶,必須在根 vCenter Server 上具備下列 vSphere 標記權限:
- vSphere Tagging.Create vSphere Tag
- vSphere 標記。建立 vSphere 標記類別
- vSphere 標記。指派或取消指派 vSphere 標記
在 vSphere Client 中,將相同標記指派給您選擇用於本練習的各個資料儲存庫。如需操作說明,請參閱「將標記指派給資料儲存庫」。
詳情請參閱「vSphere 標記和屬性」。
建立儲存空間政策
在 vSphere Client 中,建立 VM 儲存空間政策,以便根據標記進行配置。在儲存空間政策中,指定您套用至所選資料儲存庫的標記。如需操作說明,請參閱「為標記式配置建立 VM 儲存空間政策」。
詳情請參閱「VM 儲存空間政策」。
如果您使用的是 vSAN 資料儲存庫,請參閱「vSAN 儲存空間政策」。
建立使用者叢集
在本練習中,您將建立具有高可用性控制層的使用者叢集,因此會有三個控制層節點。除了控制層節點外,還有六個 worker 節點,其中三個在一個節點集區中,另外三個在第二個節點集區中。所有節點都使用靜態 IP 位址。
首先,請按照「建立使用者叢集」中的操作說明進行。
填寫使用者叢集設定檔時,請注意下列事項:
將
vCenter.storagePolicyName的值設為現有儲存空間政策的名稱。請勿設定vCenter.datastore的值。指定兩個節點集區。第一個節點集區不指定資料儲存庫,也不指定儲存空間政策。針對第二個節點集區,將
vsphere.datastore的值設為現有資料儲存庫的名稱。
叢集設定檔範例
以下是 IP 區塊檔案和使用者叢集設定檔部分的範例。
user-ipblock.yaml
blocks:
- netmask: 255.255.255.0
gateway: 172.16.21.1
ips:
- ip: 172.16.21.2
- ip: 172.16.21.3
- ip: 172.16.21.4
- ip: 172.16.21.5
- ip: 172.16.21.6
- ip: 172.16.21.7
- ip: 172.16.21.8
user-cluster-yaml
apiVersion: v1
kind: UserCluster
...
vCenter:
storagePolicyName: "my-storage-policy"
network:
hostConfig:
dnsServers:
- "203.0.113.2"
- "198.51.100.2"
ntpServers:
- "216.239.35.4"
ipMode:
type: "static"
ipBlockFilePath: "user-ipblock.yaml"
controlPlaneIPBlock:
netmask: "255.255.255.0"
gateway: "172.16.21.1"
ips:
- ip: "172.16.21.9"
hostname: "cp-vm-1"
- ip: "172.16.21.10"
hostname: "cp-vm-2"
- ip: "172.16.21.11"
hostname: "cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: MetalLB
metalLB:
addressPools:
- name: "address-pool-1"
addresses:
- "172.16.21.30-172.16.21.39"
...
enableControlplaneV2: true
masterNode:
cpus: 4
memoryMB: 8192
replicas: 3
nodePools:
- name: "worker-pool-1"
enableLoadBalancer: true
- name: "worker-pool-2"
vSphere:
datastore: "my-np2-datastore"
...
以下是上述範例中需要瞭解的重要事項:
worker 節點的靜態 IP 位址是在 IP 區塊檔案中指定。雖然只有六個 worker 節點,但 IP 區塊檔案有七個位址。在叢集升級、更新和自動修復期間,需要額外的 IP 位址。
三個控制層節點的靜態 IP 位址,是在使用者叢集設定檔的
network.controlPlaneIPBlock區段中指定。這個區塊不需要額外的 IP 位址。masterNode.replicas欄位設為3,因此會有三個控制層節點。在masterNode下,未指定vsphere.datastore或vsphere.storagePolicyName。因此,控制層節點會使用vCenter.storagePolicyName中指定的儲存空間政策。使用者叢集設定檔包含
vCenter.storagePolicy的值,但不包含vCenter.datastore的值。如果集區未指定儲存空間政策或資料儲存庫,則集區中的節點會使用指定的儲存空間政策。在
node-pool-1下,未指定vsphere.datastore或vsphere.storagePolicyName。因此,node-pool-1中的節點會使用vCenter.storagePolicyName中指定的儲存空間政策。在
node-pool-2下,vsphere.datastore的值為my-np2-datastore,因此node-pool-2中的節點會使用該資料儲存庫,而不會使用儲存空間政策。
按照「建立使用者叢集」一文所述,繼續建立使用者叢集。
在與管理員叢集不同的資料中心建立使用者叢集
使用者叢集可以位於與管理員叢集不同的資料中心。這兩個資料中心可以使用同一個 vCenter Server 執行個體,也可以使用不同的 vCenter Server 執行個體。
本節舉例說明如何建立使用者叢集,並使用與管理員叢集不同的 vCenter Server 執行個體。由於使用者和管理員叢集使用不同的 vCenter Server 執行個體,因此也位於不同的資料中心。
首先,請按照「建立使用者叢集」中的操作說明進行。
填寫使用者叢集設定檔時,請注意下列事項:
將
vCenter.storagePolicyName的值設為現有儲存空間政策的名稱。請勿設定vCenter.datastore的值。在
vCenter下方,指定address、datacenter、cluster和resourcePool的值。指定
network.vCenter.networkName的值。指定兩個節點集區。第一個節點集區不指定資料儲存庫,也不指定儲存空間政策。針對第二個節點集區,將
vsphere.datastore的值設為現有資料儲存庫的名稱。
叢集設定檔範例
以下是 IP 區塊檔案和使用者叢集設定檔部分的範例。
user-ipblock.yaml
blocks:
- netmask: 255.255.255.0
gateway: 172.16.21.1
ips:
- ip: 172.16.21.2
- ip: 172.16.21.3
- ip: 172.16.21.4
- ip: 172.16.21.5
- ip: 172.16.21.6
- ip: 172.16.21.7
- ip: 172.16.21.8
user-cluster-yaml
apiVersion: v1
kind: UserCluster
...
vCenter:
address: "my-vcenter-server-2.my-domain.example"
datacenter: "my-uc-data-center"
cluster: "my-uc-vsphere-cluster"
resourcePool: "my-uc-resource-pool"
storagePolicyName: "my-storage-policy"
network:
vCenter:
networkName: "my-uc-network"
hostConfig:
dnsServers:
- "203.0.113.2"
- "198.51.100.2"
ntpServers:
- "216.239.35.4"
ipMode:
type: "static"
ipBlockFilePath: "user-ipblock.yaml"
controlPlaneIPBlock:
netmask: "255.255.255.0"
gateway: "172.16.21.1"
ips:
- ip: "172.16.21.9"
hostname: "cp-vm-1"
- ip: "172.16.21.10"
hostname: "cp-vm-2"
- ip: "172.16.21.11"
hostname: "cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: MetalLB
metalLB:
addressPools:
- name: "address-pool-1"
addresses:
- "172.16.21.30-172.16.21.39"
...
enableControlplaneV2: true
masterNode:
cpus: 4
memoryMB: 8192
replicas: 3
nodePools:
- name: "worker-pool-1"
enableLoadBalancer: true
- name: "worker-pool-2"
vSphere:
datastore: "my-np2-datastore"
...
以下是上述範例中需要瞭解的重要事項:
使用者叢集設定檔包含
vCenter.storagePolicy的值,但不包含vCenter.datastore的值。如果節點集區未指定儲存空間政策或資料儲存庫,則集區中的節點會使用指定的儲存空間政策。在
vCenter下,有為address、datacenter、cluster和resourcePool指定的值。因此,使用者叢集會使用與管理員叢集不同的 vCenter Server、資料中心、vSphere 叢集和資源集區。network.vCenter.networkName已指定值。masterNode.replicas欄位設為3,因此會有三個控制層節點。在masterNode下,未指定vsphere.datastore或vsphere.storagePolicyName。因此,控制層節點會使用vCenter.storagePolicyName中指定的儲存空間政策。在
node-pool-1下,未指定vsphere.datastore或vsphere.storagePolicyName。因此,node-pool-1中的節點會使用vCenter.storagePolicyName中指定的儲存空間政策。在
node-pool-2下,vsphere.datastore的值為my-np2-datastore,因此node-pool-2中的節點會使用該資料儲存庫,而不會使用儲存空間政策。
按照「建立使用者叢集」一文所述,繼續建立使用者叢集。