2.10. ストレージまたはパーティション設定の上書き
MachineConfig オブジェクトを使用すると、クラスターのインストール時に設定されたディスクパーティションのスキーマ、ファイルシステム、および RAID 設定を変更できます。これにより、初期クラスター状態とは異なる、特定の設定変更を行うことができます。
クラスターのインストール時に、Butane 設定、Ignition 設定、またはマシン設定を使用してストレージとパーティション設定を指定した場合、それらの設定はクラスター内のデフォルトになります。新しいノードを作成すると、それらのノードは自動的にこれらのデフォルト設定を使用します。
これらのコンポーネントは直接変更できません。デフォルトでは、Machine Config Operator (MCO) は、マシン設定 オブジェクトの特定のフィールドの変更をレビューし、セキュリティー上の理由から一部の変更をブロックします。ただし、ディスクパーティションスキーマ、ファイルシステム、および RAID 設定については、MachineConfiguration オブジェクトに irreconcilableValidationOverrides パラメーターを追加することで、この制限を上書きできます。次に、新しいマシン設定を作成して、新しいノードに必要な変更を加えることができます。
このプロセスを通じて行われた設定変更は、新規ノードにのみ適用されます。
たとえば、デフォルトのストレージ設定を上書きして、異なるストレージパーティショニング方式やストレージファイルシステムを使用する新しいハードウェアをクラスターに追加したい場合があるかもしれません。この場合、クラスター内の新しいノードのストレージ設定を変更できます。
または、インストール後のタスクとして Ignition を使用してストレージ設定を変更した場合、クラスターの MachineConfigNode オブジェクトのステータスフィールドで、irreconcilableChanges ステータスが報告される可能性があります。このメッセージによってこれらの違いを知らせることができるため、新しい設定の新しいハードウェアが必要かどうかを判断できます。
相殺できないフィールドを上書きする機能は、テクノロジープレビュー版の機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
前提条件
FeatureGateCR にTechPreviewNoUpgrade機能セットを追加することで、クラスターに必要なテクノロジープレビュー機能を有効にしました。フィーチャーゲートを有効にする方法については、フィーチャーゲートを使用した機能の有効化を 参照してください。警告クラスターで
TechPreviewNoUpgrade機能セットを有効にすると、元に戻すことができず、マイナーバージョンの更新が妨げられます。この機能セットを使用すると、該当するテクノロジープレビュー機能をテストクラスターで有効にして、完全にテストすることができます。実稼働クラスターではこの機能セットを有効にしないでください。
手順
以下のコマンドを使用して、
MachineConfigurationオブジェクトを編集します。$ oc edit machineconfigurationMachineConfigurationオブジェクトにirreconcilableValidationOverridesスタンザを追加します。apiVersion: operator.openshift.io/v1 kind: MachineConfiguration # ... spec: irreconcilableValidationOverrides: storage: - Disks - Raid - FileSystems # ...各項目の説明:
spec.irreconcilableValidationOverrides.storage.Disks- インストール済みのストレージディスク設定を変更して、新しいノードで使用できるようにします。このフィールドは任意です。
spec.irreconcilableValidationOverrides.storage.Raid- インストール済みの RAID 設定を、新しいノードで使用するように変更できます。このフィールドは任意です。
spec.irreconcilableValidationOverrides.storage.FileSystems- インストール済みのファイルシステム設定を、新しいノードで使用するように変更できます。このフィールドは任意です。
必要な変更を加えた
MachineConfigオブジェクトの YAML ファイルを作成します。以下のような内容で作成してください。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: worker name: extra-disks spec: config: ignition: version: "3.5.0" storage: disks: - device: "/dev/sdb" wipeTable: true partitions: - label: raid.1.1 number: 1 sizeMiB: 1024 startMiB: 0 - device: "/dev/sdc" wipeTable: true partitions: - label: raid.1.2 number: 1 sizeMiB: 1024 startMiB: 0 raid: - devices: - "/dev/disk/by-partlabel/raid.1.1" - "/dev/disk/by-partlabel/raid.1.2" level: stripe name: data filesystems: - device: "/dev/md/data" path: "/var/lib/data" format: ext4 label: DATA各項目の説明:
spec.config.ストレージディスク- インストール済みのストレージディスク設定に対する変更を Ignition 形式で指定します。このフィールドは任意です。
spec.config.ストレージ.raid- インストール済みの RAID 設定に対する変更点を Ignition 形式で指定します。このフィールドは任意です。
spec.config.storage.filesystems- インストール済みのファイルシステム設定に対する変更を Ignition 形式で指定します。このフィールドは任意です。
次のようなコマンドを使用して、
MachineConfigオブジェクトを作成します。$ oc create -f <file_name>.yaml関連付けられたラベルを持つマシンセットから新しいノードを作成すると、新しい設定がそのノードに適用されます。