配置存储政策

本文档介绍如何为 GKE on VMware 集群配置虚拟机存储政策

使用虚拟机存储政策时,集群节点的存储空间分布在 vSphere 环境中的多个数据存储区中。此功能以基于存储政策的管理为基础,可让您根据应用要求和集群配置定义存储政策。

将标记应用于数据存储区

您的 vSphere 环境必须至少有两个可用于此练习的数据存储区

托管用户集群节点的 vSphere 集群必须有权访问您用于此练习的两个数据存储区,以及管理员集群使用的数据存储区。

您用于应用标记的 vCenter 账号必须拥有根 vCenter Server 的以下 vSphere 标记权限

  • vSphere Tagging.Create vSphere Tag
  • vSphere 标记。创建 vSphere 标记类别
  • vSphere 标记。分配或取消分配 vSphere 标记

在 vSphere 客户端中,为您选择用于本练习的每个数据存储区分配相同的标记。如需查看相关说明,请参阅为数据存储区分配标记

如需了解详情,请参阅 vSphere 标记和属性

创建存储政策

在 vSphere 客户端中,为基于标记的放置创建虚拟机存储政策。在存储政策中,指定您应用于所选数据存储区的标记。如需查看相关说明,请参阅为基于标记的放置创建虚拟机存储政策

如需了解详情,请参阅虚拟机存储政策

如果您使用的是 vSAN 数据存储区,请参阅 vSAN 存储政策

创建用户集群

本部分举例说明如何创建使用存储政策的用户集群。集群具有高可用性控制平面,因此有三个控制平面节点。除了控制平面节点之外,还有六个工作器节点,三个位于一个节点池中,三个位于第二个节点池中。所有节点都使用静态 IP 地址。

首先按照创建用户集群 (ControlPlane V2) 中的说明操作。

填写用户集群配置文件时:

  • 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 中的节点会使用该数据存储区,且不使用存储政策。

继续按照创建用户集群 (Controlplane V2) 中所述创建用户集群。