zaki work log

作業ログやら生活ログやらなんやら

オンプレOpenShiftの構築はAssisted Installerが簡単!シングルノード構築(SNO)をお試し

先日OpenShift Localを試してみたけどOCP-Vは入れられなかったので、シングルノードRHOCPクラスター構築を試してみることにした。
かなり昔にUPI(完全マニュアルインストール方式)でしか構築したことなかったけど、今はいろいろ構築手段があるらしく、オンプレでの構築に使える「Assisted Installer」というのを試してみたので、その流れについてまとめ。

(注) 構築したRHOCPは4.21だけど、(2026.05.06時点で)ドキュメントは日本語化されてるのが4.20までだったので、わかりやすさ重視で4.20の日本語ドキュメントにリンクしてる。

作業の流れ

まとめると以下の通り。うむ、シンプルで簡単だ。

  1. インストールするマシンを用意 (※入力パラメタにNICのMACアドレスがあるのでVMの場合はガワだけ先に作成する)
  2. ネットワーク内DNSのレコード設定
  3. Red Hat OpenShift Cluster Managerで必要事項を入力しISOダウンロード
  4. ダウンロードしたISOでブートするとインストール処理が自動で走るので1時間ほど(手元の環境でRHOCP4.21の場合)待つ
  5. 問題がなければRed Hat OpenShift Cluster Managerで表示がInstallation completed successfullyとなり、webコンソールアクセスや認証情報の確認、kubeconfigファイルのダウンロードが可能になる

必要なものはOpenShiftノードにするマシンと、ノードが接続するネットワーク内でワイルドカード設定が使えるDNSサーバー、あとRed Hat OpenShift Cluster Managerにアクセスするための作業PCがあれば良い。
bootstrapノードやTFTPサーバー等は不要。

要件と構成

1.3. 単一ノードに OpenShift をインストールするための要件 | Installing on a single node | OpenShift Container Platform | 4.20 | Red Hat Documentation

手元の環境に構築した際のパラメタは以下の通り。(あとでメモリやストレージ足りずに増強して再構築したけど)

  • CPU: 8コア
  • メモリ: 16GB
  • ストレージ: 120GB
  • OCPホスト: 192.168.0.112
  • デフォルトゲートウェイ: 192.168.0.1
  • DNS: 192.168.0.4
  • CIDR: 192.168.0.0/24
  • クラスター名: sno
  • ドメイン: naru.jp-z.jp
  • DNS設定
    • OCPノード: sno1.naru.jp-z.jp
    • Kubernetes API: api.sno1.naru.jp-z.jp
    • Internal API: api-int.sno1.naru.jp-z.jp
    • Ingressルート: *.apps.sno1.naru.jp-z.jp

CPU・メモリ・ストレージについては上記はOpenShiftの最小リリース要件のため、RHOCP上で何をするかによって増加する。
例えばOpenShift VirtualizationをシングルノードOCPに載せる場合16GBメモリだと正直足りなくて(16GBメモリだとOCP-VのOperatorを入れようとした時点でクラスター全体がダウンした)、32GBでなんとか動く感じ。というかOCP-Vの場合のシステム要件は赤帽ブログによると合計96GB要るっぽい。
ストレージについても、OCP-VのOperatorが入った段階でノードのストレージを60GBくらいは消費し、VM作成におけるストレージ最小容量が30GBからなので、200GBくらいは欲しい。(というか今回はシングルノードのため1ディスクのhostPathで済ましているので試してないが、OSとは別のパーティションのディスクを用意するのが推奨構成)

ネットワークに関しては、ドメイン名はクラスター内および利用者からのアクセスに使用するものなので、ローカルDNS内で名前解決できれば良い(インターネットからのインバウンドアクセスは不要)

インターネットへのアウトバウンド通信は必須。

今回はProxmox上のVM1台にOpenShiftをインストールする。
DNSはすでにDnsmasqを運用しているためそれに設定を追加する構成。
なお、OCP-Vを使う想定なので、仮想関連のオプション(KVMハードウェア仮想化)を有効にし、CPU種別は「host」を選択。
ついでにQEMUゲストエージェントもRHCOSには入っているのでチェックしておく。

DNS設定

前述「Ingressルート」で*.apps.sno1.naru.jp-z.jpがあるので、雑に*.sno1.naru.jp-z.jpというワイルドカード設定を行うとインストール中にInsufficientな状態として処理が一時中断してしまうので、必要なレコードは個別にきちんと設定する。

### /etc/hosts でレコード設定
192.168.0.112 sno1 sno1.naru.jp-z.jp api.sno1.naru.jp-z.jp api-int.sno1.naru.jp-z.jp
### /etc/dnsmasq.d/dns-dhcp.conf でワイルドカード設定
address=/apps.sno1.naru.jp-z.jp/192.168.0.112

Assisted Installerでのインストール

第2章 単一ノードでの OpenShift のインストール | Installing on a single node | OpenShift Container Platform | 4.20 | Red Hat Documentation

「Single Node OpenShiftのインストール」はSNOのための特別な手順があるわけでなく、インストールウィザードでノード数設定を「1」に設定した場合の構成のことっぽい。

ISOファイルの作成

作業PCのブラウザでRed Hat OpenShift Cluster Managerにアクセスし、「Create New Cluster」押下し、事前に確認したクラスタ名、ベースドメイン等必要事項を入力。

  • Cluster details
    • Cluster name
    • Base domain
    • OpenShift version (4.21.11)
    • CPU architecture: x86_64
    • Edit pull secret: no check
    • Number of control plane nodes: 1 (Single Node OpenShift)
    • Hosts' network configuration: Static IP
    • Encryption of installation disks: no check
  • network
    • Networking stack type: IPv4
    • DNS: 192.168.0.4
    • IPv4 Subnet: 192.168.0.0/24
    • Default gateway: 192.168.0.1
    • MAC Address: 事前に確認したNICのMACアドレス
    • IP address: 192.168.0.112

ネットワーク設定はMAC Addressの入力があるので、VMは先に払い出しておく。
OperatorsのBundles設定でVirtualizationはグレーアウトしているが、後からインストールできるのでそのまま進める。

  • Host discovery
    • 「Add host」押下し、認証に使用するSSH公開鍵を張り付け「Generate Discovery ISO」押下
    • Generateが完了すると「Download Discovery ISO」にラベルが変わるので押下すればダウンロードが始まる

ISOダウンロードが完了したら、ダイアログは閉じた状態でローカル(VM)側の作業に移る。

VM作成

ダウンロードしたISOをマウントしてVMを起動。

RHCOSが起動し、しばらく待っていればCluster Managerのweb画面でも認識するので、インストールウィザードを進める。

といっても残りの入力項目はデフォルトで良いはず。
最後に「Install cluster」押下すればインストール処理が始まる。

DNS不備がある場合

前述の雑なワイルドカード設定を行うと、invalid判定となり先へ進めない。
ワイルドカードDNS設定は"*.apps.sno1.naru.jp-z.jp"のみに行うこと。

エラーになった場合はこの時点でDNS再設定を行い、認識するまでしばらく待てば解消して処理が再開し、「Next」を押せるようになる。

残りのインストール処理

完了までは1時間くらいはかかるのでお台場にでも行ってきてもヨシ (この日はMSCベリッシマが来てた)(リンク先は本文と関係ありません)

「Finalizing」は必要なpodの立ち上げなどでそこそこ時間がかかるのでまったり待機する。
この時点でDLしたkubeconfigファイルを使ってocコマンドは使用可能。
(ちなみにocmiseでもインストールできる)

上記は2時間かかってるように見えるが、「VMはそのままディスクだけ作り直してクラスター再構築」をした影響で、作り直したディスクがブート順に含まれてなくて止まっていたため。ディスクからの起動待ち状態だったため手直ししてリブートしたら正常に処理再開した。

表示されている「Launch OpenShift Console」を押下すれば、ローカルに構築されたOpenShiftのwebコンソールに遷移する。
認証情報はCluster Managerに表示されているものを使えば管理者権限でログインできる。

ノードへのSSHアクセス

運用時は推奨されない操作だけど、インストールのパラメタで設定したSSH公開鍵を使って接続できる。ユーザー名はcore

zaki@cloud-dev2:~$ ssh core@192.168.0.112 -i ~/.ssh/id_rsa_4096
Red Hat Enterprise Linux CoreOS 9.6.20260414-0
  Part of OpenShift 4.21, RHCOS is a Kubernetes-native operating system
  managed by the Machine Config Operator (`clusteroperator/machine-config`).

WARNING: Direct SSH access to machines is not recommended; instead,
make configuration changes via `machineconfig` objects:
  https://docs.openshift.com/container-platform/4.21/architecture/architecture-rhcos.html

---
Last login: Thu May  7 02:31:05 2026 from 192.168.0.16
[core@sno1 ~]$ 

その他のインストール方式

OKDだけどこれが6年前なのびっくりだよ。

zaki-hmkc.hatenablog.com

OCP-Vまでまとめたかったけどいったんここまで。
※ OCP-Vを入れました

zaki-hmkc.hatenablog.com


参考

rheb.hatenablog.com

rheb.hatenablog.com