設定儲存空間政策

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 中的節點會使用該資料儲存庫,而不會使用儲存空間政策。

按照「建立使用者叢集」一文所述,繼續建立使用者叢集。

後續步驟