Harvester: KubernetesがオープンソースHCI仮想化分野に進出

Virtualization tutorial - IT technology blog
Virtualization tutorial - IT technology blog

5分でわかるHarvester入門

VMware vSANやNutanixの高額なライセンス費用を抑えつつ、ハイパーコンバージドインフラ(HCI)を運用したいとお考えではありませんか?Harvesterはその答えとなります。最大の特徴はKubernetes上で直接動作することであり、VM(仮想マシン)の管理をコンテナ管理と同じようにモダンなものに変えてくれます。

まずは、ハードウェア仮想化(Hardware Virtualization)をサポートするサーバー(または仮想マシン)を用意してください。最小構成として16GB以上のRAMを推奨します。インストール手順は非常にスムーズです:

  1. Harvester(Rancher)の公式サイトから最新のISOファイルを入手します。
  2. ブート用USBを作成するか、IPMI/iDRAC経由でISOをサーバーにマウントします。
  3. 起動後、Create a new Harvester clusterを選択します。
  4. 後でノードを追加するためのtokenパスワードと、システム用のrootパスワードを設定します。
  5. ネットワーク設定:メインのネットワークカードを選択し、接続切れを防ぐために固定IP(Static IP)の設定を推奨します。
  6. システムが自動的にインストールスクリプトを実行します(約5〜10分)。

再起動後、ブラウザにIPアドレスを入力するだけで、直感的なダッシュボードが表示されます。UbuntuやWindowsのVM作成も、数クリックで完了します。

なぜ Proxmox ではなく Harvester なのか?

私は以前、ラボプロジェクトで15台以上のVMを含むProxmoxクラスターを管理していました。Proxmoxは非常に優れていますが、大規模なスケーリングやクラウドネイティブなエコシステムとの同期が必要な場合、Harvesterの方が優位性があります。これは単なる純粋なハイパーバイザーではありません。

Harvesterの強みは、以下の3つのコア技術から生まれます:

  • KubeVirt: KubernetesのPod内でVMを実行するためのコア技術です。
  • Longhorn: 分散ブロックストレージシステム。ノード間でデータを自動的にレプリケートし、ディスク故障時でも安全性を確保します。
  • Multus: VMがVLANやブリッジなど、複数のネットワークレイヤーに接続できるようにします。

言い換えれば、Kubernetesを使ってVMを管理していることになります。すでにRancherを利用している場合、Harvesterを導入することでインフラ全体を一つのエコシステムとして統合できます。

ハードウェア要件:最小スペックに惑わされないこと

実務上の経験から言うと、カタログスペック上の最小構成は「とりあえず動く」程度です。テスト環境や小規模な本番環境で安定して運用するには、以下の投資を推奨します:

  • CPU: 最低8コア。BIOSでVT-x(Intel)またはAMD-V(AMD)を有効にする必要があります。
  • RAM: 最低32GB。Harvester自体とシステムサービスだけで約8〜12GBを消費します。
  • ディスク: ランダム書き込み速度に優れたSSDまたはNVMeが必須です。Longhornが常にデータを同期するため、HDDを使用するとレイテンシが急増し、VMが重くなります。

高度な設定:Cloud-initとVLAN

インストールが終わったら、次に何をすべきでしょうか?すぐにCloud-initを設定しましょう。これはVMの起動時にユーザー作成、SSHキーの追加、パッケージのインストールを自動化するツールです。一台ずつ手動でパスワードを設定する手間が省けます。

以下は、SSHキーを追加し、qemu-guest-agentをプリインストールするための設定例です:

#cloud-config
users:
  - name: sysadmin
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    ssh_authorized_keys:
      - ssh-rsa AAAAB3NzaC1yc2E... admin@devops

package_update: true
packages:
  - qemu-guest-agent
  - curl
runcmd:
  - [ systemctl, enable, --now, qemu-guest-agent ]

システムのVLAN分割

エンタープライズ環境において、すべてを一つのネットワークセグメントにまとめるのは致命的なミスです。Harvesterでは、Networks -> Configから物理カードに紐付いたClusterNetworkを作成します。その後、特定のVLAN ID(例:Web用VLAN 10、DB用VLAN 20)を持つVirtual Networksを作成します。これにより、VMはレイヤー2レベルで完全に分離されます。

Rancherとの連携で発揮される真の力

ここからがHarvesterの真骨頂です。Rancher Managerに統合すると、Harvesterは(AWSやGCPのような)クラウドプロバイダーとして機能します。

Rancherに対して「Harvester上に3ノードのK8sクラスターを作成して」とリクエストするだけで、Rancherが自動的にAPIを呼び出し、VMを起動し、RKE2をインストールしてロードバランサーを構成します。ベアメタルからKubernetesクラスター構築までの全プロセスが100%自動化されます。

導入時の「痛い目を見ないための」アドバイス

数ヶ月の検証と実戦投入を経て、いくつか重要な注意点をまとめました:

  1. 10Gbpsネットワークは必須: 3ノード以上のクラスターを運用する場合、ストレージ通信用に10Gbpsスイッチを使用してください。1Gbpsでは、ノード故障時にLonghornがデータを再構築する際、システム全体がボトルネックになります。
  2. バックアップ戦略: HarvesterはS3またはNFSへのバックアップをサポートしています。私はS3バックエンドとしてMinIOをよく使います。バックアップファイルが正常に動作するか、定期的に復元テストを行うことを忘れないでください。
  3. Image URLの活用: ISOをローカルにダウンロードしてアップロードする手間を省きましょう。Cloud Image(UbuntuやDebianなど)のリンクを直接貼り付けてください。Harvesterが直接ダウンロードするため、高速で容量も最適化されます。
  4. 常にVirt-IOを使用: VM作成時、ディスクとネットワークの両方にVirt-IOドライバーを選択してください。通常のシミュレーションドライバーと比較して、パフォーマンスが20〜30%向上します。

Harvesterは現在、開発・ステージング環境や中規模の本番環境において、有料ソリューションを代替できるほど成熟しています。OpenStackの複雑さに疲弊しているなら、ぜひHarvesterを試してみてください。期待を裏切らないはずです。

Share: