13.2. 単一ノードでの OpenShift のインストール
Web ベースのアシステッドインストーラーと、アシステッドインストーラーを使用して生成した検出 ISO を使用して、単一ノードの OpenShift をインストールできます。また、coreos-installer
を使用してインストール ISO を生成することにより、単一ノードの OpenShift をインストールすることもできます。
13.2.1. アシステッドインストーラーを使用した単一ノード OpenShift のインストール
OpenShift Container Platform を単一ノードにインストールするには、Web ベースのアシステッドインストーラーウィザードのガイドに従い、インストールを管理します。
13.2.1.1. アシステッドインストーラーを使用したディスカバリー ISO の生成
OpenShift Container Platform を単一ノードにインストールするには、アシステッドインストーラーが生成できる検出 ISO が必要です。
手順
- 管理ホストでブラウザーを開き、Red Hat OpenShift Cluster Manager に移動します。
- Create Cluster をクリックして新規クラスターを作成します。
- Cluster Name フィールドにクラスターの名前を入力します。
Base Domain フィールドにベースドメインを入力します。以下に例を示します。
example.com
すべての DNS レコードはこのベースドメインのサブドメインである必要があり、クラスター名が含まれる必要があります。以下に例を示します。
<cluster-name>.example.com
注記クラスターのインストール後にベースドメインまたはクラスター名を変更することはできません。
- Install single node OpenShift (SNO) を選択し、ウィザードの残りの手順を完了します。検出 ISO をダウンロードします。
- 仮想メディアを使用してインストールするための検出 ISO URL を書き留めておきます。
このプロセス中に OpenShift Virtualization を有効にする場合は、仮想マシン用に 50 GiB 以上の 2 つ目のローカルストレージデバイスが必要です。
13.2.1.2. アシステッドインストーラーを使用した単一ノード OpenShift のインストール
アシステッドインストーラーを使用して、単一ノードクラスターをインストールします。
手順
- RHCOS 検出 ISO をターゲットホストにアタッチします。
- サーバーの BIOS 設定で起動ドライブの順序を設定して、アタッチされた検出 ISO から起動し、サーバーを再起動します。
- 管理ホストで、ブラウザーに戻ります。ホストが、検出されたホストのリストに表示されるまで待ちます。必要に応じて、Assisted Clusters ページを再読み込みし、クラスター名を選択します。
- インストールウィザードの手順を完了します。使用可能なサブネットからのサブネットを含む、ネットワークの詳細を追加します。必要に応じて SSH 公開鍵を追加します。
- インストールの進捗を監視します。クラスターイベントを確認します。インストールプロセスがサーバーのハードディスクへのオペレーティングシステムイメージの書き込みを完了すると、サーバーが再起動します。
検出 ISO を削除し、インストールドライブから起動するようにサーバーをリセットします。
サーバーが自動的に数回再起動し、コントロールプレーンがデプロイされます。
13.2.2. 単一ノードの OpenShift を手動でインストールする
OpenShift Container Platform を単一ノードにインストールするには、最初にインストール ISO を生成してから、ISO からサーバーを起動します。openshift-install
インストールプログラムを使用して、インストールを監視できます。
13.2.2.1. coreos-installer によるインストール ISO の生成
OpenShift Container Platform を単一ノードにインストールするには、インストール ISO が必要です。これは、以下の手順で生成できます。
前提条件
-
podman
をインストールします。
手順
OpenShift Container Platform バージョンを設定します。
$ OCP_VERSION=<ocp_version> 1
- 1
<ocp_version>
を現在のバージョン (latest-4.11
など) に置き換えます。
ホストアーキテクチャーを設定します。
$ ARCH=<architecture> 1
- 1
<architecture>
をターゲットホストアーキテクチャー (aarch64
やx86_64
など) に置き換えます。
OpenShift Container Platform クライアント (
oc
) をダウンロードし、次のコマンドを入力して使用できるようにします。$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-client-linux.tar.gz -o oc.tar.gz
$ tar zxf oc.tar.gz
$ chmod +x oc
OpenShift Container Platform インストーラーをダウンロードし、以下のコマンドを入力して使用できるようにします。
$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-install-linux.tar.gz -o openshift-install-linux.tar.gz
$ tar zxvf openshift-install-linux.tar.gz
$ chmod +x openshift-install
次のコマンドを実行して、RHCOS ISO URL を取得します。
$ ISO_URL=$(./openshift-install coreos print-stream-json | grep location | grep $ARCH | grep iso | cut -d\" -f4)
RHCOS ISO をダウンロードします。
$ curl -L $ISO_URL -o rhcos-live.iso
install-config.yaml
ファイルを作成します。apiVersion: v1 baseDomain: <domain> 1 compute: - name: worker replicas: 0 2 controlPlane: name: master replicas: 1 3 metadata: name: <name> 4 networking: 5 clusterNetwork: - cidr: 10.128.0.0/14 hostPrefix: 23 machineNetwork: - cidr: 10.0.0.0/16 6 networkType: OVNKubernetes serviceNetwork: - 172.30.0.0/16 platform: none: {} bootstrapInPlace: installationDisk: /dev/disk/by-id/<disk_id> 7 pullSecret: '<pull_secret>' 8 sshKey: | <ssh_key> 9
- 1
- クラスタードメイン名を追加します。
- 2
compute
レプリカを0
に設定します。これにより、コントロールプレーンノードがスケジュール可能になります。- 3
controlPlane
レプリカを1
に設定します。この設定は、以前のcompute
設定と組み合わせて、クラスターが単一ノードで実行されるようにします。- 4
メタデータ
名をクラスター名に設定します。- 5
networking
の詳細を設定します。OVN-Kubernetes は、単一ノードクラスターで許可されている唯一のネットワークタイプです。- 6
- 単一ノードの OpenShift クラスターのサブネットと一致するように
cidr
値を設定します。 - 7
- インストールディスクドライブへのパスを設定します (例:
/dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2)
。 - 8
- Red Hat OpenShift Cluster Manager からプルシークレット をコピーし、その内容をこの設定に追加します。
- 9
- インストール後にクラスターにログインできるように、管理ホストから公開 SSH 鍵を追加します。
以下のコマンドを実行して、OpenShift Container Platform アセットを生成します。
$ mkdir ocp
$ cp install-config.yaml ocp
$ ./openshift-install --dir=ocp create single-node-ignition-config
以下のコマンドを実行して、Ignition データを RHCOS ISO に埋め込みます。
$ alias coreos-installer='podman run --privileged --pull always --rm \ -v /dev:/dev -v /run/udev:/run/udev -v $PWD:/data \ -w /data quay.io/coreos/coreos-installer:release'
$ coreos-installer iso ignition embed -fi ocp/bootstrap-in-place-for-live-iso.ign rhcos-live.iso
13.2.2.2. openshift-install を使用したクラスターのインストールの監視
openshift-install
を使用して、単一ノードクラスターのインストールの進行状況を監視します。
手順
- 変更した RHCOS インストール ISO をターゲットホストにアタッチします。
- サーバーの BIOS 設定で起動ドライブの順序を設定して、アタッチされた検出 ISO から起動し、サーバーを再起動します。
管理ホストで、次のコマンドを実行してインストールを監視します。
$ ./openshift-install --dir=ocp wait-for install-complete
コントロールプレーンのデプロイ中にサーバーが数回再起動します。
検証
インストールが完了したら、次のコマンドを実行して環境を確認します。
$ export KUBECONFIG=ocp/auth/kubeconfig
$ oc get nodes
出力例
NAME STATUS ROLES AGE VERSION control-plane.example.com Ready master,worker 10m v1.24.0+beaaed6
13.2.3. USB ドライブに起動可能な ISO イメージを作成する
ISO イメージを含む起動可能な USB ドライブを使用して、ソフトウェアをインストールできます。USB ドライブを使用してサーバーを起動すると、ソフトウェアをインストールするサーバーの準備が整います。
手順
- 管理ホストで、USB ドライブを USB ポートに挿入します。
起動可能な USB ドライブを作成します。以下に例を示します。
# dd if=<path_to_iso> of=<path_to_usb> status=progress
ここでは、以下のようになります。
- <path_to_iso>
-
rhcos-live.iso
など、ダウンロードした ISO ファイルへの相対パスです。 - <path_to_usb>
-
/dev/sdb
など、接続された USB ドライブの場所です。
ISO が USB ドライブにコピーされたら、USB ドライブを使用してサーバーにソフトウェアをインストールできます。
13.2.4. Redfish API を使用した HTTP ホスト ISO イメージからの起動
Redfish Baseboard Management Controller (BMC) API を使用してインストールした ISO を使用して、ネットワーク内のホストをプロビジョニングできます。
前提条件
- インストール Red Hat Enterprise Linux CoreOS (RHCOS) ISO をダウンロードしている。
手順
- ネットワークでアクセス可能な HTTP サーバーに ISO ファイルをコピーします。
ホストされている ISO ファイルからホストを起動します。以下に例を示します。
次のコマンドを実行して、redfish API を呼び出し、ホストされている ISO を
VirtualMedia
ブートメディアとして設定します。$ curl -k -u <bmc_username>:<bmc_password> -d '{"Image":"<hosted_iso_file>", "Inserted": true}' -H "Content-Type: application/json" -X POST <host_bmc_address>/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia
詳細は以下のようになります。
- <bmc_username>:<bmc_password>
- ターゲットホスト BMC のユーザー名とパスワードです。
- <hosted_iso_file>
-
ホストされたインストール ISO の URL です (例:
http://webserver.example.com/rhcos-live-minimal.iso
)。ISO は、ターゲットホストマシンからアクセスできる必要があります。 - <host_bmc_address>
- ターゲットホストマシンの BMC IP アドレスです。
次のコマンドを実行して、
VirtualMedia
デバイスから起動するようにホストを設定します。$ curl -k -u <bmc_username>:<bmc_password> -X PATCH -H 'Content-Type: application/json' -d '{"Boot": {"BootSourceOverrideTarget": "Cd", "BootSourceOverrideMode": "UEFI", "BootSourceOverrideEnabled": "Once"}}' <host_bmc_address>/redfish/v1/Systems/System.Embedded.1
ホストを再起動します。
$ curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "ForceRestart"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset
オプション: ホストの電源がオフになっている場合は、
{"ResetType": "On"}
スイッチを使用して起動できます。以下のコマンドを実行します。$ curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "On"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset