8.4.2. インストール後のプロビジョニングネットワークの有効化

ベアメタルクラスター用の支援付きインストーラーおよびインストーラーでプロビジョニングされるインストールは、provisioning ネットワークなしでクラスターをデプロイする機能を提供します。この機能は、概念実証クラスターや、各ノードのベースボード管理コントローラーが baremetal ネットワークを介してルーティング可能な場合に Redfish 仮想メディアのみを使用してデプロイするなどのシナリオ向けです。

OpenShift Container Platform 4.8 以降では、Cluster Baremetal Operator (CBO) を使用してインストール後に provisioning ネットワークを有効にすることができます。

前提条件

  • すべてのワーカーノードおよびコントロールプレーンノードに接続されている専用の物理ネットワークが存在する必要があります。
  • ネイティブのタグなしの物理ネットワークを分離する必要があります。
  • provisioningNetwork 設定が Managed に設定されている場合、ネットワークには DHCP サーバーを含めることはできません。
  • OpenShift Container Platform 4.9 の provisioningInterface 設定を省略し、bootMACAddress 設定を使用できます。

手順

  1. provisioningInterface 設定を設定する場合、まずクラスターノードのプロビジョニングインターフェース名を特定します。たとえば、eth0 または eno1 などです。
  2. クラスターノードの provisioning ネットワークインターフェースで Preboot eXecution Environment (PXE) を有効にします。
  3. provisioning ネットワークの現在の状態を取得して、これをプロビジョニングカスタムリソース(CR)ファイルに保存します。

    $ oc get provisioning -o yaml > enable-provisioning-nw.yaml
  4. プロビジョニング CR ファイルを変更します。

    $ vim ~/enable-provisioning-nw.yaml

    provisioningNetwork 設定までスクロールダウンして、これを Disabled から Managed に変更します。次に、provisioningNetwork 設定の後に、provisioningOSDownloadURLprovisioningIPprovisioningNetworkCIDRprovisioningDHCPRangeprovisioningInterface、および watchAllNameSpaces 設定を追加します。各設定に適切な値を指定します。

    apiVersion: v1
    items:
    - apiVersion: metal3.io/v1alpha1
      kind: Provisioning
      metadata:
        name: provisioning-configuration
      spec:
        provisioningNetwork: 1
        provisioningOSDownloadURL: 2
        provisioningIP: 3
        provisioningNetworkCIDR: 4
        provisioningDHCPRange: 5
        provisioningInterface: 6
        watchAllNameSpaces: 7
    1
    provisioningNetwork は、ManagedUnmanaged、または Disabled のいずれかになります。Managed に設定すると、Metal3 はプロビジョニングネットワークを管理し、CBO は設定済みの DHCP サーバーで Metal3 Pod をデプロイします。Unmanaged に設定すると、システム管理者は DHCP サーバーを手動で設定します。
    2
    provisioningOSDownloadURL は有効な sha256 チェックサムを持つ有効な HTTPS URL で、Metal3 Pod が .qcow2.gz または .qcow2.xz で終わる qcow2 オペレーティングシステムイメージをダウンロードできるようにします。このフィールドは、プロビジョニングネットワークが ManagedUnmanaged、または Disabled のいずれの場合でも必要です。例: http://192.168.0.1/images/rhcos-<version>.x86_64.qcow2.gz?sha256=<sha>.
    3
    provisioningIP は、DHCP サーバーおよび ironic がネットワークのプロビジョニングために使用する静的 IP アドレスです。この静的 IP アドレスは、DHCP 範囲外の provisioning 内でなければなりません。この設定を設定する場合は、provisioning ネットワークが Disabled の場合でも、有効な IP アドレスが必要です。静的 IP アドレスは metal3 Pod にバインドされます。metal3 Pod が失敗し、別のサーバーに移動する場合、静的 IP アドレスも新しいサーバーに移動します。
    4
    Classless Inter-Domain Routing (CIDR) アドレス。この設定を設定する場合は、provisioning ネットワークが Disabled の場合でも、有効な CIDR アドレスが必要です。例: 192.168.0.1/24
    5
    DHCP の範囲。この設定は、 Managed プロビジョニングネットワークにのみ適用されます。provisioning ネットワークが Disabled の場合は、この設定を省略します。例: 192.168.0.64, 192.168.0.253
    6
    クラスターノードの provisioning インターフェース用の NIC 名。provisioningInterface 設定は、Managed および Unmanaged プロビジョニングネットワークにのみ適用されます。provisioning ネットワークが Disabled の場合に、provisioningInterface 設定が省略されます。代わりに bootMACAddress 設定を使用するように provisioningInterface 設定を省略します。
    7
    metal3 がデフォルトの openshift-machine-api namespace 以外の namespace を監視するようにするには、この設定を true に設定します。デフォルト値は false です。
  5. 変更をプロビジョニング CR ファイルに保存します。
  6. プロビジョニング CR ファイルをクラスターに適用します。

    $ oc apply -f enable-provisioning-nw.yaml