ストレージ ポリシーを構成する

このドキュメントでは、GKE on VMware クラスタの VM ストレージ ポリシーを構成する方法について説明します。

VM ストレージ ポリシーを使用すると、クラスタノードのストレージが vSphere 環境の複数のデータストアに分散されます。この機能はストレージ ポリシーベースの管理に基づいており、アプリケーションの要件とクラスタの構成に基づいてストレージ ポリシーを定義できます。

データストアにタグを適用する

vSphere 環境には、この演習に使用できるデータストアが 2 つ以上必要です。

ユーザー クラスタのノードをホストする vSphere クラスタは、この演習で使用する 2 つのデータストアと、管理クラスタで使用されるデータストアにアクセスできる必要があります。

タグの適用に使用する vCenter アカウントには、ルート vCenter Server に対する次の vSphere のタグ付け権限が必要です。

  • vSphere Tagging.Create vSphere タグ
  • vSphere Tagging.Create vSphere タグカテゴリ
  • vSphere Tagging.Assign または vSphere タグ付け解除

vSphere クライアントで、この演習に使用するすべてのデータストアに同じタグを割り当てます。手順については、データストアへのタグの割り当てをご覧ください。

詳細については、vSphere のタグおよび属性をご覧ください。

ストレージ ポリシーを作成する

vSphere クライアントで、タグベースのプレースメント用の VM ストレージ ポリシーを作成します。ストレージ ポリシーで、選択したデータストアに適用したタグを指定します。手順については、タグベースの配置用に仮想マシン ストレージ ポリシーを作成をご覧ください。

詳細については、仮想マシン ストレージ ポリシーの作成と管理をご覧ください。

vSAN データストアを使用している場合は、vSAN のポリシーをご覧ください。

ユーザー クラスタの作成

このセクションでは、ストレージ ポリシーを使用するユーザー クラスタの作成方法の例を示します。クラスタには高可用性コントロール プレーンがあるため、3 つのコントロール プレーン ノードがあります。コントロール プレーン ノードに加えて、6 つのワーカーノード(3 つは 1 つのノードプールに、3 つは 2 番目のノードプールに)があります。すべてのノードが静的 IP アドレスを使用します。

まず、ユーザー クラスタを作成する(ControlPlane V2)の手順を行います。

ユーザー クラスタの構成ファイルに次のように入力します。

  • vCenter.storagePolicyName の値を既存のストレージ ポリシーの名前に設定します。vCenter.datastore の値は設定しないでください。

  • 2 つのノードプールを指定します。最初のノードプールでは、データストアを指定せず、ストレージ ポリシーも指定しないでください。2 番目のノードプールでは、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 ブロック ファイルには、ワーカーノードが 6 つしかなくてもアドレスが 7 つあります。その追加の IP アドレスは、クラスタのアップグレード、更新、自動修復に必要なものです。

  • コントロール プレーン ノード 3 つの静的 IP アドレスは、ユーザー クラスタ構成ファイルの network.controlPlaneIPBlock セクションで指定されます。このブロックに追加の IP アドレスは必要ありません。

  • masterNode.replicas フィールドは 3 に設定されているため、コントロール プレーン ノードが 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 のノードはそのデータストアを使用し、ストレージ ポリシーを使用しません。

ユーザー クラスタを作成する(Controlplane V2)の説明に沿って、ユーザー クラスタの作成を続行します。