第21章 VMWare vSphere の設定
21.1. 概要
OpenShift Container Platform は、VMWare vSphere VMDK ボリュームをアプリケーションデータの永続ストレージとして使用するなど、VMWare vSphere VMDK ボリュームにアクセスするように設定できます。
vSphere クラウドプロバイダーは、OpenShift Container Platform 内での vSphere の管理対象ストレージの使用を許可します。vSphere クラウドプロバイダーは以下に対応しています。
- ボリューム
- 永続ボリューム
- ストレージクラスとボリュームのプロビジョニング
21.2. VMWare vSphere クラウドプロバイダーの有効化
VMware vSphere を有効化すると、各ノードの仮想マシンに VMware ツールをインストールする必要があります。詳しい情報は、「VMware ツールのインストール」を参照してください。
OpenShift Container Platform で VMWare vSphere クラウドプロバイダーを有効にするには、以下を実行します。
- VM フォルダーを作成し、OpenShift Container Platform ノード VM をこのフォルダーに移動します。
ノードの VM 名が正規表現
[a-z](()?[0-9a-z])?(\.[a-z0-9](([-0-9a-z])?[0-9a-z])?)*に従っていることを確認します。重要VM 名では以下が禁止されています。
- 数字から始めることはできません。
- 大文字を含めることはできません。
-
-以外の特殊文字を含めることはできません。 - 文字数は 3 文字未満、64 文字以上に指定できません。
各ノード VM で
disk.EnableUUIDパラメーターをTRUEに設定します。これにより VMDK は常に一貫した UUID を VM に提供し、ディスクが適切にマウントされるようになります。クラスターに参加するすべての仮想マシンノードについては、以下の GOVC ツールを使用する手順に従ってください。GOVC 環境をセットアップします。
export GOVC_URL='vCenter IP OR FQDN' export GOVC_USERNAME='vCenter User' export GOVC_PASSWORD='vCenter Password' export GOVC_INSECURE=1
ノード VM パスを見つけます。
govc ls /datacenter/vm/<vm-folder-name>
すべての VM で disk.EnableUUID を true に設定します。
govc vm.change -e="disk.enableUUID=1" -vm='VM Path'
注記OpenShift Container Platform ノード VM がテンプレート VM で作成されている場合、
disk.EnableUUID=1をテンプレート VM に設定することができます。このテンプレートからクローン作成される VM はこのプロパティーを継承します。
ロールを作成して、ロールを vSphere クラウドプロバイダーユーザーと vSphere エンティティーに割り当てます。vSphere クラウドプロバイダーでは、vCenter と対話するために以下の権限が必要になります。カスタムロール、ユーザーおよびロールの割り当てを作成する手順については、vSphere Documentation Center を参照してください。
ロール 権限 エンティティー 子への伝播 manage-k8s-node-vms
Resource.AssignVMToPool System.Anonymous System.Read System.View VirtualMachine.Config.AddExistingDisk VirtualMachine.Config.AddNewDisk VirtualMachine.Config.AddRemoveDevice VirtualMachine.Config.RemoveDisk VirtualMachine.Inventory.Create VirtualMachine.Inventory.Delete
クラスター、ホスト、VM フォルダー
必要
manage-k8s-volumes
Datastore.AllocateSpace Datastore.FileManagement System.Anonymous System.Read System.View
データストア
No
k8s-system-read-and-spbm-profile-view
StorageProfile.View System.Anonymous System.Read System.View
vCenter
No
ReadOnly
System.Anonymous System.Read System.View
データセンター、データストアクラスター、データストアストレージフォルダー
No
vSphere クラウドプロバイダーを有効にすると、ノード名が vCenter インベントリーの VM 名に設定されます。
21.3. VMWare vSphere 設定ファイル
VMWare vSphere について OpenShift Container Platform を設定するには、各ノードホストに /etc/origin/cloudprovider/vsphere.conf ファイルが必要です。
ファイルが存在しない場合は、ファイルを作成し、以下を追加します。
[Global]
user = "username" 1
password = "password" 2
server = "10.10.0.2" 3
port = "443" 4
insecure-flag = "1" 5
datacenter = "datacenter-name" 6
datastore = "datastore-name" 7
working-dir = "vm-folder-path" 8
vm-uuid = "vm-uuid" 9
[Disk]
scsicontrollertype = pvscsi- 1
- vSphere クラウドプロバイダーの vCenter ユーザー名。
- 2
- 指定されたユーザーの vCenter パスワード。
- 3
- vCenter サーバーの IP アドレスまたは FQDN。
- 4
- (オプション) vCenter サーバーのポート番号。デフォルトはポート
443になります。 - 5
- vCenter が自己署名証明書を使用している場合は
1に設定します。 - 6
- ノード VM がデプロイされているデータセンターの名前。
- 7
- ストレージクラスまたは動的プロビジョニングを使ったボリュームのプロビジョニングに使用されるデータストアの名前。データストアがストレージフォルダー内にある場合やデータストアがデータストアクラスターのメンバーである場合には、データストアの完全なパスを指定します。vSphere クラウドプロバイダーユーザーには、データストアを検索できるように、データストアクラスターまたはストレージフォルダーで読み取り権限が設定されている必要があります。
- 8
- (オプション) ノード VM が置かれている vCenter VM フォルダーパス。ノード VM がルートの VM フォルダーにある場合、空のパス (
working-dir = "") に設定することができます。 - 9
- (オプション) ノード VM の VM インスタンス UUID。空 (
vm-uuid = "") に設定することができます。空に設定する場合、これは仮想マシン上の /sys/class/dmi/id/product_serial ファイルから取得されます (root アクセス権が必要)。
21.4. マスターの設定
すべてのマスターでマスター設定ファイル (デフォルトは /etc/origin/master/master-config.yaml) を編集するか、または 作成し、apiServerArguments と controllerArguments の各セクションの内容を以下で更新します。
kubernetesMasterConfig:
admissionConfig:
pluginConfig:
{}
apiServerArguments:
cloud-provider:
- "vsphere"
cloud-config:
- "/etc/origin/cloudprovider/vsphere.conf"
controllerArguments:
cloud-provider:
- "vsphere"
cloud-config:
- "/etc/origin/cloudprovider/vsphere.conf"コンテナー化インストールをトリガーすると、/etc/origin と /var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、master-config.yaml は/etc/ ではなく /etc/origin/master になければなりません。
21.5. ノードの設定
適切な「ノード設定マップ」を編集して、
kubeletArgumentsセクションの内容を更新します。kubeletArguments: cloud-provider: - "vsphere" cloud-config: - "/etc/origin/cloudprovider/vsphere.conf"重要コンテナー化インストールをトリガーする際は、/etc/origin と /var/lib/origin のディレクトリーのみがマスターとノードのコンテナーにマウントされます。したがって、node-config.yaml は/etc/ ではなく /etc/origin/node になければなりません。
21.6. 設定変更の適用
マスターおよびノードのすべてのホストで OpenShift Container Platform サービスを起動または再起動し、設定の変更を適用します。「OpenShift Container Platform サービスの再起動」を参照してください。
# master-restart api # master-restart controllers # systemctl restart atomic-openshift-node
クラウドプロバイダーを使用しない状態から、使用するように切り替えると、エラーメッセージが表示されます。クラウドプロバイダーを追加すると、ノードが hostname を externalID として使用する (クラウドプロバイダーが使用されていなかった場合のケース) 代わりに、クラウドプロバイダーの instance-id (クラウドプロバイダーによって指定される) の使用に切り替えるため、ノードの削除が試みられます。この問題を解決するには、以下を実行します。
- CLI にクラスター管理者としてログインします。
既存のノードラベルをチェックし、これらをバックアップします。
$ oc describe node <node_name> | grep -Poz '(?s)Labels.*\n.*(?=Taints)'
ノードを削除します。
$ oc delete node <node_name>
各ノードホストで OpenShift Container Platform サービスを再起動します。
# systemctl restart atomic-openshift-node
- 以前に使用していた各ノードのラベルを再度追加します。
21.7. 永続ボリュームのバックアップ
OpenShift Container Platform は、自由にクラスター内のノードにあるボリュームをアタッチしたり、アタッチ解除できるように、個別の永続ディスク として新規ボリュームをプロビジョニングします。そのため、スナップショットを使用するボリュームはバックアップできません。
以下の方法で、PV のバックアップを作成します。
- PV を使用してアプリケーションを停止します。
- 永続ディスクのクローンを作成します。
- アプリケーションを再起動します。
- クローンしたディスクのバックアップを作成します。
- クローンしたディスクを削除します。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.