このドキュメントでは、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)の説明に沿って、ユーザー クラスタの作成を続行します。