【Harvester 1.8】 3 ノード HCI クラスタのインストールと初期設定(管理ネットワークのボンディング)

SUSE Virtualization(Harvester)v1.8.2 を 3 台のノードにインストールし、HCI クラスタを作った手順です。管理ネットワークは NIC 2 本のボンディング(active-backup)で冗長化しています。1 台目で新しいクラスタを作り(create)、2・3 台目をクラスタに参加(join)させます。

目次

この記事の前提

構成

ノード管理 IPNICディスク
doc-harv1192.168.1.171ens18・ens19:管理(ボンド mgmt-bo)/ens20・ens21:ストレージ(ボンド storage-bo、次の記事で設定)260 GB(OS とデータ兼用)
doc-harv2192.168.1.173同上同上
doc-harv3192.168.1.174同上同上
項目値
クラスタの VIP(管理画面)192.168.1.170
ゲートウェイ/DNS192.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.passwordrancher ユーザーのパスワード(任意)
install.modecreate(新しいクラスタ)/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_sizePersistent パーティションのサイズ(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 を押します。

GRUB

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

GRUB の編集

(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 はそのときの代表ノードだけに付きます)。

次の手順

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次