第5章 インストール後の設定
5.1. インストール後の自動設定の実行 リンクのコピーリンクがクリップボードにコピーされました!
virt-platform-autopilot コントローラーは、仮想化プラットフォームおよびインストールされたオプションコンポーネントに事前定義されたデフォルト値を自動適用することで、インストール後の手動設定作業を不要にします。マネージド設定は、カスタマイズしたり、オプトアウトしたりできます。
5.1.1. インストール後の自動設定の仕組み リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Virtualization をインストールすると、virt-platform-autopilot コントローラーがマネージドリソースを継続的にリコンサイルして期待される状態を維持し、設定のずれを修正します。また、インストールされている場合は、Kube Descheduler Operator や Cluster Observability Operator などのオプションコンポーネントも設定します。
virt-platform-autopilot コントローラーは、以下の設定を管理します。
- 負荷を考慮したデスケジューラー
- Kube Descheduler Operator を設定し、CPU とメモリーの使用状況に基づいて、仮想マシン (VM) のワークロードをノード間でバランスさせるようにします。Kube Descheduler Operator がインストールされている必要があります。
- 可観測性の強化
- OpenShift Container Platform の Web コンソールに、Prometheus アラートルールと高度な Perses ダッシュボードを追加することで、オブザーバビリティーを向上させます。
- スワップの有効化
- OpenShift Container Platform のワーカーノードが、仮想化ワークロードに対してスワップを安全に使用できるようにします。スワップ機能を使用するには、事前にプロビジョニングされた専用ストレージが利用可能である必要があります。
5.1.1.1. ソフト依存関係モデル リンクのコピーリンクがクリップボードにコピーされました!
virt-platform-autopilot コントローラーは、オプションのコンポーネントをインストールしません。これは、クラスターにすでにインストールされているコンポーネントを設定します。オプションコンポーネントがインストールされていない場合、virt-platform-autopilot コントローラーはその設定をスキップし、エラーなく処理を続行します。
後からオプションコンポーネントをインストールすると、virt-platform-autopilot コントローラーは次のリコンシリエーションサイクルでそれを検出し、関連する設定を自動的に適用します。
5.1.1.2. リコンシリエーションとスラッシング防止の動作 リンクのコピーリンクがクリップボードにコピーされました!
virt-platform-autopilot コントローラーは、マネージドリソースを継続的にリコンサイルし、期待される状態を維持します。外部プロセスがマネージドリソースを変更した場合、virt-platform-autopilot コントローラーは変更を検知し、期待される状態を復元します。
スラッシングを防ぐため、virt-platform-autopilot コントローラーは、マネージドリソースに対する変更の頻度を監視します。virt-platform-autopilot コントローラーが急激な変更または繰り返しの変更を検出した場合、影響を受けるリソースのリコンシリエーションを一時停止します。これにより、virt-platform-autopilot コントローラーと別のコントローラーが互いの変更を繰り返し上書きするループを防ぐことができます。kubevirt_autopilot_paused_resources メトリクスを使用すると、一時停止中のリソースを監視できます。
5.1.2. マネージド設定のカスタマイズまたはオプトアウト リンクのコピーリンクがクリップボードにコピーされました!
virt-platform-autopilot コントローラーは、推奨されるデフォルト値を適用しますが、ご使用の環境に合わせてマネージド設定をオーバーライドすることも可能です。
z
- リソースのリコンシリエーションの停止
- リソースの作成後にコントローラーがリコンサイルを行わないようにするには、そのリソースを管理対象外としてマークします。該当リソースの設定に関する完全な設定責任は、ユーザーが持つことになります。
これらのアプローチは、同じクラスター内の異なるリソース間で組み合わせることができます。
5.1.2.1. リソースを virt-platform-autopilot コントローラーによる管理対象からを除外する リンクのコピーリンクがクリップボードにコピーされました!
無効化されたリソースは、virt-platform-autopilot コントローラーによって自動的に作成またはリコンサイルされません。HyperConverged カスタムリソース (CR) でコントローラーを無効にすることで、コントローラーがリソースを作成またはリコンサイルするのを防ぎます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin特権を持つユーザーとしてクラスターにログインしている。 -
virt-platform-autopilotコントローラーがクラスター上で有効になっている。
手順
HyperConvergedCR を編集し、platform.kubevirt.io/disabled-resourcesアノテーションにリソースを追加します。HyperConvergedCR の例:apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: annotations: platform.kubevirt.io/disabled-resources: | - kind: KubeDescheduler name: cluster - kind: MachineConfig name: 90-worker-swap-online次のコマンドを実行して、
HyperConvergedCR に変更を適用します。$ oc apply -f <filename>.yaml
5.1.2.2. マネージドリソースの特定の値をカスタマイズする リンクのコピーリンクがクリップボードにコピーされました!
調整済み設定の上に JSON パッチを適用することで、管理対象リソース内の特定の値をカスタマイズし、カスタム設定を保持できます。
管理対象外のリソースを削除すると、そのリソースに付加されたアノテーションはすべて失われます。その後、virt-platform-autopilot コントローラーは推奨設定を適用した新しいバージョンのリソースを作成します。
virt-platform-autopilot コントローラーが削除されたリソースを再作成しないようにするには、そのリソースを無効にする必要があります。HyperConverged カスタムリソース (CR) の platform.kubevirt.io/disabled-resources アノテーションにリソースを追加することで、リソースを無効化できます。
詳細は、「リソースを virt-platform-autopilot コントローラーによる管理対象からを除外する」を参照してください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin特権を持つユーザーとしてクラスターにログインしている。 -
virt-platform-autopilotコントローラーがクラスター上で有効になっている。 -
リソースには、
platform.kubevirt.io/mode=unmanagedおよびplatform.kubevirt.io/ignore-fieldsのアノテーションが存在することはできません。
手順
有効な RFC 6902 JSON パッチ操作配列を持つリソースに、
platform.kubevirt.io/patchアノテーションを追加します。たとえば、
virt-platform-autopilotコントローラーがカスタムのデスケジューラープロファイル設定をオーバーライドしないようにするには、次のコマンドを実行します。$ oc annotate kubedescheduler cluster \ 'platform.kubevirt.io/patch=[{"op":"replace","path":"/spec/profileCustomizations","value":{"devKnobs":{}}}]' \ -n openshift-kube-descheduler-operatorvirt-platform-autopilotコントローラーは、リソース上の他のすべてのフィールドの管理を継続しますが、指定されたパスはスキップします。重要MachineConfigやKubeletConfigなどの機密性の高いリソースでは、JSON パッチの適用がブロックされます。オプション: すべてのフィールドの
virt-platform-autopilotコントローラー管理を復元するには、platform.kubevirt.io/patchアノテーションを削除します。たとえば、デスケジューラー設定のすべてのフィールドに対する
virt-platform-autopilotコントローラーの管理を復元するには、次のコマンドを実行します。$ oc annotate kubedescheduler cluster \ platform.kubevirt.io/patch- \ -n openshift-kube-descheduler-operator
5.1.2.3. マネージドリソースのリコンシリエーションから特定のフィールドを除外する リンクのコピーリンクがクリップボードにコピーされました!
virt-platform-autopilot コントローラーによる管理から特定のフィールドを除外することで、リコンシリエーション時にそれらのフィールドが無視されるようにします。
管理対象外のリソースを削除すると、そのリソースに付加されたアノテーションはすべて失われます。その後、virt-platform-autopilot コントローラーは推奨設定を適用した新しいバージョンのリソースを作成します。
virt-platform-autopilot コントローラーが削除されたリソースを再作成しないようにするには、そのリソースを無効にする必要があります。HyperConverged カスタムリソース (CR) の platform.kubevirt.io/disabled-resources アノテーションにリソースを追加することで、リソースを無効化できます。
詳細は、「リソースを virt-platform-autopilot コントローラーによる管理対象からを除外する」を参照してください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin特権を持つユーザーとしてクラスターにログインしている。 -
virt-platform-autopilotコントローラーがクラスター上で有効になっている。 -
リソースには、
platform.kubevirt.io/mode=unmanagedおよびplatform.kubevirt.io/patchのアノテーションが存在することはできません。
手順
コンマ区切りの RFC 6901 JSON Pointer パスを指定して、
platform.kubevirt.io/ignore-fieldsアノテーションを追加します。たとえば、
virt-platform-autopilotコントローラーがマネージドMachineConfigリソース内の systemd ユニットをオーバーライドしないようにするには、次のコマンドを実行します。$ oc annotate machineconfig 90-worker-swap-online \ platform.kubevirt.io/ignore-fields='/spec/config/systemd/units/0/contents'オプション: すべてのフィールドに対して
virt-platform-autopilotコントローラーの管理を復元するには、platform.kubevirt.io/ignore-fieldsアノテーションを削除します。たとえば、デスケジューラー設定のすべてのフィールドに対する
virt-platform-autopilotコントローラーの管理を復元するには、次のコマンドを実行します。$ oc annotate kubedescheduler cluster \ platform.kubevirt.io/ignore-fields- \ -n openshift-kube-descheduler-operator
5.1.2.4. マネージドリソースのリコンシリエーションを停止します リンクのコピーリンクがクリップボードにコピーされました!
リソースが作成後に virt-platform-autopilot コントローラーによって調整されないように、そのリソースを管理対象外としてマークします。該当リソースの設定に関する完全な設定責任は、ユーザーが持つことになります。
管理対象外のリソースを削除すると、そのリソースに付加されたアノテーションはすべて失われます。その後、virt-platform-autopilot コントローラーは推奨設定を適用した新しいバージョンのリソースを作成します。
virt-platform-autopilot コントローラーが削除されたリソースを再作成しないようにするには、そのリソースを無効にする必要があります。HyperConverged カスタムリソース (CR) の platform.kubevirt.io/disabled-resources アノテーションにリソースを追加することで、リソースを無効化できます。
詳細は、「リソースを virt-platform-autopilot コントローラーによる管理対象からを除外する」を参照してください。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin特権を持つユーザーとしてクラスターにログインしている。 -
virt-platform-autopilotコントローラーがクラスター上で有効になっている。 -
リソースには、
platform.kubevirt.io/ignore-fieldsおよびplatform.kubevirt.io/patchのアノテーションが存在することはできません。
手順
リソースの
platform.kubevirt.io/modeアノテーションをunmanagedに設定します。たとえば、デスケジューラー設定に対する
virt-platform-autopilotコントローラーの管理を停止するには、次のコマンドを実行します。$ oc annotate kubedescheduler cluster \ platform.kubevirt.io/mode=unmanaged \ -n openshift-kube-descheduler-operatorオプション: リソースの
virt-platform-autopilotコントローラー管理を復元するには、platform.kubevirt.io/modeアノテーションを削除します。たとえば、デスケジューラー設定に対する
virt-platform-autopilotコントローラーの管理を復元するには、次のコマンドを実行します。$ oc annotate kubedescheduler cluster \ platform.kubevirt.io/mode- \ -n openshift-kube-descheduler-operator