0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenNebula 7.0 上に SUSE Harvester v1.4.2 をシングルノードで構築する

0
Posted at

はじめに

本記事は、OpenNebula 7.0.1 の KVM 仮想マシン上に SUSE Harvester v1.4.2(HCI基盤)をシングルノードでインストールした際の作業メモです。実際のコマンド実行結果とスクリーンショットを含む、作業ログとして記録しています。

注意: ネステッド仮想化上での Harvester 動作は SUSE 社の公式サポート対象外です。本記事は検証・学習目的の構成であり、本番環境ではベアメタルへの導入を推奨します。

環境情報

ホスト環境

flathill@nebula-f1:~$ cat /etc/os-release | grep PRETTY
PRETTY_NAME="Ubuntu 24.04.3 LTS"

flathill@nebula-f1:~$ uname -r
6.8.0-94-generic
項目 内容
ホストOS Ubuntu 24.04.3 LTS(kernel 6.8.0-94-generic)
CPU AMD Ryzen 5 5600G with Radeon Graphics(4コア)
メモリ 32 GB
ストレージ 500 GB 共有ストレージ(OCFS2)
OpenNebula 7.0.1(708c6915)
ハイパーバイザー KVM(ネステッド仮想化有効)
ノード構成 nebula-f1(フロントエンド兼実行ノード)、nebula-n1、nebula-n2

Harvester VM 構成

項目 設定値
VM名 harvester-singlenode
vCPU 8
メモリ 32 GB
ディスク 250 GB(qcow2 / virtio)
NIC 1(virtio / admin_net bridge br0)
ファームウェア UEFI(OVMF_CODE_4M.fd)
CPUモード host-passthrough
マシンタイプ q35

ネットワーク構成

項目
サブネット 192.168.11.0/24
ノードIP 192.168.11.138
管理VIP 192.168.11.139
ゲートウェイ 192.168.11.1
DNS 8.8.8.8
NTP 0.suse.pool.ntp.org(デフォルト)

作業手順

1. ネステッド仮想化の確認

Harvester 内部で KubeVirt(KVM)を使用するため、ホスト側でネステッド仮想化が有効である必要があります。

flathill@nebula-f1:~$ cat /sys/module/kvm_amd/parameters/nested
1

1 と表示され、ネステッド仮想化が有効であることを確認。0 の場合は以下で有効化します。

sudo modprobe -r kvm_amd
sudo modprobe kvm_amd nested=1
echo "options kvm_amd nested=1" | sudo tee /etc/modprobe.d/kvm-nested.conf

2. UEFI ファームウェア(OVMF)の確認と設定

2-1. OVMF パッケージの確認

flathill@nebula-f1:~$ dpkg -l | grep ovmf
ii  ovmf           2024.02-2ubuntu0.7            all          UEFI firmware for 64-bit x86 virtual machines

インストールされていない場合は sudo apt install ovmf でインストールします。

2-2. ファームウェアファイルの確認

flathill@nebula-f1:~$ ls -la /usr/share/OVMF/
total 8728
drwxr-xr-x   2 root root    4096 Dec  9 08:35 .
drwxr-xr-x 179 root root    4096 Jan 26 05:37 ..
-rw-r--r--   1 root root 3653632 Nov 27 16:14 OVMF_CODE_4M.fd
lrwxrwxrwx   1 root root      23 Nov 27 16:14 OVMF_CODE_4M.ms.fd -> OVMF_CODE_4M.secboot.fd
-rw-r--r--   1 root root 3653632 Nov 27 16:14 OVMF_CODE_4M.secboot.fd
lrwxrwxrwx   1 root root      23 Nov 27 16:14 OVMF_CODE_4M.snakeoil.fd -> OVMF_CODE_4M.secboot.fd
-rw-r--r--   1 root root  540672 Nov 27 16:14 OVMF_VARS_4M.fd
-rw-r--r--   1 root root  540672 Nov 27 16:14 OVMF_VARS_4M.ms.fd
-rw-r--r--   1 root root  540672 Nov 27 16:14 OVMF_VARS_4M.snakeoil.fd

Ubuntu 24.04 の注意点: 従来の OVMF_CODE.fd ではなく OVMF_CODE_4M.fd が使用されます。パスを間違えると VM が起動しないため注意してください。

2-3. OpenNebula クラスタへの OVMF 登録

flathill@nebula-f1:~$ sudo -i -u oneadmin
oneadmin@nebula-f1:~$ onecluster show 0 | grep -i ovmf

何も表示されない場合、OVMF が未登録です。以下で登録します。

oneadmin@nebula-f1:~$ onecluster update 0

エディタが開くので以下の行を追加します。

OVMF_UEFIS="/usr/share/OVMF/OVMF_CODE_4M.fd /usr/share/OVMF/OVMF_CODE_4M.secboot.fd"

設定を確認します。

oneadmin@nebula-f1:~$ onecluster show 0
CLUSTER 0 INFORMATION
ID                : 0
NAME              : default

CLUSTER TEMPLATE
OVMF_UEFIS="/usr/share/OVMF/OVMF_CODE_4M.fd /usr/share/OVMF/OVMF_CODE_4M.secboot.fd"
RESERVED_CPU=""
RESERVED_MEM=""

3. Harvester ISO のダウンロードと登録

3-1. ISO ダウンロード

oneadmin@nebula-f1:~$ cd /var/tmp
oneadmin@nebula-f1:/var/tmp$ wget https://releases.rancher.com/harvester/v1.4.2/harvester-v1.4.2-amd64.iso
oneadmin@nebula-f1:/var/tmp$ wget https://releases.rancher.com/harvester/v1.4.2/harvester-v1.4.2-amd64.sha512
oneadmin@nebula-f1:/var/tmp$ sha512sum -c harvester-v1.4.2-amd64.sha512
oneadmin@nebula-f1:/var/tmp$ ls -lh harvester-v1.4.2-amd64.iso
-rw-rw-r-- 1 oneadmin oneadmin 6.86G ... harvester-v1.4.2-amd64.iso

重要: /tmp には配置しないでください。 OpenNebula はデフォルトで /tmpRESTRICTED_DIRS に含まれています。/tmp から登録しようとすると以下のエラーが発生します。

ERROR: Not allowed to copy image from /tmp/harvester-v1.4.2-amd64.iso, check RESTRICTED_DIRS in your datastore

必ず /var/tmp など SAFE_DIRS に指定されたディレクトリを使用してください。

3-2. イメージ登録

oneadmin@nebula-f1:~$ cat ~/harvester-iso.tmpl
NAME = "harvester-v1.4.2-amd64"
PATH = "/var/tmp/harvester-v1.4.2-amd64.iso"
TYPE = CDROM
PERSISTENT = NO
DESCRIPTION = "Harvester v1.4.2 Installation ISO"
oneadmin@nebula-f1:~$ oneimage create -d 108 ~/harvester-iso.tmpl
ID: 81

状態が rdy になるまで待ちます。

oneadmin@nebula-f1:~$ watch oneimage list
oneadmin@nebula-f1:~$ oneimage list
  ID USER     GROUP    NAME                                                                    DATASTORE     SIZE TYPE PER STAT RVMS
  81 oneadmin oneadmin harvester-v1.4.2-amd64                                                  image-qcow    6.4G CD    No rdy     0

STAT: rdy を確認。

4. ネットワーク設定(固定IPアドレスの追加)

現在の仮想ネットワーク設定を確認します。

oneadmin@nebula-f1:~$ onevnet show 0
VIRTUAL NETWORK 0 INFORMATION
ID                       : 0
NAME                     : admin_net
BRIDGE                   : br0
STATE                    : READY
VN_MAD                   : bridge
PHYSICAL DEVICE          : enp6s18

VIRTUAL NETWORK TEMPLATE
DNS="1.1.1.1"
GATEWAY="192.168.11.1"
NETWORK_ADDRESS="192.168.11.0"
NETWORK_MASK="255.255.255.0"

ADDRESS RANGE POOL
AR 0
SIZE           : 48
LEASES         : 10

RANGE                                   FIRST                               LAST
IP                             192.168.11.128                     192.168.11.175

Harvester VM 用の IP(192.168.11.138)は AR0(192.168.11.128〜175)の範囲内に含まれています。VIP(192.168.11.139)を他の VM に使われないようホールドします。

oneadmin@nebula-f1:~$ onevnet hold 0 192.168.11.139

確認します。

oneadmin@nebula-f1:~$ onevnet show 0 | grep -A5 "LEASES"
LEASES
AR  OWNER                    MAC             IP PORT_FORWARD   IP6
...
0   V:-1       02:00:c0:a8:0b:8b 192.168.11.139     -     -

V:-1 でホールドされていることを確認。

5. VM テンプレートの作成と起動

5-1. テンプレートファイル作成

oneadmin@nebula-f1:~$ cat ~/harvester-vm.tmpl
NAME   = "harvester-singlenode"
CPU    = "4"
VCPU   = "8"
MEMORY = "32768"

OS = [
  ARCH = "x86_64",
  MACHINE = "q35",
  FIRMWARE = "/usr/share/OVMF/OVMF_CODE_4M.fd"
]

CPU_MODEL = [
  MODEL = "host-passthrough"
]

FEATURES = [
  ACPI = "yes",
  PAE  = "yes"
]

DISK = [
  SIZE    = "256000",
  FORMAT  = "qcow2",
  TYPE    = "fs",
  DEV_PREFIX = "vd"
]

DISK = [
  IMAGE    = "harvester-v1.4.2-amd64",
  IMAGE_UNAME = "oneadmin",
  READONLY = "YES"
]

NIC = [
  NETWORK = "admin_net",
  NETWORK_UNAME = "oneadmin",
  IP = "192.168.11.138",
  MODEL = "virtio"
]

GRAPHICS = [
  TYPE   = "VNC",
  LISTEN = "0.0.0.0"
]

5-2. テンプレート作成と VM 起動

oneadmin@nebula-f1:~$ onetemplate create ~/harvester-vm.tmpl
ID: 29

oneadmin@nebula-f1:~$ onetemplate instantiate 29

oneadmin@nebula-f1:~$ onevm list
  ID USER     GROUP    NAME             STAT  CPU     MEM HOST              TIME
  78 oneadmin oneadmin harvester-single runn    4     32G 192.168.11.1  0d 00h00

6. Harvester インストーラーの操作(VNCコンソール)

Sunstone の VNC コンソールで VM に接続し、Harvester インストーラーを操作します。

6-1. ハードウェアチェック

ハードウェアチェック

CPU 8 cores、Memory 32 GiB、仮想化環境(kvm)が検出されます。「Yes」を選択して続行。

6-2. インストールモード選択

「Create a new Harvester cluster」を選択。

6-3. ネットワーク設定

ハマりポイント(重要): Management NIC の選択や IPv4 Method の変更では、Enter キーや矢印キーでは反応しない場合があります。Tab キーを押すことでドロップダウンが展開されます。これは Harvester TUI 特有の挙動です。

設定内容:

項目 設定値
Management NIC enp3s0(Tabキーで選択)
VLAN ID 空欄
Bond Mode active-backup
IPv4 Method Static(Tabキーで切替)
IP Address 192.168.11.138
Subnet Mask 255.255.255.0
Gateway 192.168.11.1

6-4. その他の設定

項目 設定値
Hostname harvester
DNS Servers 8.8.8.8
VIP 192.168.11.139(Static)
Cluster Token 任意の文字列
Password YourPassword
NTP Servers 0.suse.pool.ntp.org(デフォルト)
Proxy 未設定(デフォルト)
SSH Keys 未設定(デフォルト)
Remote Config 未設定(デフォルト)

6-5. 確認画面で「Yes」を選択しインストール開始

インストール中のイメージロード:

  • harvester-images-v1.4.2.tar.zst(6.9 GB)
  • harvester-repo-images-v1.4.2.tar.zst(190 MB)
  • rancher-images-v2.10.1.tar.zst(7.3 GB)
  • rke2-images-multus v1.31.4(221 MB)
  • rke2-images.linux-amd64 v1.31.4(3.0 GB)

ネステッド環境ではイメージロードに 30〜60 分程度かかります。

7. 再起動後の ISO 取り外し

インストール完了後、自動再起動がかかります。ISO がアタッチされたままだと、再びインストーラーが起動してしまいます。

ハマりポイント: 再起動後にまたハードウェアチェック画面が表示された場合、ISO からブートしています。VM を停止して ISO をデタッチする必要があります。

oneadmin@nebula-f1:~$ onevm poweroff 78 --hard

oneadmin@nebula-f1:~$ onevm show 78 | grep -A5 "VM DISKS"
VM DISKS
 ID DATASTORE  TARGET IMAGE                               SIZE      TYPE SAVE
  0 system-qco vda    qcow2 - 250G                        1M/250G   fs     NO
  1 image-qcow sda    harvester-v1.4.2-amd64              6.4G/6.4G cdro   NO

oneadmin@nebula-f1:~$ onevm disk-detach 78 1
oneadmin@nebula-f1:~$ onevm resume 78

8. セットアップ完了の確認

再起動後、Harvester OS がディスクから起動し、Kubernetes クラスタの初期化が始まります。

8-1. Setting up 状態

Harvester Cluster
  Management URL: https://192.168.11.139
  Status: Setting up Harvester

Node
  Hostname: harvester
  IP Address: 192.168.11.138
  Status: Setting up node

この状態で 10〜30 分程度待ちます。

8-2. Ready 状態

Harvester Cluster
  Management URL: https://192.168.11.139
  Status: Ready

Node
  Hostname: harvester
  IP Address: 192.168.11.138
  Status: Ready

Cluster と Node の両方が Ready(緑色)になればセットアップ完了です。

9. 管理 UI へのアクセス

ブラウザから https://192.168.11.139 にアクセスします。自己署名証明書の警告を許可して進みます。

9-1. 初回パスワード設定

「Set a specific password to use」を選択し、admin ユーザーのパスワードを設定します。EULA にチェックを入れて「Continue」をクリックします。

9-2. ダッシュボード確認

ダッシュボード画面

Harvester Cluster: local
Version v1.4.2

Host: 1    Virtual Machines: 0    Virtual Machine Networks: 0
Images: 0  Volumes: 0             Disks: 1

CPU、Memory、Storage のキャパシティが正常に表示されていることを確認します。

トラブルシューティングまとめ

ISO 登録で RESTRICTED_DIRS エラー

ERROR: Not allowed to copy image from /tmp/..., check RESTRICTED_DIRS in your datastore

対処: ISO を /var/tmp に配置します。OpenNebula はデフォルトで /tmp からのイメージコピーを禁止しています。

TUI でドロップダウンが選択できない

対処: Enter キーではなく Tab キーを使用します。Harvester TUI の一部フィールドは Tab でのみ展開可能です。

再起動後にインストーラーが再表示される

対処: VM を停止し、ISO ディスク(DISK_ID=1)をデタッチして再起動します。

onevm poweroff <VM_ID> --hard
onevm disk-detach <VM_ID> 1
onevm resume <VM_ID>

削除済み VM のゴーストリースが残る

OpenNebula で VM を削除しても、仮想ネットワークのリースが残存することがあります。

VNet 0 AR 0 has leased 192.168.11.138 to VM 46, but it is actually free

対処: onedb fsck で DB 整合性を修復します。

sudo systemctl stop opennebula
sudo onedb fsck
sudo systemctl start opennebula

注意: onedb fsck 実行には OpenNebula サービスの停止が必要です。稼働中の VM はサービス停止中もそのまま動作します(管理操作のみ一時的に不可)。

最終構成サマリ

アクセス情報

接続先 URL / IP ユーザー名 パスワード
Harvester 管理UI https://192.168.11.139 admin 初回ログイン時に設定
ノード SSH 192.168.11.138 rancher YourPassword
VNC コンソール Sunstone 経由 F12 でシェル、パスワード: YourPassword

Harvester バージョン情報

コンポーネント バージョン
Harvester v1.4.2
組み込み Rancher v2.10.1
Kubernetes(RKE2) v1.31.4+rke2r1
KubeVirt v1.3.1
Longhorn v1.7.2
OS 基盤 SLE Micro 5.5

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?