Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】KubeVirt does not run on Apple Silicon, so I built KubeSilicon

2026年10月24日に「Dev.to」が公開したITニュース「KubeVirt does not run on Apple Silicon, so I built KubeSilicon」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Apple Silicon MacでKubeVirtが動作しないため、KubeSiliconが開発された。これはMac上でLinux仮想マシンを起動し、Kubernetesから操作できるようにするツールで、開発やテスト環境での活用を目的とする。

ITニュース解説

KubeVirtという技術は、Kubernetesというコンテナを管理するシステム上で、さらに仮想マシンを動かせるようにするものです。通常、仮想マシンを動かす際にはKVMという特別な機能が使われます。しかし、KVMは主にLinuxオペレーティングシステムに搭載されている機能であり、Apple Siliconチップを搭載したMacでは直接利用できません。このため、Apple Silicon MacではKubeVirtを使って仮想マシンを動かすことができないという課題がありました。

このような状況に対し、ある開発者がKubeSiliconという新しいツールを開発しました。KubeSiliconは、Apple Silicon Mac上でLinuxの仮想マシンを起動し、それをKubernetesクラスターの中から管理できるようにするものです。開発者が日頃KubeVirtを基盤としたクラウド運用システムを管理している中で、Apple Silicon Mac上で仮想マシン作成のテストを行いたいというニーズがあり、そのためにこのツールが作られました。

KubeSiliconの基本的な仕組みを見てみましょう。まず、ユーザーはKubernetesクラスター内に「SiliconVM」という仮想マシンの「設計図」のようなものを定義します。これはKubernetesのカスタムリソース定義(CRD)という仕組みを使って行われ、CPUの数、メモリの量、使用するディスクイメージの場所、仮想マシンの初期設定などを記述します。この設計図が作成されると、Apple Silicon Mac上で動作している「kubesilicond」というデーモンプログラムがそれを監視します。デーモンとは、コンピューターのバックグラウンドで常に動いているプログラムのことです。

kubesilicondデーモンは、新しいSiliconVMの設計図が認識されると、まず仮想マシンで使用するディスクイメージをインターネットからダウンロードし、必要に応じて変換します。次に、仮想マシンの初期設定(たとえば、ユーザーアカウントやSSHキーの設定など)を自動で行うためのファイルを作成します。これらの準備が整うと、Macに標準で備わっている「Virtualization.framework」という仮想化技術を利用して、実際にLinux ARM64の仮想マシンをMac上で起動します。起動された仮想マシンのIPアドレスや現在の状態は、Kubernetesクラスター内のSiliconVMオブジェクトに反映され、いつでも確認できるようになります。また、Kubernetesクラスター内のPod(コンテナが動作する最小単位)からは、このMac上で動く仮想マシンに対して、IPアドレスやKubeSiliconが自動的に発行するDNS名を使って通信できます。これにより、コンテナアプリケーションと仮想マシンが連携するテストをローカル環境で簡単に行えるようになります。

実際にKubeSiliconを試すには、まずkindというツールを使ってDocker Desktop上にローカルのKubernetesクラスターを構築します。そのクラスターに対してKubeSiliconをインストールし、最後に用意されたYAMLファイルを使ってSiliconVMオブジェクトを適用するだけで、数分後にはLinuxの仮想マシンがMac上で起動し、Kubernetesクラスターからアクセス可能になります。SiliconVMの定義では、CPUやメモリの他に、UbuntuなどのクラウドイメージのURLとディスクサイズを指定し、cloudInitという設定でSSH公開鍵を登録してセキュアにログインできるように設定します。

KubeSiliconは、kind on Docker Desktop環境で動作することが確認されています。minikubeやColima、OrbStack、k3dなど、Mac上で動作する他のKubernetesクラスター環境でも理論上は動作すると考えられますが、まだ検証はされていません。重要な点として、KubeSiliconで起動する仮想マシンはあなたのMac上で動作するため、クラウド上のKubernetesクラスターとは連携できません。

KubeSiliconはKubeVirtとは異なるツールです。KubeVirtはKVMとQEMUという技術を使い、Linuxサーバー上のPod内でさまざまなゲストOS(Linux、Windowsなど)を動かせます。ライブマイグレーションやホットプラグ、スナップショットといった高度な機能も持っており、CNCFのインキュベーションプロジェクトとして成熟度が高いです。一方、KubeSiliconはApple Virtualization.frameworkを使い、Mac上でLinux ARM64ゲストのみを動かします。高度な機能は持たず、まだ開発の初期段階にあります。KubeVirtがLinuxサーバーでの本格的な仮想マシン管理に適しているのに対し、KubeSiliconはApple Silicon Macでの開発、デモンストレーション、CI(継続的インテグレーション)などの用途に特化しています。

KubeSiliconはまだ開発初期段階であり、いくつかの制限があります。現在は1台のMacでしか動作せず、複数のMacをノードとして利用することは将来の目標です。また、仮想マシンのランチャープロセスが予期せず終了した場合、仮想マシンが自動で再起動する機能は今のところありません。対応するゲストOSもLinux ARM64に限定されており、macOSゲストのサポートは想定されていません。APIのバージョンも将来変更される可能性があります。

開発者は、初期の段階で仮想マシンが予期せずクラッシュする問題に遭遇しましたが、ディスクのアタッチメント設定を変更することで、安定性が大幅に向上したと報告しています。このプロジェクトはオープンソースとしてGitHubで公開されており、Apple Silicon Mac、Go言語、qemu-img、kindクラスター、kubectlがあれば誰でも試すことができます。他のクラスターツールでの動作報告など、フィードバックは広く歓迎されています。

関連コンテンツ

関連IT用語

関連ITニュース