6.4. Nutanix での Windows MachineSet オブジェクトの作成
Windows MachineSet オブジェクトを作成して、Nutanix 上の OpenShift Container Platform クラスターで特定の機能を果たすようにできます。たとえば、インフラストラクチャー Windows マシンセットおよび関連マシンを作成して、サポートする Windows ワークロードを新規の Windows マシンに移動できます。
6.4.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Operator Lifecycle Manager (OLM) を使用して Windows Machine Config Operator (WMCO) をインストールしている。
- サポートされている Windows Server をオペレーティングシステムイメージとして使用しています。
-
外部 API サーバー URL
api.<cluster_name>.<base_domain>を指す内部 API サーバー URLapi-int.<cluster_name>.<base_domain>の新しい DNS エントリーを追加しました。これには、CNAME または追加の A レコードを指定できます。
6.4.2. Machine API の概要 リンクのコピーリンクがクリップボードにコピーされました!
Machine API は、プライマリーリソースの組み合わせたものであり、アップストリーム Cluster API プロジェクトとカスタム OpenShift Container Platform リソースをベースとしています。
OpenShift Container Platform 4.19 クラスターの場合、Machine API はクラスターインストールの終了後にすべてのノードホストのプロビジョニングに対する管理アクションを実行します。このシステムにより、OpenShift Container Platform 4.19 はパブリックまたはプライベートのクラウドインフラストラクチャーに加え、弾力的かつ動的なプロビジョニング方法を提供します。
以下の 2 つのリソースは重要なリソースになります。
- Machines
-
ノードのホストを記述する基本的なユニットです。マシンには、複数の異なるクラウドプラットフォーム用に提供されるコンピュートノードのタイプを記述する
providerSpec仕様があります。たとえば、コンピュートノードのマシンタイプは、特定のマシンタイプと必要なメタデータを定義する場合があります。 - マシンセット
MachineSetリソースは、計算マシンのグループです。コンピューティングマシンセットはコンピューティングマシン用であり、レプリカセットは Pod 用です。より多くのコンピューティングマシンが必要な場合、またはそれらを縮小する必要がある場合は、コンピューティングのニーズを満たすようにMachineSetリソースのreplicasフィールドを変更します。警告コントロールプレーンマシンは、コンピューティングマシンセットでは管理できません。
コントロールプレーンマシンセットは、サポートされているコントロールプレーンマシンに対して、コンピュートマシンセットがコンピュートマシンに提供するものと同様の管理機能を提供します。
詳細は、「コントロールプレーンマシンの管理」を参照してください。
以下のカスタムリソースは、クラスターに機能を追加します。
- Machine Autoscaler
MachineAutoscalerリソースは、クラウド内のコンピューティングマシンを自動的にスケーリングします。指定したコンピューティングマシンセット内のノードの最小および最大スケーリング境界を設定でき Machine Autoscaler はそのノード範囲を維持します。MachineAutoscalerオブジェクトはClusterAutoscalerオブジェクトの設定後に有効になります。ClusterAutoscalerおよびMachineAutoscalerリソースは、どちらもClusterAutoscalerOperatorオブジェクトによって利用可能にされます。- Cluster Autoscaler
このリソースはアップストリームの Cluster Autoscaler プロジェクトに基づいています。OpenShift Container Platform の実装では、このリソースはコンピュートマシンセット API を拡張することで、Machine API と統合されます。クラスターオートスケーラーを使用して、次の方法でクラスターを管理できます。
- コア、ノード、メモリー、GPU などのリソースに対してクラスター全体のスケーリング制限を設定
- クラスターが Pod に優先順位を付け、重要度の低い Pod のために新しいノードがオンラインにならないように、優先順位を設定します。
- ノードをスケールアップできるがスケールダウンできないようにスケーリングポリシーを設定
- マシンのヘルスチェック
-
MachineHealthCheckリソースはマシンの正常でない状態を検知し、マシンを削除し、サポートされているプラットフォームでは新規マシンを作成します。
OpenShift Container Platform バージョン 3.11 では、クラスターでマシンのプロビジョニングが管理されないためにマルチゾーンアーキテクチャーを容易にデプロイメントすることができませんでした。しかし、OpenShift Container Platform バージョン 4.1 以降、このプロセスはより簡単になりました。各コンピュートマシンセットのスコープは 1 つのゾーンに限定されるため、インストールプログラムはユーザーに代わって複数のアベイラビリティゾーンにコンピューティングマシンセットを送信します。さらに、コンピューティングは動的に展開されるため、ゾーンに障害が発生した場合の、マシンのリバランスが必要な場合に使用するゾーンを常に確保できます。複数のアベイラビリティーゾーンを持たないグローバル Azure リージョンでは、アベイラビリティーセットを使用して高可用性を確保できます。Autoscaler はクラスターの有効期間中にベストエフォートでバランシングを提供します。
6.4.3. Nutanix の Windows MachineSet オブジェクトのサンプル YAML リンクのコピーリンクがクリップボードにコピーされました!
このサンプル YAML は、Windows Machine Config Operator (WMCO) が応答する Nutanix で実行される Windows MachineSet オブジェクトを定義します。
- 1 3 5
- クラスターのプロビジョニング時に設定したクラスター ID を基にするインフラストラクチャー ID を指定します。以下のコマンドを実行してインフラストラクチャー 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 6
- インフラストラクチャー ID、ワーカーラベル、およびゾーンを指定します。
- 7
- コンピュートマシンセットを Windows マシンとして設定します。
- 8
- Windows ノードをコンピュートマシンとして設定します。
- 9
- コンピュートマシンが使用するブートタイプを指定します。ブートタイプの詳細は、仮想化環境内の UEFI、セキュアブート、および TPM について を参照してください。有効な値は、
Legacy、SecureBoot、またはUEFIです。デフォルトは、Legacyです。注記OpenShift Container Platform 4.19 では、
Legacyブートタイプを使用する必要があります。 - 10
- Nutanix Prism Element のクラスター設定を指定します。この例のクラスタータイプは
uuidであるため、uuidスタンザがあります。 - 11
- クラスターのシークレット名を指定します。この値は変更しないでください。
- 12
- 使用するイメージを指定します。クラスターに設定されている既存のコンピュートデフォルトマシンのイメージを使用します。
- 13
- クラウドプロバイダープラットフォームのタイプを指定します。この値は変更しないでください。
- 14
- クラスターのメモリー量を Gi 単位で指定します。
- 15
- サブネット設定を指定します。この例では、サブネットタイプは
uuidであるため、uuidスタンザがあります。 - 16
- システムディスクのサイズを Gi 単位で指定します。
- 17
openshift-machine-apinamespace にあるユーザーデータ YAML ファイルで、シークレットの名前を指定します。インストールプログラムがデフォルトのコンピュートマシンセットに入力する値を使用します。- 18
- vCPU ソケットの数を指定します。
- 19
- ソケットごとの vCPU 数を指定します。
6.4.4. コンピュートマシンセットの作成 リンクのコピーリンクがクリップボードにコピーされました!
インストールプログラムによって作成されるコンピュートセットセットに加えて、独自のマシンセットを作成して、選択した特定のワークロードのマシンコンピューティングリソースを動的に管理できます。
前提条件
- OpenShift Container Platform クラスターをデプロイしている。
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-adminパーミッションを持つユーザーとして、ocにログインする。
手順
コンピュートマシンセットのカスタムリソース (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
次のコマンドを実行して
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の値が一致します。コンピュートマシンセットが使用できない場合は、数分待ってからコマンドを再実行してください。