第25章 VMWare vSphere の設定
OpenShift Container Platform は、VMware vSphere VMDK を使用して PersistentVolume をサポートするように設定できます。この設定には、アプリケーションデータについて VMware vSphere VMDK を永続ストレージとして使用する ことが含まれます。
vSphere Cloud Provider は OpenShift Container Platform で vSphere で管理されたストレージを使用することを許可し、Kubernetes が使用するすべてのストレージプリミティブをサポートします。
- PersistentVolume (PV)
- PersistentVolumesClaim (PVC)
- StorageClass
ステートフルなコンテナー化されたアプリケーションによって要求される PersistentVolume は、VMware vSAN、VVOL、VMFS、または NFS データストアでプロビジョニングできます。
Kubernetes PV は Pod 仕様で定義されます。これらは動的プロビジョニングの使用時に静的プロビジョニングまたは PVC を使用する場合 (これは推奨される方法です)、VMDK ファイルを直接参照できます。
vSphere Cloud Provider への最新更新は Kubernetes 用の vSphere ストレージ にあります。
25.1. 作業を開始する前に
25.1.1. 要件
VMware vSphere
スタンドアロンの ESXi はサポートされません。
- 完全な VMware 検証設計 をサポートする場合、vSphere バージョン 6.0.x の推奨される最小バージョンの 6.7 U1b が必要になります。
vSAN、VMFS および NFS がサポートされます。
- vSAN サポートは、1 つの vCenter の 1 つのクラスターに制限されます。
OpenShift Container Platform 3.11 がサポートされており、vSphere 7 クラスターにデプロイされます。vSphere インツリーストレージドライバーを使用する場合は、vSAN、VMFS、および NFS ストレージオプションもサポートされます。
前提条件
各ノードの仮想マシンに VMware ツールをインストールする必要があります。詳しい情報は、VMware ツールのインストール を参照してください。
追加の設定およびトラブルシューティングにオープンソース VMware govmomi
CLI ツールを使用できます。以下は、govc
CLI 設定例になります。
export GOVC_URL='vCenter IP OR FQDN' export GOVC_USERNAME='vCenter User' export GOVC_PASSWORD='vCenter Password' export GOVC_INSECURE=1
25.1.1.1. パーミッション
ロールを作成し、これを vSphere Cloud Provider に割り当てます。必要な 特権 セットを持つ vCenter ユーザーが必要です。
通常、vSphere Cloud Provider に指定される vSphere ユーザーには以下のパーミッションがなければなりません。
-
folder
、host
、datacenter、datastore folder、 datastore cluster などのノード仮想マシンの親エンティティーのRead
パーミッション。 -
vsphere.conf
で定義されるリソースプールのVirtualMachine.Inventory.Create/Delete
パーミッション: これは、テスト仮想マシンを作成し、削除するために使用されます。
カスタムロール、ユーザー、ロールの割り当ての作成手順については、vSphere Documentation Center を参照してください。
vSphere Cloud Provider は、複数の vCenter にまたがる OpenShift Container Platform クラスターをサポートします。上記のすべての特権がすべての vCenter に対して適切に設定されていることを確認します。
動的永続ボリュームの作成が推奨される方法です。
ロール | 権限 | エンティティー | 子への伝播 |
---|---|---|---|
manage-k8s-node-vms | Resource.AssignVMToPool, VirtualMachine.Config.AddExistingDisk, VirtualMachine.Config.AddNewDisk, VirtualMachine.Config.AddRemoveDevice, VirtualMachine.Config.RemoveDisk, VirtualMachine.Inventory.Create, VirtualMachine.Inventory.Delete, VirtualMachine.Config.Settings | クラスター、ホスト、VM フォルダー | はい |
manage-k8s-volumes | Datastore.AllocateSpace, Datastore.FileManagement (低レベルのファイル操作) | データストア | いいえ |
k8s-system-read-and-spbm-profile-view | StorageProfile.View (プロファイルで起動されるストレージビュー) | vCenter | いいえ |
読み取り専用 (既存のデフォルトロール) | System.Anonymous System.Read System.View | データセンター、データストアクラスター、データストアストレージフォルダー | いいえ |
静的にプロビジョニングされる PV にバインドする PVC を使用し、削除する回収ポリシーを設定する場合に、Datastore.FileManagement は manage-k8s-volumes ロールにのみ必要になります。PVC が削除される場合、関連付けられる静的にプロビジョニングされた PV も削除されます。
ロール | 権限 | Entities | 子への伝播 |
---|---|---|---|
manage-k8s-node-vms | VirtualMachine.Config.AddExistingDisk, VirtualMachine.Config.AddNewDisk, VirtualMachine.Config.AddRemoveDevice, VirtualMachine.Config.RemoveDisk | VM フォルダー | はい |
manage-k8s-volumes | Datastore.FileManagement (低レベルのファイル操作) | データストア | いいえ |
読み取り専用 (既存のデフォルトロール) | System.Anonymous System.Read System.View | vCenter、データセンター、データストアクラスター、データストアストレージフォルダー、クラスター、ホスト | No … |
手順
- VM フォルダー を作成し、OpenShift Container Platform ノード VM をこのフォルダーに移動します。
各ノード仮想マシンについて
disk.EnableUUID
パラメーターをtrue
に設定します。この設定により、VMware vSphere の Virtual Machine Disk (VMDK) が一貫性のある UUID を常に仮想マシンに提示し、ディスクが正常にマウントされるようになります。クラスターに参加するすべての仮想マシンノードでは、
disk.EnableUUID
パラメーターがtrue
に設定される必要があります。この値を設定するには、vSphere コンソールまたはgovc
CLI ツールのいずれかの手順を実行します。-
vSphere HTML クライアントから、VM properties
VM Options Advanced Configuration Parameters disk.enableUUID=TRUEに移動します。 または、govc CLI を使用してノード仮想マシンのパスを見つけます。
$govc ls /datacenter/vm/<vm-folder-name>
すべての VM について、
disk.EnableUUID
をtrue
に設定します。$govc vm.change -e="disk.enableUUID=1" -vm='VM Path'
-
vSphere HTML クライアントから、VM properties
OpenShift Container Platform ノード仮想マシンが仮想マシンテンプレートで作成されている場合、disk.EnableUUID=1
をテンプレート仮想マシンに設定することができます。このテンプレートからクローン作成される仮想マシンはこのプロパティーを継承します。
25.1.1.2. OpenShift Container Platform と vMotion の使用
OpenShift Container Platform は通常、コンピュートのみの vMotion をサポートします。Storage vMotion を使用すると問題が発生する可能性があるため、これはサポートされていません。
Pod で vSphere ボリュームを使用している場合、手動でまたは Storage vMotion を使用して仮想マシンをデータストア間で移行すると、OpenShift Container Platform 永続ボリューム (PV) オブジェクト内で無効な参照が発生します。これらの参照により、影響を受ける Pod が起動しなくなり、データが失われる可能性があります。
同様に、OpenShift Container Platform は、仮想マシンのプロビジョニング用にデータストアクラスターを、または PV の動的または静的プロビジョニング用にデータストアクラスターを使用するか、PV の動的または静的プロビジョニング用にデータストアクラスターの一部であるデータストアを使用した VMDK のデータストア間での選択的な移行をサポートしません。