2.9.2. コンピュートマシンセット管理に最低限必要な vCenter 権限
vCenter 上の OpenShift Container Platform クラスターでコンピュートマシンセットを管理するには、必要なリソースの読み取り、作成、および削除を行う権限を持つアカウントを使用する必要があります。グローバル管理者権限のあるアカウントを使用すること方法が、必要なすべてのパーミッションにアクセスするための最も簡単な方法です。
グローバル管理者権限を持つアカウントを使用できない場合は、最低限必要な権限を付与するロールを作成する必要があります。次の表に、コンピュートマシンセットの作成、スケーリング、削除、および OpenShift Container Platform クラスター内のマシンの削除に必要な vCenter の最小のロールと特権を示します。
| ロールの vSphere オブジェクト | 必要になる場合 | 必要な特権 |
|---|---|---|
| vSphere vCenter | 常時 |
|
| vSphere vCenter Cluster | 常時 |
|
| vSphere データストア | 常時 |
|
| vSphere ポートグループ | 常時 |
|
| 仮想マシンフォルダー | 常時 |
|
| vSphere vCenter data center | インストールプログラムが仮想マシンフォルダーを作成する場合。 |
|
|
1 | ||
次の表に、コンピュートマシンセットの管理に必要な権限と伝播設定の詳細を示します。
| vSphere オブジェクト | フォルダータイプ | 子への伝播 | 必要な権限 |
|---|---|---|---|
| vSphere vCenter | 常時 | 不要 | 上記の必要な特権 |
| vSphere vCenter data center | 既存のフォルダー | 不要 |
|
| インストールプログラムがフォルダーを作成する | 必須 | 上記の必要な特権 | |
| vSphere vCenter Cluster | 常時 | 必須 | 上記の必要な特権 |
| vSphere vCenter datastore | 常時 | 不要 | 上記の必要な特権 |
| vSphere Switch | 常時 | 不要 |
|
| vSphere ポートグループ | 常時 | 不要 | 上記の必要な特権 |
| vSphere vCenter 仮想マシンフォルダー | 既存のフォルダー | 必須 | 上記の必要な特権 |
必要な権限のみを持つアカウントの作成に関する詳細は、vSphere ドキュメントの vSphere Permissions and User Management Tasks を参照してください。
2.9.2.1. コンピュートマシンセットを使用するための、ユーザーがプロビジョニングしたインフラストラクチャーを持つクラスターの要件 リンクのコピーリンクがクリップボードにコピーされました!
Machine API を使用して、user-provisioned infrastructure 上でコンピュートノードを管理および拡張できるようにするには、データセンターやディスクイメージなどの特定の vSphere パラメーターを含む MachineSet YAML ファイルを設定できます。ユーザーがプロビジョニングしたインフラストラクチャーを持つクラスターでコンピュートマシンセットを使用するには、クラスター設定が Machine API の使用をサポートしていることを確認する必要があります。
2.9.2.1.1. インフラストラクチャー ID の取得 リンクのコピーリンクがクリップボードにコピーされました!
Machine API が特定のクラスターに属する仮想マシン (VM) を正しく識別および管理できるようにするには、リソースにラベルを付けてリンクするために、固有のインフラストラクチャー ID を MachineSet YAML ファイルに追加する必要があります。コンピュートマシンセットを作成するには、クラスターのインフラストラクチャー ID を指定できる必要があります。
手順
クラスターのインフラストラクチャー ID を取得するには、次のコマンドを実行します。
$ oc get infrastructure cluster -o jsonpath='{.status.infrastructureName}'
2.9.2.1.2. vSphere 認証情報の要件を満たす リンクのコピーリンクがクリップボードにコピーされました!
コンピュートマシンセットを使用し、仮想マシン (VM) リソースを管理するには、Machine API が vCenter と連携できる必要があります。Machine API コンポーネントが vCenter と対話することを許可する認証情報が、openshift-machine-api namespace のシークレット内に存在している必要があります。
手順
必要な認証情報が存在するかどうかを確認するには、次のコマンドを実行します。
$ 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}}'出力例
<vcenter-server>.password=<openshift-user-password> <vcenter-server>.username=<openshift-user>以下は、
<vcenter_server>-
vCenter サーバーの IP アドレスまたは完全修飾ドメイン名 (FQDN) を指定します。
<openshift_user_password>と<openshift_user>は、使用する 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>
2.9.2.1.3. Ignition 設定要件を満たす リンクのコピーリンクがクリップボードにコピーされました!
Machine API が 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}}'出力例
disableTemplating: false userData: { "ignition": { ... }, ... }出力の全文は省略しますが、これが使用すべき形式です。
シークレットが存在しない場合は、次のコマンドを実行して作成します。
$ oc create secret generic worker-user-data \ -n openshift-machine-api \ --from-file=<installation_directory>/worker.ignクラスターのインストール時にインストールアセットを保存するために使用されたディレクトリーを指定します。