OKD 5.0(OpenShift のコミュニティー版)の手順をまとめました。Agent-based Installer で 3 ノードのクラスタを作り、OKD Virtualization(KubeVirt)で仮想マシンを動かします。扱う範囲は、踏み台サーバー(DNS・HAProxy・NFS・iSCSI ターゲット)の構築、仮想マシンのライブ マイグレーション、ストレージの経路障害、ノード障害時の HA です。インストールは platform: baremetal/none の 2 方式と、オンライン/オフライン(ミラー レジストリ)の 2 つの環境で行いました。手順は OKD の公式ドキュメントに沿っています。検証環境で実際に操作し、画面を撮りました。
目次
手順の一覧
| No. | 記事 | 内容 |
|---|---|---|
| 1 | 踏み台サーバーの構築 | DNS(dnsmasq)、HAProxy、NFS、iSCSI ターゲット(LIO・2 系統)、oc・openshift-install |
| 2 | オンライン環境:Agent-based+platform: baremetal | install-config.yaml、agent-config.yaml(nmstate)、エージェント ISO、インストールと完了待ち |
| 3 | OKD Virtualization の導入とストレージ・VM 用ネットワーク | HyperConverged、csi-driver-nfs、iSCSI マルチパス(MachineConfig)、ブリッジと NetworkAttachmentDefinition |
| 4 | 仮想マシンの作成・ライブ マイグレーション・経路障害・HA | NFS/iSCSI の仮想マシン、ライブ マイグレーション、iSCSI の片系断、Node Health Check+Self Node Remediation |
| 5 | オンライン環境:Agent-based+platform: none と baremetal の違い | 外部ロード バランサー(HAProxy)を使う構成、2 方式の比較表 |
| 6 | オフライン環境:ミラー レジストリを使ったインストール | NTP(chrony)、ミラー レジストリ(registry:2・TLS・認証)、oc adm release mirror、imageDigestSources |
platform: baremetal と none の違い(要点)
| 項目 | platform: baremetal | platform: none |
|---|---|---|
| API・Ingress の入口 | クラスタが持つ VIP(keepalived) | 外部のロード バランサー |
| 必要なもの | ノードと同じ L2 に未使用の IP アドレス 2 つ | ロード バランサー(冗長化も自分で) |
| 向いている場面 | ロード バランサーを用意しない小さな構成 | 既存のロード バランサーを使う、ノードが複数のサブネットにまたがる |
詳しくは 5 の記事の比較表を見てください。
構成について(3Tier)
この連載の仮想マシンのディスクは、踏み台サーバーの外部ストレージに置く 3Tier 構成です。iSCSI は 2 系統のネットワークでマルチパスにし、片方の経路が切れても I/O が続くことを確かめました。
| ストレージ | 方式 | アクセス モード | 通信の冗長化 |
|---|---|---|---|
| NFS | csi-driver-nfs(動的プロビジョニング) | RWX(ファイル システム) | — |
| iSCSI | 静的 PV(LIO の LUN)+ノードの multipathd | RWX(ブロック) | 2 系統(10.40.81.0/24・10.40.82.0/24)のマルチパス |
iSCSI の LUN を仮想マシンのディスクにすると、ライブ マイグレーションのときは移動先のノードが同じ LUN を開き、そのまま使い続けます(ディスクのデータは転送しません)。そのため、アクセス モードは RWX(ブロック)にします。
HCI 構成(各ノードのディスクを Ceph などで束ねる構成)は、この連載では扱っていません。
検証環境
| 項目 | 内容 |
|---|---|
| OKD | 5.0.0-okd-scos.3(Kubernetes 1.36、CentOS Stream CoreOS 10) |
| OKD Virtualization | community-kubevirt-hyperconverged 1.18.1 |
| ノード | 3 台(コントロール プレーン兼ワーカー)。Proxmox VE 上の仮想マシン(入れ子の仮想化)、各 8 vCPU・24 GB・ディスク 120 GB+100 GB |
| 踏み台サーバー | Rocky Linux 9(DNS・HAProxy・NFS・iSCSI ターゲット・ミラー レジストリ・NTP) |
| 仮想マシン | CentOS Stream 9(OKD Virtualization の標準イメージ)、インスタンス タイプ u1.small(1 vCPU・2 GiB) |
| 確認した日 | 2026 年 10 月 22 日 |
検証で測った値(参考)
| 項目 | NFS | iSCSI(マルチパス) |
|---|---|---|
| ライブ マイグレーション(完了まで) | 2〜3 秒 | 2〜3 秒 |
| ping の最長の途切れ(ライブ マイグレーション) | 0.4〜1.2 秒 | 0.6〜3.1 秒 |
| iSCSI の片系断 | — | 無停止(書き込みは 50 MB/s で継続、経路は自動で復帰) |
| ノードの電源断(HA) | 295 秒で別ノードで起動、331 秒で ping 応答 | — |
注意点
- agent-config.yaml の rootDeviceHints は、/dev/sda ではなく /dev/disk/by-path/… で指定します。ディスクが 2 本あると、ノードによって sda の割り当てが入れ替わることがありました。
- 踏み台サーバー自身の DNS を、自分の dnsmasq(127.0.0.1)にしておきます。openshift-install の完了待ちが API の名前を引けずに止まります。
- オフライン環境のミラーは、oc adm release mirror に –keep-manifest-list=true を付けます。付けないと、ノードの OS のイメージが取れずにインストールが止まります。
- ノードを強制的に電源断したあと、起動しても NotReady のままになることがありました(CRI-O と multus のデッドロック)。対処は 4 の記事に書いています(※【検証結果】公式の手順ではありません)。
