設定儲存空間政策

本文說明如何為 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 儲存空間政策

詳情請參閱 VM 儲存空間政策

如果您使用 vSAN 資料儲存庫,請參閱 vSAN 儲存空間政策

建立使用者叢集

在本練習中,您將建立具有高可用性控制層的使用者叢集,因此會有三個控制層節點。除了控制層節點外,還有六個工作站節點,其中三個位於一個節點集區,另外三個則位於第二個節點集區。所有節點都使用靜態 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"
...

以下是上述範例中需要瞭解的重要事項:

  • 工作站節點的靜態 IP 位址是在 IP 區塊檔案中指定。IP 區塊檔案有七個位址,但只有六個工作節點。叢集升級、更新和自動修復時,需要額外的 IP 位址。

  • 三個控制層節點的靜態 IP 位址是在使用者叢集設定檔的 network.controlPlaneIPBlock 區段中指定。這個區塊不需要額外的 IP 位址。

  • masterNode.replicas 欄位設為 3,因此會有三個控制層節點。在 masterNode 下方,vsphere.datastorevsphere.storagePolicyName 未指定任何項目。因此,控制層節點會使用 vCenter.storagePolicyName 中指定的儲存空間政策。

  • 使用者叢集設定檔包含 vCenter.storagePolicy 的值,但不包含 vCenter.datastore 的值。如果集區未指定自己的儲存空間政策或資料儲存庫,節點就會使用指定的儲存空間政策。

  • node-pool-1 底下,vsphere.datastorevsphere.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 下方,為 addressdatacenterclusterresourcePool 指定值。

  • 指定 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 下方,有為 addressdatacenterclusterresourcePool 指定的值。因此,使用者叢集會使用與管理員叢集不同的 vCenter Server、資料中心、vSphere 叢集和資源集區。

  • 已為 network.vCenter.networkName 指定值。

  • masterNode.replicas 欄位設為 3,因此會有三個控制層節點。在 masterNode 下方,vsphere.datastorevsphere.storagePolicyName 未指定任何項目。因此,控制層節點會使用 vCenter.storagePolicyName 中指定的儲存空間政策。

  • node-pool-1 底下,vsphere.datastorevsphere.storagePolicyName 未指定任何內容。因此 node-pool-1 中的節點會使用 vCenter.storagePolicyName 中指定的儲存空間政策。

  • node-pool-2 下,vsphere.datastore 的值為 my-np2-datastore,因此 node-pool-2 中的節點會使用該資料儲存區,且不會使用儲存空間政策。

按照「建立使用者叢集」一文的說明,繼續建立使用者叢集。

後續步驟