SUSE Virtualization(Harvester)v1.8.2 を 3 台のノードにインストールし、HCI クラスタを作った手順です。管理ネットワークは NIC 2 本のボンディング(active-backup)で冗長化しています。1 台目で新しいクラスタを作り(create)、2・3 台目をクラスタに参加(join)させます。
この記事の前提
- 参照: Hardware and Network Requirements、Harvester Configuration
- ISO(harvester-v1.8.2-amd64.iso)を GitHub のリリースページから入手していること
- 管理用の VIP(192.168.1.170)と各ノードの IP アドレスを決めていること
構成
| ノード | 管理 IP | NIC | ディスク |
|---|---|---|---|
| doc-harv1 | 192.168.1.171 | ens18・ens19:管理(ボンド mgmt-bo)/ens20・ens21:ストレージ(ボンド storage-bo、次の記事で設定) | 260 GB(OS とデータ兼用) |
| doc-harv2 | 192.168.1.173 | 同上 | 同上 |
| doc-harv3 | 192.168.1.174 | 同上 | 同上 |
| 項目 | 値 |
|---|---|
| クラスタの VIP(管理画面) | 192.168.1.170 |
| ゲートウェイ/DNS | 192.168.1.1 / 192.168.1.254 |
| ノードの CPU・メモリー | 6 vCPU・22 GB(検証用。要件は後述) |
要件は、検証用で 8 コア・32 GB 以上、本番用で 16 コア・64 GB 以上、ディスクは 250 GB 以上です。この検証はリソースが足りないため、ハードウェア チェックの警告を確認したうえで進めています(後述)。
1 台目のインストール(新しいクラスタの作成)
インストーラーの画面
ISO から起動すると、テキストのインストーラーが開きます。
(1) [Hardware Checks] で、CPU・メモリーが要件に足りないと警告が出ます。検証環境なので [Yes] で進めました。本番では要件を満たすハードウェアを使います。

(2) [Choose installation mode] で、1 台目は [Create a new Harvester cluster] を選びます。2 台目以降は [Join an existing Harvester cluster] です。

(3) ノードの OS にログインする rancher ユーザーのパスワードを設定します。

(4) インストール先のディスクと Persistent size(システムのパッケージやコンテナー イメージを置く領域)を指定します。Persistent size は 150 GiB 以上が必要で、それより小さいとエラーになります。

このあと、管理 NIC(複数選ぶとボンドになります)・ボンド モード・IP アドレス、ホスト名、DNS、VIP、クラスタ トークン、NTP などを入力します。
設定ファイルによる自動インストール
この検証環境(入れ子の仮想化でコンソールにキー入力を送る方式)では、テキスト インストーラーの入力欄で文字が抜けることがあったため、同じ内容を設定ファイル(Harvester configuration)に書いて自動でインストールしました。台数が多いときや、入力ミスを防ぎたいときにも使える方法です。
(1) 設定ファイルを作り、ノードから HTTP で取れる場所に置きます。
実行する場所:Web サーバー(この検証では 192.168.1.182 の /srv/ks、ポート 8080)
# harv-doc1.yaml(1 台目:create)
scheme_version: 1
token: hvdoc-cluster-token
os:
hostname: doc-harv1
password: "P@$$w0rd"
ssh_authorized_keys:
- "ssh-ed25519 AAAA...(管理端末の公開鍵)"
ntp_servers:
- ntp.nict.jp
dns_nameservers:
- 192.168.1.254
install:
mode: create
management_interface:
interfaces:
- name: ens18
- name: ens19
method: static
ip: 192.168.1.171
subnet_mask: 255.255.255.0
gateway: 192.168.1.1
default_route: true
bond_options:
mode: active-backup
miimon: 100
device: /dev/sda
persistent_partition_size: 150Gi
iso_url: http://192.168.1.5:8099/harvester-v1.8.2-amd64.iso
vip: 192.168.1.170
vip_mode: static
skipchecks: true
tty: tty1
| 項目 | 説明 | 設定値 |
|---|---|---|
| token | クラスタに参加するときの合言葉。全ノードで同じ値にする | hvdoc-cluster-token |
| os.password | rancher ユーザーのパスワード | (任意) |
| install.mode | create(新しいクラスタ)/join(参加) | create |
| management_interface.interfaces | 管理ネットワークに使う NIC。2 本書くとボンド mgmt-bo になる | ens18・ens19 |
| bond_options.mode | ボンドのモード | active-backup |
| bond_options.miimon | リンク監視の間隔(ミリ秒) | 100 |
| device | インストール先のディスク | /dev/sda |
| persistent_partition_size | Persistent パーティションのサイズ(150Gi 以上) | 150Gi |
| iso_url | インストールで使う ISO の URL(自動インストールでは必須) | HTTP の URL |
| vip / vip_mode | 管理画面の VIP と、その割り当て方法 | 192.168.1.170 / static |
| skipchecks | ハードウェア チェックを飛ばす(検証環境のみ) | true |
(2) ISO から起動し、GRUB のメニューで [Harvester Installer v1.8.2] を選んだまま e を押します。

(3) $linux で始まる行(カーネルの引数)の末尾にカーソルを移します。

(4) 行の末尾に次の引数を追加し、Ctrl+X で起動します。
rd.neednet=1 ip=192.168.1.171::192.168.1.1:255.255.255.0:doc-harv1:ens18:none nameserver=192.168.1.254 harvester.install.automatic=true harvester.install.config_url=http://192.168.1.182:8080/harv-doc1.yaml

| 引数 | 説明 |
|---|---|
| rd.neednet=1 ip=…:ens18:none | 設定ファイルを取るため、起動時に ens18 へ一時的な IP を付ける |
| harvester.install.automatic=true | 自動インストールにする |
| harvester.install.config_url | 設定ファイルの URL |
(5) インストールが終わると自動で再起動します。コンソールに管理画面の URL が表示され、[Status] が Ready になれば完了です。

2・3 台目のインストール(クラスタへの参加)
2・3 台目は mode を join にし、参加先の VIP を server_url に書いた設定ファイルを使います。IP アドレスとホスト名以外は 1 台目と同じです。
# harv-doc2.yaml(2 台目:join。3 台目は hostname と ip を変える)
scheme_version: 1
token: hvdoc-cluster-token
server_url: https://192.168.1.170:443
os:
hostname: doc-harv2
password: "P@$$w0rd"
ntp_servers:
- ntp.nict.jp
dns_nameservers:
- 192.168.1.254
install:
mode: join
management_interface:
interfaces:
- name: ens18
- name: ens19
method: static
ip: 192.168.1.173
subnet_mask: 255.255.255.0
gateway: 192.168.1.1
default_route: true
bond_options:
mode: active-backup
miimon: 100
device: /dev/sda
iso_url: http://192.168.1.5:8099/harvester-v1.8.2-amd64.iso
skipchecks: true
tty: tty1
1 台目と同じように GRUB で引数(IP・ホスト名・config_url を 2・3 台目のものに変える)を追加して起動します。この検証では、引数を ISO の GRUB 設定(/boot/grub2/harvester.cfg の extra_iso_cmdline)に書き込んだ ISO を台ごとに作り、キー操作なしで起動しました。PXE でも同じ設定ファイルを使えます(PXE Boot Installation)。
3 台そろうと、2・3 台目も自動でコントロール プレーン(etcd)の役割になり、1 台が止まってもクラスタを使い続けられます。
管理画面の初期設定
(1) ブラウザーで VIP(https://192.168.1.170)を開きます。admin ユーザーのパスワードを設定し、使用許諾に同意して [Continue] をクリックします。

(2) [Dashboard] に、ホスト・ディスクの数と CPU・メモリー・ストレージの容量が表示されます。

(3) [Hosts] で、3 台が Active になっていることを確認します。

管理ネットワークのボンドの確認
各ノードに SSH(rancher ユーザー)でログインし、ボンドの状態を確認します。
実行する場所:管理端末から各ノード(例:ssh [email protected])
$ cat /proc/net/bonding/mgmt-bo
期待する出力(抜粋):
Bonding Mode: fault-tolerance (active-backup)
Currently Active Slave: ens18
MII Status: up
MII Polling Interval (ms): 100
Slave Interface: ens18
MII Status: up
Slave Interface: ens19
MII Status: up
管理 IP と VIP は、ボンドの上のブリッジ mgmt-br に付きます(ip -br a で mgmt-br UP 192.168.1.171/24 192.168.1.170/32 のように表示されます。VIP はそのときの代表ノードだけに付きます)。