This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.9. vSphere でのマシンセットの作成
VMware vSphere 上の OpenShift Container Platform クラスターで特定の目的を果たすように異なるマシンセットを作成することができます。たとえば、インフラストラクチャーマシンセットおよび関連マシンを作成して、サポートするワークロードを新しいマシンに移動できます。
高度なマシン管理およびスケーリング機能は、マシン API が機能しているクラスターでのみ使用することができます。ユーザーがプロビジョニングしたインフラストラクチャーを持つクラスターでは、マシン API を使用するために追加の検証と設定が必要です。
					インフラストラクチャープラットフォームタイプが none のクラスターは、マシン API を使用できません。この制限は、クラスターに接続されている計算マシンが、この機能をサポートするプラットフォームにインストールされている場合でも適用されます。このパラメーターは、インストール後に変更することはできません。
				
クラスターのプラットフォームタイプを表示するには、以下のコマンドを実行します。
oc get infrastructure cluster -o jsonpath='{.status.platform}'
$ oc get infrastructure cluster -o jsonpath='{.status.platform}'
2.9.1. vSphere 上のマシンセットのカスタムリソースのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
					このサンプル YAML は、VMware vSphere で実行され、 node-role.kubernetes.io/<role>: "" というラベルが付けられたノードを作成するマシンセットを定義します。
				
					このサンプルでは、<infrastructure_id> はクラスターのプロビジョニング時に設定したクラスター ID に基づくインフラストラクチャー ID であり、<role> は追加するノードラベルです。
				
- 1 3 5
 - クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。OpenShift CLI (
oc) がインストールされている場合は、以下のコマンドを実行してインフラストラクチャー ID を取得できます。oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure cluster$ oc get -o jsonpath='{.status.infrastructureName}{"\n"}' infrastructure clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow  - 2 4 8
 - インフラストラクチャー ID およびノードラベルを指定します。
 - 6 7 9
 - 追加するノードラベルを指定します。
 - 10
 - コンピュートマシンセットをデプロイする vSphere 仮想マシンネットワークを指定します。この仮想マシンネットワークは、他のコンピューティングマシンがクラスター内に存在する場所である必要があります。
 - 11
 user-5ddjd-rhcosなどの使用する vSphere 仮想マシンテンプレートを指定します。- 12
 - コンピュートマシンセットをデプロイする vCenter Datacenter を指定します。
 - 13
 - コンピュートマシンセットをデプロイする vCenter Datastore を指定します。
 - 14
 /dc1/vm/user-inst-5ddjdなどの vCenter の vSphere 仮想マシンフォルダーへのパスを指定します。- 15
 - 仮想マシンの vSphere リソースプールを指定します。
 - 16
 - vCenter サーバーの IP または完全修飾ドメイン名を指定します。
 
2.9.2. マシンセット管理に最低限必要な vCenter 権限 リンクのコピーリンクがクリップボードにコピーされました!
vCenter 上の OpenShift Container Platform クラスターでマシンセットを管理するには、必要なリソースの読み取り、作成、および削除を行う権限を持つアカウントを使用する必要があります。グローバル管理者権限のあるアカウントを使用すること方法が、必要なすべてのパーミッションにアクセスするための最も簡単な方法です。
グローバル管理者権限を持つアカウントを使用できない場合は、最低限必要な権限を付与するロールを作成する必要があります。次の表に、マシンセットの作成、スケーリング、削除、および OpenShift Container Platform クラスター内のマシンの削除に必要な vCenter の最小のロールと特権を示します。
例2.1 マシンセットの管理に必要な最小限の vCenter のロールと権限
| ロールの vSphere オブジェクト | 必要になる場合 | 必要な特権 | 
|---|---|---|
|   vSphere vCenter  |   Always  |   
										  | 
|   vSphere vCenter Cluster  |   Always  |   
										  | 
|   vSphere Datastore  |   Always  |   
										  | 
|   vSphere ポートグループ  |   Always  |   
										  | 
|   仮想マシンフォルダー  |   Always  |   
										  | 
|   vSphere vCenter Datacenter  |   インストールプログラムが仮想マシンフォルダーを作成する場合  |   
										  | 
|   
										1 重要 CSI ドライバーおよび機能の一部は、OpenShift Container Platform 4.10 ではテクノロジープレビューとして提供されています。詳細は、OpenShift Container Platform でサポートされる CSI ドライバー を参照してください。  | ||
次の表に、マシンセットの管理に必要なパーミッションと伝播設定の詳細を示します。
例2.2 必要なパーミッションおよび伝播の設定
| vSphere オブジェクト | フォルダータイプ | 子への伝播 | パーミッションが必要 | 
|---|---|---|---|
|   vSphere vCenter  |   Always  |   必須ではありません。  |   必要な特権が一覧表示  | 
|   vSphere vCenter Datacenter  |   既存のフォルダー  |   必須ではありません。  |   
										  | 
|   インストールプログラムがフォルダーを作成する  |   必須  |   必要な特権が一覧表示  | |
|   vSphere vCenter Cluster  |   Always  |   必須  |   必要な特権が一覧表示  | 
|   vSphere vCenter Datastore  |   Always  |   必須ではありません。  |   必要な特権が一覧表示  | 
|   vSphere Switch  |   Always  |   必須ではありません。  |   
										  | 
|   vSphere ポートグループ  |   Always  |   必須ではありません。  |   必要な特権が一覧表示  | 
|   vSphere vCenter 仮想マシンフォルダー  |   既存のフォルダー  |   必須  |   必要な特権が一覧表示  | 
必要な権限のみを持つアカウントの作成に関する詳細は、vSphere ドキュメントの vSphere Permissions and User Management Tasks を参照してください。
2.9.3. コンピュートマシンセットを使用するための、ユーザーがプロビジョニングしたインフラストラクチャーを持つクラスターの要件 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーがプロビジョニングしたインフラストラクチャーを持つクラスターでコンピュートマシンセットを使用するには、クラスター設定が Machine API の使用をサポートしていることを確認する必要があります。
インフラストラクチャー ID の取得
コンピュートマシンセットを作成するには、クラスターのインフラストラクチャー ID を指定できる必要があります。
手順
クラスターのインフラストラクチャー ID を取得するには、次のコマンドを実行します。
oc get infrastructure cluster -o jsonpath='{.status.infrastructureName}'$ oc get infrastructure cluster -o jsonpath='{.status.infrastructureName}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
vSphere 認証情報の要件を満たす
					コンピュートマシンセットを使用するには、マシン API が vCenter と対話できる必要があります。マシン API コンポーネントが vCenter と対話することを許可する認証情報は、openshift-machine-api 名前空間のシークレットに存在する必要があります。
				
手順
必要な認証情報が存在するかどうかを確認するには、次のコマンドを実行します。
oc get secret \ -n openshift-machine-api vsphere-cloud-credentials \ -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'$ oc get secret \ -n openshift-machine-api vsphere-cloud-credentials \ -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
<vcenter-server>.password=<openshift-user-password> <vcenter-server>.username=<openshift-user>
<vcenter-server>.password=<openshift-user-password> <vcenter-server>.username=<openshift-user>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここで、
<vcenter-server>は vCenter サーバーの IP アドレスまたは完全修飾ドメイン名 (FQDN) であり、<openshift-user>および<openshift-user-password>は使用する OpenShift Container Platform 管理者の認証情報です。シークレットが存在しない場合は、次のコマンドを実行して作成します。
oc create secret generic vsphere-cloud-credentials \ -n openshift-machine-api \ --from-literal=<vcenter-server>.username=<openshift-user> --from-literal=<vcenter-server>.password=<openshift-user-password>
$ oc create secret generic vsphere-cloud-credentials \ -n openshift-machine-api \ --from-literal=<vcenter-server>.username=<openshift-user> --from-literal=<vcenter-server>.password=<openshift-user-password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
Ignition 設定要件を満たす
					仮想マシン (VM) のプロビジョニングには、有効な Ignition 設定が必要です。Ignition 設定には、machine-config-server アドレスと、Machine Config Operator からさらに Ignition 設定を取得するためのシステム信頼バンドルが含まれています。
				
					デフォルトでは、この設定は machine-api-operator namespace の worker-user-data シークレットに保存されます。コンピュートマシンセットは、マシンの作成プロセス中にシークレットを参照します。
				
手順
必要なシークレットが存在するかどうかを判断するには、次のコマンドを実行します。
oc get secret \ -n openshift-machine-api worker-user-data \ -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'$ oc get secret \ -n openshift-machine-api worker-user-data \ -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - ここでは完全な出力は省略しますが、この形式にする必要があります。
 
シークレットが存在しない場合は、次のコマンドを実行して作成します。
oc create secret generic worker-user-data \ -n openshift-machine-api \ --from-file=<installation_directory>/worker.ign
$ oc create secret generic worker-user-data \ -n openshift-machine-api \ --from-file=<installation_directory>/worker.ignCopy to Clipboard Copied! Toggle word wrap Toggle overflow ここで
<installation_directory>、クラスターのインストール中にインストール資産を保管するために使用されたディレクトリーです。
2.9.4. マシンセットの作成 リンクのコピーリンクがクリップボードにコピーされました!
インストールプログラムによって作成されるコンピュートセットセットに加えて、独自のマシンセットを作成して、選択した特定のワークロードのマシンコンピューティングリソースを動的に管理できます。
						ユーザーがプロビジョニングしたインフラストラクチャーを使用してインストールされたクラスターには、インストールプログラムによってプロビジョニングされたインフラストラクチャーを使用したクラスターとは異なるネットワークスタックがあります。この違いの結果、自動ロードバランサー管理は、ユーザーがプロビジョニングしたインフラストラクチャーを持つクラスターではサポートされません。これらのクラスターの場合、コンピュートマシンセットは worker および infra タイプのマシンのみを作成できます。
					
前提条件
- OpenShift Container Platform クラスターをデプロイすること。
 - 
							OpenShift CLI (
oc) がインストールされている。 - 
							
cluster-adminパーミッションを持つユーザーとして、ocにログインする。 - vCenter インスタンスに仮想マシンをデプロイするのに必要なパーミッションがあり、指定されたデータストアへのアクセス権限が必要です。
 - クラスターがユーザーによってプロビジョニングされたインフラストラクチャーを使用している場合、その設定の特定のマシン API 要件を満たしています。
 
手順
説明されているようにマシンセット カスタムリソース (CR) サンプルを含む新規 YAML ファイルを作成し、そのファイルに
<file_name>.yamlという名前を付けます。<clusterID>および<role>パラメーターの値を設定していることを確認します。オプション: 特定のフィールドに設定する値がわからない場合は、クラスターから既存のコンピュートマシンセットを確認できます。
クラスター内のコンピュートマシンセットをリスト表示するには、次のコマンドを実行します。
oc get machinesets -n openshift-machine-api
$ oc get machinesets -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 特定のコンピュートマシンセットカスタムリソース(CR)の値を表示するには、以下のコマンドを実行します。
oc get machineset <machineset_name> \ -n openshift-machine-api -o yaml
$ oc get machineset <machineset_name> \ -n openshift-machine-api -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーがプロビジョニングしたインフラストラクチャーを持つクラスター用のコンピュートマシンセットを作成する場合は、次の重要な値に注意してください。
例: vSphere
providerSpec値Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
次のコマンドを実行して
MachineSetCR を作成します。oc create -f <file_name>.yaml
$ oc create -f <file_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
次のコマンドを実行して、コンピュートマシンセットのリストを表示します。
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規のマシンセットが利用可能な場合、
DESIREDおよびCURRENTの値は一致します。マシンセットが利用可能でない場合、数分待機してからコマンドを再度実行します。