16.4. シングルノード OpenShift クラスターのデプロイ


16.4.1. マネージドシングルノード OpenShift のイメージベースのデプロイメントについて

イメージベースのインストールを使用してシングルノード OpenShift がプリインストールされたホストがリモートサイトに到達すると、技術者はわずか数分でホストを簡単に再設定してデプロイできます。

ハブアンドスポークアーキテクチャーを持つクラスターの場合、プリインストールされたホストのデプロイメントを完了するには、まず各ホストのハブクラスターでサイト固有の設定リソースを定義する必要があります。これらのリソースには、ベアメタルホストのプロパティー、認証の詳細、その他のデプロイメントおよびネットワーク情報などの設定情報が含まれています。

Image Based Install (IBI) Operator は、これらのリソースから設定 ISO を作成し、設定 ISO がアタッチされた状態でホストを起動します。ホストは設定 ISO をマウントし、再設定プロセスを実行します。再設定が完了すると、シングルノード OpenShift クラスターの準備は完了します。

注記

ベアメタルホストごとに個別の設定リソースを作成する必要があります。

ハブアンドスポークアーキテクチャーを持つクラスターにプリインストールされたホストをデプロイするには、次の大まかな手順を参照してください。

  1. ハブクラスターに IBI Operator をインストールします。
  2. 各ホストのハブクラスターにサイト固有の設定リソースを作成します。
  3. IBI Operator はこれらのリソースから設定 ISO を作成し、設定 ISO がアタッチされた状態でターゲットホストを起動します。
  4. ホストは設定 ISO をマウントし、再設定プロセスを実行します。再設定が完了すると、シングルノード OpenShift クラスターの準備は完了します。
注記

または、ハブクラスターを使用せずに、クラスターにプリインストールされたホストを手動でデプロイすることもできます。ImageBasedConfig リソースとインストールマニフェストを定義し、それを openshift-install インストールプログラムへの入力として提供する必要があります。詳細は、「openshift-install プログラムを使用してシングルノード OpenShift クラスターをデプロイする」を参照してください。

16.4.1.1. Image Based Install Operator のインストール

Image Based Install (IBI) Operator は、ベアメタルホストにプリインストールされたシングルノード OpenShift のイメージベースデプロイメントワークフローの構成要素です。

注記

IBI Operator は、MCE バージョン 2.7 以降の multicluster engine for Kubernetes Operator の構成要素です。

前提条件

  • cluster-admin 権限を持つユーザーとしてログインしている。
  • Red Hat Advanced Cluster Management (RHACM) ハブクラスター、または multicluster engine for Kubernetes Operator をデプロイした。
  • 「イメージベースのインストールのソフトウェア前提条件」セクションで、ソフトウェアコンポーネントの必要なバージョンを確認した。

手順

  • 次のコマンドを実行して、MultiClusterEngine リソースの image-based-install-Operator コンポーネントで enabled 仕様を true に設定します。

    $ oc patch multiclusterengines.multicluster.openshift.io multiclusterengine --type json \
    --patch '[{"op": "add", "path":"/spec/overrides/components/-", "value": {"name":"image-based-install-operator","enabled": true}}]'

検証

  • 次のコマンドを実行して、Image Based Install Operator Pod が実行されていることを確認します。

    $ oc get pods -A | grep image-based

    出力例

    multicluster-engine             image-based-install-operator-57fb8sc423-bxdj8             2/2     Running     0               5m

16.4.1.2. IBI Operator を使用してマネージドシングルノード OpenShift クラスターをデプロイする

ハブクラスターにサイト固有の設定リソースを作成し、プリインストールされたホストのイメージベースのデプロイメントを開始します。

ハブクラスターでこれらの設定リソースを作成すると、Image Based Install (IBI) Operator は設定 ISO を生成し、それをターゲットホストにアタッチしてサイト固有の設定プロセスを開始します。設定プロセスが完了すると、シングルノード OpenShift クラスターの準備は完了します。

注記

ハブクラスターで設定する必要がある設定リソースの詳細は、「プリインストールされたホストのデプロイに仕様するクラスター設定リソース」を参照してください。

前提条件

  • イメージベースのインストールを使用して、シングルノード OpenShift をホストにプリインストールした。
  • cluster-admin 権限を持つユーザーとしてログインしている。
  • Red Hat Advanced Cluster Management (RHACM) ハブクラスター、または multicluster engine for Kubernetes Operator (MCE) をデプロイした。
  • ハブクラスターに IBI Operator をインストールした。
  • プルリクエストを認証するためのプルシークレットを作成した。詳細は、「イメージプルシークレットの使用」を参照してください。

手順

  1. 次のコマンドを実行して、ibi-ns namespace を作成します。

    $ oc create namespace ibi-ns
  2. イメージレジストリーの Secret リソースを作成します。

    1. イメージレジストリーの Secret リソースを定義する YAML ファイルを作成します。

      secret-image-registry.yaml ファイルの例

      apiVersion: v1
      kind: Secret
      metadata:
        name: ibi-image-pull-secret
        namespace: ibi-ns
      stringData:
        .dockerconfigjson: <base64-docker-auth-code> 1
      type: kubernetes.io/dockerconfigjson

      1
      base64 でエンコードされた認証情報の詳細を提供する必要があります。イメージプルシークレットの使用に関する詳細は、「関連情報」セクションを参照してください。
    2. 次のコマンドを実行して、イメージレジストリーの Secret リソースを作成します。

      $ oc create -f secret-image-registry.yaml
  3. オプション: ホストの静的ネットワークを設定します。

    1. nmstate 形式の静的ネットワーク設定を含む Secret リソースを作成します。

      host-network-config-secret.yaml ファイルの例

      apiVersion: v1
      kind: Secret
      metadata:
       name: host-network-config-secret 1
       namespace: ibi-ns
      type: Opaque
      stringData:
       nmstate: | 2
        interfaces:
          - name: ens1f0 3
            type: ethernet
            state: up
            ipv4:
              enabled: true
              address:
                - ip: 192.168.200.25
                  prefix-length: 24
              dhcp: false 4
            ipv6:
              enabled: false
        dns-resolver:
          config:
            server:
              - 192.168.15.47 5
              - 192.168.15.48
        routes:
          config: 6
            - destination: 0.0.0.0/0
              metric: 150
              next-hop-address: 192.168.200.254
              next-hop-interface: ens1f0
              table-id: 254

      1
      Secret リソースの名前を指定します。
      2
      静的ネットワーク設定を nmstate 形式で定義します。
      3
      ホスト上のインターフェイスの名前を指定します。インターフェイスの名前は、オペレーティングシステムに表示される実際の NIC 名と同じである必要があります。NIC マッチングに MAC アドレスを使用するには、identifier フィールドを mac-address に設定します。
      4
      nmstate がインターフェイスに静的 IP アドレスを割り当てるようにするには、dhcp: false を指定する必要があります。
      5
      システムがドメイン名を解決するために使用する 1 つ以上の DNS サーバーを指定します。
      6
      この例のデフォルトルートは、ens1f0 インターフェイスを介してネクストホップ IP アドレス 192.168.200.254 に設定されています。
  4. BareMetalHost および Secret リソースを作成します。

    1. BareMetalHost および Secret リソースを定義する YAML ファイルを作成します。

      ibi-bmh.yaml ファイルの例

      apiVersion: metal3.io/v1alpha1
      kind: BareMetalHost
      metadata:
        name: ibi-bmh 1
        namespace: ibi-ns
      spec:
        online: false 2
        bootMACAddress: 00:a5:12:55:62:64 3
        bmc:
          address: redfish-virtualmedia+http://192.168.111.1:8000/redfish/v1/Systems/8a5babac-94d0-4c20-b282-50dc3a0a32b5 4
          credentialsName: ibi-bmh-bmc-secret 5
        preprovisioningNetworkDataName: host-network-config-secret 6
        automatedCleaningMode: disabled 7
        externallyProvisioned: true 8
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: ibi-bmh-secret 9
        namespace: ibi-ns
      type: Opaque
      data:
        username: <user_name> 10
        password: <password> 11

      1
      BareMetalHost リソースの名前を指定します。
      2
      ホストをオンラインにするかどうかを指定します。
      3
      ホストのブート MAC アドレスを指定します。
      4
      BMC アドレスを指定します。仮想メディアネットワークの起動をサポートするベアメタルホストドライバー (redfish-virtualmedia や idrac-virtualmedia など) のみを使用できます。
      5
      ベアメタルホストの Secret リソースの名前を指定します。
      6
      オプション: ホストに静的ネットワーク設定が必要な場合は、その設定を含む Secret リソースの名前を指定します。
      7
      プロビジョニングサービスがディスク検査中にシードイメージなどのすべてのプリインストールアーティファクトを削除しないようにするには、automatedCleaningMode:disabled を指定する必要があります。
      8
      ホストを、設定 ISO ではなくプリインストールされたディスクから起動できるようにするには、externallyProvisioned: true を指定する必要があります。
      9
      Secret リソースの名前を指定します。
      10
      ユーザー名を指定します。
      11
      パスワードを指定します。
    2. 次のコマンドを実行して、BareMetalHost および Secret リソースを作成します。

      $ oc create -f ibi-bmh.yaml
  5. ClusterImageSet リソースを作成します。

    1. ClusterImageSet リソースを定義する YAML ファイルを作成します。

      ibi-cluster-image-set.yaml ファイルの例

      apiVersion: hive.openshift.io/v1
      kind: ClusterImageSet
      metadata:
        name: ibi-img-version-arch 1
      spec:
        releaseImage: ibi.example.com:path/to/release/images:version-arch 2

      1
      ClusterImageSet リソースの名前を指定します。
      2
      デプロイメントに使用するリリースイメージのアドレスを指定します。シードイメージの生成時に使用したイメージレジストリーとは異なるイメージレジストリーを使用する場合は、そのリリースイメージの OpenShift Container Platform バージョンが同じであることを確認してください。
    2. 次のコマンドを実行して ClusterImageSet リソースを作成します。

      $ oc apply -f ibi-cluster-image-set.yaml
  6. ImageClusterInstall リソースを作成します。

    1. ImageClusterInstall リソースを定義する YAML ファイルを作成します。

      ibi-image-cluster-install.yaml ファイルの例

      apiVersion: extensions.hive.openshift.io/v1alpha1
      kind: ImageClusterInstall
      metadata:
        name: ibi-image-install 1
        namespace: ibi-ns
      spec:
        bareMetalHostRef:
          name: ibi-bmh 2
          namespace: ibi-ns
        clusterDeploymentRef:
          name: ibi-cluster-deployment 3
        hostname: ibi-host 4
        imageSetRef:
          name: ibi-img-version-arch 5
        machineNetwork: 10.0.0.0/24 6
        proxy: 7
          httpProxy: "http://proxy.example.com:8080"
          #httpsProxy: "http://proxy.example.com:8080"
          #noProxy: "no_proxy.example.com"

      1
      ImageClusterInstall リソースの名前を指定します。
      2
      イメージベースのインストールのターゲットとなる BareMetalHost リソースを指定します。
      3
      ターゲットホストのイメージベースのインストールに使用する ClusterDeployment リソースの名前を指定します。
      4
      クラスターのホスト名を指定します。
      5
      デプロイメントに使用するコンテナーリリースイメージを定義するために使用した ClusterImageSet リソースの名前を指定します。
      6
      外部ネットワークの公開 CIDR (Classless Inter-Domain Routing) を指定します。
      7
      オプション: クラスターのデプロイメントに使用するプロキシーを指定します。
      重要

      クラスターをデプロイするのにプロキシー設定が必要な場合は、次の手順を実行する必要があります。

      • プロキシー設定を備えたシードクラスターからシードイメージを作成します。2 つのプロキシー設定が同じである必要はありません。
      • インストールマニフェストの machineNetwork フィールドを設定します。
    2. 次のコマンドを実行して、ImageClusterInstall リソースを作成します。

      $ oc create -f ibi-image-cluster-install.yaml
  7. ClusterDeployment リソースを作成します。

    1. ClusterDeployment リソースを定義する YAML ファイルを作成します。

      ibi-cluster-deployment.yaml ファイルの例

      apiVersion: hive.openshift.io/v1
      kind: ClusterDeployment
      metadata:
        name: ibi-cluster-deployment 1
        namespace: ibi-ns 2
      spec:
        baseDomain: example.com 3
        clusterInstallRef:
          group: extensions.hive.openshift.io
          kind: ImageClusterInstall
          name: ibi-image-install 4
          version: v1alpha1
        clusterName: ibi-cluster 5
        platform:
          none: {}
        pullSecretRef:
          name: ibi-image-pull-secret 6

      1
      ClusterDeployment リソースの名前を指定します。
      2
      ClusterDeployment リソースの namespace を指定します。
      3
      クラスターが属するベースドメインを指定します。
      4
      ターゲットホストのイメージベースのインストールに使用するコンテナーイメージを定義した ImageClusterInstall の名前を指定します。
      5
      クラスターの名前を指定します。
      6
      イメージレジストリーからイメージをプルするために使用するシークレットを指定します。
    2. 次のコマンドを実行して ClusterDeployment リソースを作成します。

      $ oc apply -f ibi-cluster-deployment.yaml
  8. ManagedCluster リソースを作成します。

    1. ManagedCluster リソースを定義する YAML ファイルを作成します。

      ibi-managed.yaml ファイルの例

      apiVersion: cluster.open-cluster-management.io/v1
      kind: ManagedCluster
      metadata:
        name: sno-ibi 1
      spec:
        hubAcceptsClient: true 2

      1
      ManagedCluster リソースの名前を指定します。
      2
      RHACM がクラスターを管理できるようにするには、true を指定します。
    2. 次のコマンドを実行して、ManagedCluster リソースを作成します。

      $ oc apply -f ibi-managed.yaml

検証

  1. 次のコマンドを実行して、ターゲットホストのインストールの進行状況を監視するためにハブクラスター内の ImageClusterInstall のステータスを確認します。

    $ oc get imageclusterinstall

    出力例

    NAME       REQUIREMENTSMET           COMPLETED                     BAREMETALHOSTREF
    target-0   HostValidationSucceeded   ClusterInstallationSucceeded  ibi-bmh

    警告

    ImageClusterInstall リソースが削除された場合、IBI Operator は BareMetalHost リソースを再度アタッチし、マシンを再起動します。

  2. インストールが完了したら、次のコマンドを実行して kubeconfig シークレットを取得し、マネージドクラスターにログインできます。

    $ oc extract secret/<cluster_name>-admin-kubeconfig -n <cluster_namespace>  --to - > <directory>/<cluster_name>-kubeconfig
    • <cluster_name> はクラスターの名前です。
    • <cluster_namespace> はクラスターの namespace です。
    • <directory> はファイルを作成するディレクトリーです。
16.4.1.2.1. プリインストールされたホストのデプロイに使用するクラスター設定リソース

リモートサイトでプリインストールされたホストのデプロイメントを完了するには、各ベアメタルホストのハブクラスターで次のサイト固有のクラスター設定リソースを設定する必要があります。

表16.6 クラスター設定リソースのリファレンス
リソース説明

Namespace

マネージドシングルノード OpenShift クラスターの namespace。

BareMetalHost

プロビジョニングやハードウェア設定など、物理ホストとそのプロパティーについて記述します。

ベアメタルホストの Secret

ホスト BMC の認証情報。

ベアメタルホストの静的ネットワーク設定の Secret

オプション: ターゲットホストの静的ネットワーク設定を記述します。

イメージレジストリーの Secret

イメージレジストリーの認証情報。イメージレジストリーのシークレットは、kubernetes.io/dockerconfigjson 型である必要があります。

ImageClusterInstall

ベアメタルホスト、デプロイメント、およびイメージセットリソースを参照します。

ClusterImageSet

クラスターに使用するリリースイメージを記述します。

ClusterDeployment

ネットワーク、認証、プラットフォーム固有の設定を記述します。

ManagedCluster

Red Hat Advanced Cluster Management (RHACM) が登録および管理できるようにするためのクラスター詳細を記述します。

ConfigMap

オプション: クラスターデプロイメントの追加設定を記述します。たとえば、クラスターサービスの信頼済み通信を確保するためにホストに信頼済み証明書のバンドルを追加する場合などです。

16.4.1.2.2. ImageClusterInstall リソース API 仕様

以下では、ImageClusterInstall リソースの API 仕様を説明します。このリソースは、Image Based Install Operator のエンドポイントです。

表16.7 必須の仕様
仕様説明

imageSetRef

string

デプロイメントのリリースイメージを定義する ClusterImageSet リソースの名前を指定します。

hostname

string

クラスターのホスト名を指定します。

sshKey

string

ターゲットホストへの SSH アクセスを提供するには、SSH キーを指定します。

表16.8 任意の仕様
仕様説明

clusterDeploymentRef

string

ターゲットホストのイメージベースのインストールに使用する ClusterDeployment リソースの名前を指定します。

clusterMetadata

string

デプロイメントが完了すると、クラスターにログインするための cluster-admin kubeconfig 認証情報など、クラスターに関するメタデータ情報がこの仕様に自動的に入力されます。

imageDigestSources

string

リリースイメージコンテンツのソースまたはリポジトリーを指定します。次に例を示します。

imageDigestSources:
  - mirrors:
      - "registry.example.com:5000/ocp4/openshift4"
    source: "quay.io/openshift-release-dev/ocp-release"

extraManifestsRefs

string

ターゲットクラスターに適用する追加のマニフェストを含む ConfigMap リソースを指定します。

bareMetalHostRef

string

クラスターのデプロイメントに使用する bareMetalHost リソースを指定します

machineNetwork

string

外部ネットワークの公開 CIDR (Classless Inter-Domain Routing) を指定します。

proxy

string

クラスターのプロキシー設定を指定します。以下はその例です。

proxy:
  httpProxy: "http://proxy.example.com:8080"
  httpsProxy: "http://proxy.example.com:8080"
  noProxy: "no_proxy.example.com"

caBundleRef

string

ホストの信頼済み証明書の新しいバンドルを含む ConfigMap リソースを指定します。

16.4.1.3. 追加マニフェスト用の ConfigMap リソース

オプションで ConfigMap リソースを作成し、マネージドシングルノード OpenShift クラスターのイメージベースのデプロイメントで追加のマニフェストを定義できます。

ConfigMap リソースを作成したら、ImageClusterInstall リソースでそれを参照します。デプロイ中に、IBI Operator は追加のマニフェストをデプロイメントに含めます。

16.4.1.3.1. イメージベースのデプロイメントに追加マニフェストを追加するための ConfigMap リソースを作成する

ConfigMap リソースを使用して、シングルノード OpenShift クラスターのイメージベースのデプロイメントに追加のマニフェストを追加できます。

次の例では、Single Root I/O Virtualization (SR-IOV) ネットワークをデプロイに追加します。

前提条件

  • イメージベースのインストールを使用して、シングルノード OpenShift をホストにプリインストールした。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. SriovNetworkNodePolicy および SriovNetwork リソースを作成します。

    1. リソースを定義する YAML ファイルを作成します。

      sriov-extra-manifest.yaml ファイルの例

      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetworkNodePolicy
      metadata:
        name: "example-sriov-node-policy"
        namespace: openshift-sriov-network-operator
      spec:
        deviceType: vfio-pci
        isRdma: false
        nicSelector:
          pfNames: [ens1f0]
        nodeSelector:
          node-role.kubernetes.io/master: ""
        mtu: 1500
        numVfs: 8
        priority: 99
        resourceName: example-sriov-node-policy
      ---
      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetwork
      metadata:
        name: "example-sriov-network"
        namespace: openshift-sriov-network-operator
      spec:
        ipam: |-
          {
          }
        linkState: auto
        networkNamespace: sriov-namespace
        resourceName: example-sriov-node-policy
        spoofChk: "on"
        trust: "off"

    2. 次のコマンドを実行して、ConfigMap リソースを作成します。

      $ oc create configmap sr-iov-extra-manifest --from-file=sriov-extra-manifest.yaml -n ibi-ns 1
      1
      ImageClusterInstall リソースがある namespace を指定します。

      出力例

      configmap/sr-iov-extra-manifest created

  2. ImageClusterInstall リソースの spec.extraManifestsRefs フィールドで ConfigMap リソースを参照します。

    #...
      spec:
        extraManifestsRefs:
        - name: sr-iov-extra-manifest
    #...
16.4.1.3.2. イメージベースのデプロイメントで CA バンドルを追加するための ConfigMap リソースを作成する

クラスターサービスの信頼済み通信を確保するために、ConfigMap リソースを使用してホストに認証局 (CA) バンドルを追加できます。

ConfigMap リソースを作成したら、ImageClusterInstall リソースの spec.caBundleRef フィールドでそれを参照します。

前提条件

  • イメージベースのインストールを使用して、シングルノード OpenShift をホストにプリインストールした。
  • cluster-admin 権限を持つユーザーとしてログインしている。

手順

  1. tls-ca-bundle.pem という名前の CA バンドルファイルを作成します。

    tls-ca-bundle.pem ファイルの例

    -----BEGIN CERTIFICATE-----
    MIIDXTCCAkWgAwIBAgIJAKmjYKJbIyz3MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
    ...Custom CA certificate bundle...
    4WPl0Qb27Sb1xZyAsy1ww6MYb98EovazUSfjYr2EVF6ThcAPu4/sMxUV7He2J6Jd
    cA8SMRwpUbz3LXY=
    -----END CERTIFICATE-----

  2. 以下のコマンドを実行して ConfigMap オブジェクトを作成します。

    $ oc create configmap custom-ca --from-file=tls-ca-bundle.pem -n ibi-ns
    • custom-ca は、ConfigMap リソースの名前を指定します。
    • tls-ca-bundle.pem は、ConfigMap リソース内の data エントリーのキーを定義します。tls-ca-bundle.pem キーを含む data エントリーを追加する必要があります。
    • ibi-ns は、ImageClusterInstall リソースがある namespace を指定します。

      出力例

      configmap/custom-ca created

  3. ImageClusterInstall リソースの spec.caBundleRef フィールドで ConfigMap リソースを参照します。

    #...
      spec:
        caBundleRef:
          name: custom-ca
    #...

16.4.2. シングルノード OpenShift のイメージベースのデプロイについて

openshift-install プログラムを使用すると、設定 ISO を手動で生成できます。設定 ISO をプリインストールされたホストにアタッチして、デプロイを完了します。

16.4.2.1. openshift-install プログラムを使用したシングルノード OpenShift クラスターのデプロイ

openshift-install プログラムを使用して、イメージベースのインストールでプリインストールしたホストを設定およびデプロイできます。サイト固有の詳細情報を使用してターゲットホストを設定するには、次のリソースを作成する必要があります。

  • install-config.yaml インストールマニフェスト
  • image-based-config.yaml マニフェスト

openshift-install プログラムは、これらのリソースを使用して設定 ISO を生成します。この設定 ISO をプリインストールされたターゲットホストにアタッチして、デプロイを完了します。

注記

image-based-config.yaml マニフェストの仕様の詳細は、「image-based-config.yaml マニフェストのリファレンス仕様」を参照してください。

前提条件

  • イメージベースのインストールを使用して、シングルノード OpenShift をホストにプリインストールした。
  • 最新バージョンの openshift-install プログラムをダウンロードした。
  • プルリクエストを認証するためのプルシークレットを作成した。詳細は、「イメージプルシークレットの使用」を参照してください。

手順

  1. 次のコマンドを実行して作業ディレクトリーを作成します。

    $ mkdir ibi-config-iso-workdir 1
    1
    ibi-config-iso-workdir は、作業ディレクトリーの名前に置き換えます。
  2. インストールマニフェストを作成します。

    1. install-config マニフェストを定義する YAML ファイルを作成します。

      install-config.yaml ファイルの例

      apiVersion: v1
      metadata:
        name: sno-cluster-name
      baseDomain: host.example.com
      compute:
        - architecture: amd64
          hyperthreading: Enabled
          name: worker
          replicas: 0
      controlPlane:
        architecture: amd64
        hyperthreading: Enabled
        name: master
        replicas: 1
      networking:
        clusterNetwork:
        - cidr: 10.128.0.0/14
          hostPrefix: 23
        machineNetwork:
        - cidr: 192.168.200.0/24
        networkType: OVNKubernetes
        serviceNetwork:
        - 172.30.0.0/16
      platform:
        none: {}
      fips: false
      cpuPartitioningMode: "AllNodes"
      pullSecret: '{"auths":{"<your_pull_secret>"}}}'
      sshKey: 'ssh-rsa <your_ssh_pub_key>'

      重要

      クラスターをデプロイするのにプロキシー設定が必要な場合は、次の手順を実行する必要があります。

      • プロキシー設定を備えたシードクラスターからシードイメージを作成します。2 つのプロキシー設定が同じである必要はありません。
      • インストールマニフェストで machineNetwork フィールドを設定します。
    2. ファイルを作業ディレクトリーに保存します。
  3. オプション: 次のコマンドを実行して、作業ディレクトリーに設定テンプレートを作成します。

    $ openshift-install image-based create config-template --dir ibi-config-iso-workdir/

    出力例

    INFO Config-Template created in: ibi-config-iso-workdir

    このコマンドにより、作業ディレクトリーに image-based-config.yaml 設定テンプレートが作成されます。

    #
    # Note: This is a sample ImageBasedConfig file showing
    # which fields are available to aid you in creating your
    # own image-based-config.yaml file.
    #
    apiVersion: v1beta1
    kind: ImageBasedConfig
    metadata:
      name: example-image-based-config
    additionalNTPSources:
      - 0.rhel.pool.ntp.org
      - 1.rhel.pool.ntp.org
    hostname: change-to-hostname
    releaseRegistry: quay.io
    # networkConfig contains the network configuration for the host in NMState format.
    # See https://nmstate.io/examples.html for examples.
    networkConfig:
      interfaces:
        - name: eth0
          type: ethernet
          state: up
          mac-address: 00:00:00:00:00:00
          ipv4:
            enabled: true
            address:
              - ip: 192.168.122.2
                prefix-length: 23
            dhcp: false
  4. 設定ファイルを編集します。

    image-based-config.yaml ファイルの例

    #
    # Note: This is a sample ImageBasedConfig file showing
    # which fields are available to aid you in creating your
    # own image-based-config.yaml file.
    #
    apiVersion: v1beta1
    kind: ImageBasedConfig
    metadata:
      name: sno-cluster-name
    additionalNTPSources:
      - 0.rhel.pool.ntp.org
      - 1.rhel.pool.ntp.org
    hostname: host.example.com
    releaseRegistry: quay.io
    # networkConfig contains the network configuration for the host in NMState format.
    # See https://nmstate.io/examples.html for examples.
    networkConfig:
        interfaces:
          - name: ens1f0
            type: ethernet
            state: up
            ipv4:
              enabled: true
              dhcp: false
              auto-dns: false
              address:
                - ip: 192.168.200.25
                  prefix-length: 24
            ipv6:
              enabled: false
        dns-resolver:
          config:
            server:
              - 192.168.15.47
              - 192.168.15.48
        routes:
          config:
          - destination: 0.0.0.0/0
            metric: 150
            next-hop-address: 192.168.200.254
            next-hop-interface: ens1f0

  5. 次のコマンドを実行して、作業ディレクトリーに設定 ISO を作成します。

    $ openshift-install image-based create config-image --dir ibi-config-iso-workdir/

    出力例

    INFO Adding NMConnection file <ens1f0.nmconnection>
    INFO Consuming Install Config from target directory
    INFO Consuming Image-based Config ISO configuration from target directory
    INFO Config-Image created in: ibi-config-iso-workdir/auth

    作業ディレクトリーで出力を確認します。

    出力例

    ibi-config-iso-workdir/
    ├── auth
    │   ├── kubeadmin-password
    │   └── kubeconfig
    └── imagebasedconfig.iso

  6. 任意の方法を使用して imagebasedconfig.iso をプリインストールされたホストにアタッチします。ホストを再起動して設定プロセスを完了し、クラスターをデプロイします。

検証

ホストで設定プロセスが完了したら、クラスターにアクセスしてそのステータスを確認します。

  1. 次のコマンドを実行して、kubeconfig 環境変数を kubeconfig ファイルにエクスポートします。

    $ export KUBECONFIG=ibi-config-iso-workdir/auth/kubeconfig
  2. 次のコマンドを実行して、クラスターが応答していることを確認します。

    $ oc get nodes

    出力例

    NAME                                         STATUS   ROLES                  AGE     VERSION
    node/sno-cluster-name.host.example.com       Ready    control-plane,master   5h15m   v1.30.3

16.4.2.1.1. image-based-config.yaml マニフェストのリファレンス仕様

以下では、image-based-config.yaml マニフェストの仕様を説明します。

openshift-install プログラムは、image-based-config.yaml マニフェストを使用して、シングルノード OpenShift のイメージベースのデプロイ用にサイト固有の設定 ISO を作成します。

表16.9 必須の仕様
仕様説明

hostname

string

シングルノード OpenShift クラスターのノードの名前を定義します。

表16.10 任意の仕様
仕様説明

networkConfig

string

ホストのネットワーク設定を指定します。次に例を示します。

networkConfig:
    interfaces:
      - name: ens1f0
        type: ethernet
        state: up
        ...

静的ネットワークが必要な場合は、ライブインストール ISO を作成するホストに nmstatectl ライブラリーをインストールする必要があります。nmstate を使用してネットワーク設定を定義する方法の詳細は、nmstate.io を参照してください。

重要

インターフェイスの名前は、オペレーティングシステムに表示される実際の NIC 名と同じである必要があります。

additionalNTPSources

string

全クラスターホストの NTP ソースのリストを指定します。これらの NTP ソースは、クラスター内の既存の NTP ソースに追加されます。NTP ソースのホスト名または IP アドレスを使用できます。

releaseRegistry

string

シードクラスターのリリースイメージに使用したコンテナーイメージレジストリーを指定します。

nodeLabels

map[string]string

シングルノード OpenShift ノードのカスタムノードラベルを指定します。次に例を示します。

nodeLabels:
  node-role.kubernetes.io/edge: true
  environment: production

16.4.2.2. 追加マニフェストのリソースの設定

必要に応じて、シングルノード OpenShift クラスターのイメージベースのデプロイに追加のリソースを定義できます。

追加リソースは、install-config.yaml および image-based-config.yaml マニフェストと同じ作業ディレクトリー内の extra-manifests フォルダーに作成します。

16.4.2.2.1. extra-manifests フォルダーにリソースを作成する

作業ディレクトリーの extra-manifests フォルダーにリソースを作成して、シングルノード OpenShift クラスターのイメージベースのデプロイにマニフェストをさらに追加できます。

次の例では、Single Root I/O Virtualization (SR-IOV) ネットワークをデプロイに追加します。

前提条件

  • install-config.yaml および image-based-config.yaml マニフェストを含む作業ディレクトリーを作成した。

手順

  1. 作業ディレクトリーに移動し、次のコマンドを実行して extra-manifests フォルダーを作成します。

    $ mkdir extra-manifests
  2. extra-manifests フォルダーに SriovNetworkNodePolicy および SriovNetwork リソースを作成します。

    1. リソースを定義する YAML ファイルを作成します。

      sriov-extra-manifest.yaml ファイルの例

      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetworkNodePolicy
      metadata:
        name: "example-sriov-node-policy"
        namespace: openshift-sriov-network-operator
      spec:
        deviceType: vfio-pci
        isRdma: false
        nicSelector:
          pfNames: [ens1f0]
        nodeSelector:
          node-role.kubernetes.io/master: ""
        mtu: 1500
        numVfs: 8
        priority: 99
        resourceName: example-sriov-node-policy
      ---
      apiVersion: sriovnetwork.openshift.io/v1
      kind: SriovNetwork
      metadata:
        name: "example-sriov-network"
        namespace: openshift-sriov-network-operator
      spec:
        ipam: |-
          {
          }
        linkState: auto
        networkNamespace: sriov-namespace
        resourceName: example-sriov-node-policy
        spoofChk: "on"
        trust: "off"

検証

  • 設定 ISO を作成したら、作業ディレクトリーの .openshift_install_state.json ファイルで追加のマニフェストへの参照を確認できます。

     "*configimage.ExtraManifests": {
            "FileList": [
                {
                    "Filename": "extra-manifests/sriov-extra-manifest.yaml",
                    "Data": "YXBFDFFD..."
                }
            ]
        }
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.