先日OpenShift Localを試してみたけどOCP-Vは入れられなかったので、シングルノードRHOCPクラスター構築を試してみることにした。
かなり昔にUPI(完全マニュアルインストール方式)でしか構築したことなかったけど、今はいろいろ構築手段があるらしく、オンプレでの構築に使える「Assisted Installer」というのを試してみたので、その流れについてまとめ。
(注) 構築したRHOCPは4.21だけど、(2026.05.06時点で)ドキュメントは日本語化されてるのが4.20までだったので、わかりやすさ重視で4.20の日本語ドキュメントにリンクしてる。
作業の流れ
まとめると以下の通り。うむ、シンプルで簡単だ。
- インストールするマシンを用意 (※入力パラメタにNICのMACアドレスがあるのでVMの場合はガワだけ先に作成する)
- ネットワーク内DNSのレコード設定
- Red Hat OpenShift Cluster Managerで必要事項を入力しISOダウンロード
- ダウンロードしたISOでブートするとインストール処理が自動で走るので1時間ほど(手元の環境でRHOCP4.21の場合)待つ
- 問題がなければRed Hat OpenShift Cluster Managerで表示がInstallation completed successfullyとなり、webコンソールアクセスや認証情報の確認、kubeconfigファイルのダウンロードが可能になる
必要なものはOpenShiftノードにするマシンと、ノードが接続するネットワーク内でワイルドカード設定が使えるDNSサーバー、あとRed Hat OpenShift Cluster Managerにアクセスするための作業PCがあれば良い。
bootstrapノードやTFTPサーバー等は不要。
要件と構成
手元の環境に構築した際のパラメタは以下の通り。(あとでメモリやストレージ足りずに増強して再構築したけど)
- 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でのインストール
「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コマンドは使用可能。
(ちなみにocはmiseでもインストールできる)

上記は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 ~]$
その他のインストール方式
- Agent-based Installer
- IPI (installer-provisioned infrastructure)
- クラウドサービスやRHOCPが対応してるハイパーバイザに自動インストールする方式
- UPI (user-provisioned infrastructure)
- インフラをユーザーが自前で用意して完全マニュアルでインストール
OKDだけどこれが6年前なのびっくりだよ。
OCP-Vまでまとめたかったけどいったんここまで。
※ OCP-Vを入れました