6.2. OpenShift Virtualization コンポーネントのノードの指定
ノードの配置ルールを設定して、OpenShift Virtualization Operator、ワークロード、およびコントローラーをデプロイするノードを指定します。
OpenShift Virtualization のインストール後に一部のコンポーネントのノードの配置を設定できますが、ワークロード用にノードの配置を設定する場合には仮想マシンを含めることはできません。
6.2.1. 仮想化コンポーネントのノード配置について リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Virtualization がそのコンポーネントをデプロイする場所をカスタマイズして、以下を確認する必要がある場合があります。
- 仮想マシンは、仮想化ワークロード用のノードにのみデプロイされる。
- Operator はインフラストラクチャーノードにのみデプロイされる。
- 特定のノードは OpenShift Virtualization の影響を受けない。たとえば、クラスターで実行される仮想化に関連しないワークロードがあり、それらのワークロードを OpenShift Virtualization から分離する必要があるとします。
6.2.1.1. ノードの配置ルールを仮想化コンポーネントに適用する方法 リンクのコピーリンクがクリップボードにコピーされました!
対応するオブジェクトを直接編集するか、Web コンソールを使用して、コンポーネントのノードの配置ルールを指定できます。
-
Operator Lifecycle Manager (OLM) がデプロイする OpenShift Virtualization Operator の場合は、OLM
Subscriptionオブジェクトを直接編集します。現時点では、Web コンソールを使用してSubscriptionオブジェクトのノードの配置ルールを設定することはできません。 -
OpenShift Virtualization Operator がデプロイするコンポーネントの場合は、
HyperConvergedオブジェクトを直接編集するか、OpenShift Virtualization のインストール時に Web コンソールを使用してこれを設定します。 ホストパスプロビジョナーの場合、
HostPathProvisionerオブジェクトを直接編集するか、Web コンソールを使用してこれを設定します。警告ホストパスプロビジョナーと仮想化コンポーネントを同じノードでスケジュールする必要があります。スケジュールしない場合は、ホストパスプロビジョナーを使用する仮想化 Pod を実行できません。
オブジェクトに応じて、以下のルールタイプを 1 つ以上使用できます。
nodeSelector- Pod は、キーと値のペアまたはこのフィールドで指定したペアを使用してラベルが付けられたノードに Pod をスケジュールできます。ノードには、リスト表示されたすべてのペアに一致するラベルがなければなりません。
affinity- より表現的な構文を使用して、ノードと Pod に一致するルールを設定できます。アフィニティーを使用すると、ルールの適用方法に追加のニュアンスを持たせることができます。たとえば、ルールがハード要件ではなく基本設定になるように指定し、ルールの条件が満たされない場合も Pod がスケジュールされるようにすることができます。
tolerations- 一致するテイントを持つノードで Pod をスケジュールできます。テイントがノードに適用される場合、そのノードはテイントを容認する Pod のみを受け入れます。
6.2.1.2. OLM Subscription オブジェクトのノード配置 リンクのコピーリンクがクリップボードにコピーされました!
OLM が OpenShift Virtualization Operator をデプロイするノードを指定するには、OpenShift Virtualization のインストール時に Subscription オブジェクトを編集します。以下の例に示されるように、spec.config フィールドにノードの配置ルールを追加できます。
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: hco-operatorhub
namespace: openshift-cnv
spec:
source: redhat-operators
sourceNamespace: openshift-marketplace
name: kubevirt-hyperconverged
startingCSV: kubevirt-hyperconverged-operator.v4.12.16
channel: "stable"
config:
- 1
configフィールドはnodeSelectorおよびtolerationsをサポートしますが、affinityはサポートしません。
6.2.1.3. HyperConverged オブジェクトのノード配置 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Virtualization がそのコンポーネントをデプロイするノードを指定するには、OpenShift Virtualization のインストール時に作成する HyperConverged Cluster カスタムリソース (CR) ファイルに nodePlacement オブジェクトを含めることができます。以下の例のように、spec.infra および spec.workloads フィールドに nodePlacement を含めることができます。
apiVersion: hco.kubevirt.io/v1beta1
kind: HyperConverged
metadata:
name: kubevirt-hyperconverged
namespace: openshift-cnv
spec:
infra:
nodePlacement:
...
workloads:
nodePlacement:
...
- 1
nodePlacementフィールドは、nodeSelector、affinity、およびtolerationsフィールドをサポートします。
6.2.1.4. HostPathProvisioner オブジェクトのノード配置 リンクのコピーリンクがクリップボードにコピーされました!
ノードの配置ルールは、ホストパスプロビジョナーのインストール時に作成する HostPathProvisioner オブジェクトの spec.workload フィールドで設定できます。
apiVersion: hostpathprovisioner.kubevirt.io/v1beta1
kind: HostPathProvisioner
metadata:
name: hostpath-provisioner
spec:
imagePullPolicy: IfNotPresent
pathConfig:
path: "</path/to/backing/directory>"
useNamingPrefix: false
workload:
- 1
workloadフィールドは、nodeSelector、affinity、およびtolerationsフィールドをサポートします。