手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 OpenShift 検証端末 – SNO 構築に必要な周辺環境を準備する

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-installoc の配置
  • KVM で検証する場合の確認ポイント
参考書籍
参考書籍
Kubernetes 完全ガイド 第 2 版
Kubernetes とコンテナ基盤の前提を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見る
このリンクは Amazon アソシエイトリンクです。

この記事で扱う範囲

ここでは OpenShift クラスターそのものの詳細な構築手順ではなく、SNO 検証を始める前に Ubuntu 22.04 側で確認する準備を扱います。DNS、DHCP、PXE、HTTP、KVM、CLI ツールの前提を分けて確認します。

  • OpenShift SNO 検証に必要な周辺サービスを確認する
  • 検証端末に必要なパッケージを導入する
  • openshift-installoc を配置する
  • KVM で仮想ノードを扱う場合の確認点を見る
  • 本番構築ではなく、検証環境の準備として扱う

先に決めること

OpenShift SNO は DNS 名、IP アドレス、pull secret、SSH 公開鍵、インストール方式がそろっていないと途中で止まります。手順を始める前に、名前とアドレスの対応を決めておきます。

項目確認内容
base domainexample.local内部 DNS で名前解決できるドメイン
cluster namesnoAPI や console の DNS 名に使う名前
node address192.0.2.50SNO ノードに割り当てる IP アドレス
pull secretRed Hat アカウントから取得インストール時に必要
SSH keyssh-ed25519core ユーザーへ入るための公開鍵

周辺コンポーネントを確認する

SNO 検証では、OpenShift ノードを起動する前に周辺コンポーネントがそろっているかを確認します。特に DNS と HTTP 配布元は、インストール途中の失敗原因になりやすい部分です。

要素役割確認例
DNSAPI、Ingress、ノード名の名前解決dig
DHCPノードへの IP アドレス配布journalctl
PXE起動ファイルの配布tftp
HTTPIgnition や 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-installoc は、対象バージョンを合わせて配置します。ここではアーカイブを展開して、作業ディレクトリ内の 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 --client

DNS を確認する

SNO では API、API internal、Ingress の名前解決が重要です。インストール前に、検証端末から期待した IP アドレスへ解決できるか確認します。

dig api.sno.example.local
dig api-int.sno.example.local
dig test.apps.sno.example.local

HTTP 配布元を確認する

Ignition や ISO を HTTP で配布する場合は、検証端末から取得できることを先に確認します。URL は環境に合わせて変更します。

curl -I http://provision.example.local/openshift/
curl -I http://provision.example.local/openshift/bootstrap.ign

install-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 -print

KVM で検証する場合の確認

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 設定に分けて追いやすくなります。

Ubuntu 22.04 OpenShift 検証端末 – SNO 構築に必要な周辺環境を準備する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る