OpenShift の Single Node OpenShift 検証では、OpenShift 本体だけでなく、DNS、DHCP、PXE、HTTP、仮想化基盤、インストール用ツールを事前にそろえる必要があります。Ubuntu 22.04 は、こうした周辺環境をまとめて確認する検証端末として使えます。
この記事では、Ubuntu 22.04 上で OpenShift SNO 検証を進めるための周辺環境、必要パッケージ、インストール用ツール、KVM 検証時の確認ポイントを整理します。特定の内部環境名には依存しない、保守用の確認メモとして扱います。
関連する記事
この記事で確認すること
- OpenShift SNO 検証に必要な周辺要素
- DNS、DHCP、PXE、HTTP の役割分担
- 検証端末に入れる基本パッケージ
openshift-installとocの配置- KVM で検証する場合の確認ポイント
この記事で扱う範囲
ここでは OpenShift クラスターそのものの詳細な構築手順ではなく、SNO 検証を始める前に Ubuntu 22.04 側で確認する準備を扱います。DNS、DHCP、PXE、HTTP、KVM、CLI ツールの前提を分けて確認します。
- OpenShift SNO 検証に必要な周辺サービスを確認する
- 検証端末に必要なパッケージを導入する
openshift-installとocを配置する- KVM で仮想ノードを扱う場合の確認点を見る
- 本番構築ではなく、検証環境の準備として扱う
先に決めること
OpenShift SNO は DNS 名、IP アドレス、pull secret、SSH 公開鍵、インストール方式がそろっていないと途中で止まります。手順を始める前に、名前とアドレスの対応を決めておきます。
| 項目 | 例 | 確認内容 |
| base domain | example.local | 内部 DNS で名前解決できるドメイン |
| cluster name | sno | API や console の DNS 名に使う名前 |
| node address | 192.0.2.50 | SNO ノードに割り当てる IP アドレス |
| pull secret | Red Hat アカウントから取得 | インストール時に必要 |
| SSH key | ssh-ed25519 | core ユーザーへ入るための公開鍵 |
周辺コンポーネントを確認する
SNO 検証では、OpenShift ノードを起動する前に周辺コンポーネントがそろっているかを確認します。特に DNS と HTTP 配布元は、インストール途中の失敗原因になりやすい部分です。
| 要素 | 役割 | 確認例 |
| DNS | API、Ingress、ノード名の名前解決 | dig |
| DHCP | ノードへの IP アドレス配布 | journalctl |
| PXE | 起動ファイルの配布 | tftp |
| HTTP | Ignition や ISO の配布 | curl |
| KVM | 仮想ノードで検証する場合の実行基盤 | virsh |
検証端末のパッケージを導入する
Ubuntu 22.04 側には、ダウンロード、アーカイブ展開、名前解決確認、HTTP 確認、仮想化確認に使うツールを入れておきます。
sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y curl wget tar jq git dnsutils iproute2 qemu-kvm libvirt-daemon-system libvirt-clients virtinst
sudo systemctl enable --now libvirtd
virsh version作業ディレクトリを作成する
インストール用ファイル、Ignition、ISO、ログを混在させないように、用途ごとにディレクトリを分けます。
install -d "$HOME/openshift-sno/bin"
install -d "$HOME/openshift-sno/install"
install -d "$HOME/openshift-sno/assets"
install -d "$HOME/openshift-sno/logs"SSH 鍵を確認する
OpenShift のインストールでは、core ユーザーへアクセスするための SSH 公開鍵を install-config.yaml に入れます。既存鍵を使う場合も、公開鍵の内容を確認します。
ssh-keygen -t ed25519 -f "$HOME/.ssh/openshift-sno" -N ""
cat "$HOME/.ssh/openshift-sno.pub"OpenShift CLI を配置する
openshift-install と oc は、対象バージョンを合わせて配置します。ここではアーカイブを展開して、作業ディレクトリ内の bin に置く流れだけを示します。
tar xzf openshift-install-linux.tar.gz -C "$HOME/openshift-sno/bin"
tar xzf openshift-client-linux.tar.gz -C "$HOME/openshift-sno/bin"
"$HOME/openshift-sno/bin/openshift-install" version
"$HOME/openshift-sno/bin/oc" version --clientDNS を確認する
SNO では API、API internal、Ingress の名前解決が重要です。インストール前に、検証端末から期待した IP アドレスへ解決できるか確認します。
dig api.sno.example.local
dig api-int.sno.example.local
dig test.apps.sno.example.localHTTP 配布元を確認する
Ignition や ISO を HTTP で配布する場合は、検証端末から取得できることを先に確認します。URL は環境に合わせて変更します。
curl -I http://provision.example.local/openshift/
curl -I http://provision.example.local/openshift/bootstrap.igninstall-config.yaml の形を確認する
install-config.yaml は環境固有値が多いため、記事では最小構成の形だけ示します。実際には pull secret と SSH 公開鍵を正しい値に置き換えます。
tee "$HOME/openshift-sno/install/install-config.yaml" >/dev/null <<'EOF'
apiVersion: v1
baseDomain: example.local
metadata:
name: sno
compute:
- name: worker
replicas: 0
controlPlane:
name: master
replicas: 1
networking:
networkType: OVNKubernetes
machineNetwork:
- cidr: 192.0.2.0/24
platform:
none: {}
pullSecret: '{"auths":{}}'
sshKey: ssh-ed25519 AAAAexample example@example.local
EOF
sed -n '1,120p' "$HOME/openshift-sno/install/install-config.yaml"インストール用アセットを生成する
設定値を確認したら、openshift-install でインストール用アセットを生成します。生成後に install-config.yaml は消費されるため、必要なら事前に控えを残します。
cp "$HOME/openshift-sno/install/install-config.yaml" "$HOME/openshift-sno/assets/install-config.yaml.backup"
"$HOME/openshift-sno/bin/openshift-install" create single-node-ignition-config --dir "$HOME/openshift-sno/install"
find "$HOME/openshift-sno/install" -maxdepth 1 -type f -printKVM で検証する場合の確認
SNO を仮想マシンで検証する場合は、CPU 仮想化、メモリ、ディスク、ブリッジ接続を確認します。OpenShift の要件に対して余裕がない構成では、インストール後の安定性も落ちます。
egrep -c '(vmx|svm)' /proc/cpuinfo
free -h
lsblk
virsh net-list --all
ip -br link仮想マシン定義を確認する
仮想マシンを作る場合は、OS variant、ディスク、ネットワーク、ISO のパスを明示します。ここではコマンドの形だけを示し、実際の CPU 数やメモリは検証環境に合わせて変更します。
virt-install \
--name sno-node \
--memory 32768 \
--vcpus 8 \
--disk path=/var/lib/libvirt/images/sno-node.qcow2,size=120,bus=virtio \
--os-variant fedora-coreos-stable \
--network bridge=br0,model=virtio \
--cdrom "$HOME/openshift-sno/assets/sno.iso" \
--graphics none \
--noautoconsole状態を確認する
インストール開始後は、仮想マシン、HTTP 配布元、DNS、OpenShift インストーラーのログを分けて確認します。
virsh list --all
sudo journalctl -u libvirtd -n 100 --no-pager
"$HOME/openshift-sno/bin/openshift-install" wait-for bootstrap-complete --dir "$HOME/openshift-sno/install" --log-level=info
"$HOME/openshift-sno/bin/openshift-install" wait-for install-complete --dir "$HOME/openshift-sno/install" --log-level=info運用時に見るポイント
SNO 検証端末では、OpenShift の失敗をすぐに OpenShift 本体の問題と見なさず、周辺環境を分けて確認します。DNS、HTTP 配布、仮想化、インストール設定を順に切り分けます。
- DNS の API / Ingress 名が期待した IP に解決できるか確認する
- Ignition や ISO の配布元へ HTTP で到達できるか確認する
- KVM のブリッジと仮想マシンの NIC を確認する
- pull secret と SSH 公開鍵を取り違えない
- ログは
openshift-install、HTTP、libvirt を分けて見る
まとめ
Ubuntu 22.04 を OpenShift SNO の検証端末として使う場合、事前準備の中心は OpenShift 本体のコマンドだけではありません。DNS、DHCP、PXE、HTTP、KVM、CLI ツールを分けて確認することが重要です。
検証環境では、名前解決、配布元 URL、仮想マシンのリソース、インストール設定を先に固めます。これにより、インストール途中の失敗を周辺環境と OpenShift 設定に分けて追いやすくなります。

