SSH経由でリモートまたはローカルのVMにK3s Kubernetesをインストールし、kubectl用のkubeconfigを取得できるコマンドラインツール。
Project-HAMi/HAMi
デバイスを考慮したスケジューリングにより、GPUなどのAIアクセラレータをメモリや計算能力に応じてPod間で共有するKubernetesミドルウェア。
- スター
- 4,896
- フォーク
- 872
- 未解決の Issue
- 33
- 最終コミット
- 7 時間前
これは何?
HAMi(Heterogeneous AI Computing Virtualization Middleware、旧称 k8s-vGPU-scheduler)は、プラットフォームチームが高価なGPUなどのAIアクセラレータをKubernetesワークロード間で共有できるようにします。Podは標準のKubernetesリソース制限を使って、メモリ容量またはコア数でデバイスの一部を要求できるため、アプリケーションのコードを変更する必要はありません。
mutating webhook、scheduler extender、device plugin、コンテナ内の仮想化コンポーネントで構成されています。スケジューリングではbinpack、spread、トポロジー対応、mutex、NUMAの各ポリシーを利用でき、NVIDIA MIGインスタンスの動的な作成と回収にも対応しています。対応バックエンドにはNVIDIA、AMD、Huawei Ascend、Cambricon、Hygon、Iluvatar、Kunlunxin、MetaX、Moore Threadsなどがあります。
Helmでインストールでき、オプションでスケジューラの高可用性レプリカ、Prometheusメトリクス、付属のWebUIを利用できます。CNCF Incubatingプロジェクトです。
主な機能
- 01標準のKubernetesリソース要求を使い、メモリやコア数の上限に基づいてGPUを共有できます。
- 02binpack、spread、トポロジー対応、mutex、NUMAの各ポリシーでPodをスケジューリングします。
- 03NVIDIA MIGに対応し、インスタンスを動的に管理できます。
- 04Ascend、Cambricon、Hygon、MetaXなど、複数ベンダーのアクセラレータに対応しています。
- 05Prometheusメトリクスを提供し、WebUIとGrafanaダッシュボードを利用できます。
ユースケース
- 共有Kubernetes AIクラスターでGPUの利用率を高める。
- 単一のアクセラレータプール上で、マルチテナントのノートブック、学習、推論ワークロードを実行する。
- デバイス割り当てのクォータを制御できるプライベートクラウドAIプラットフォームを構築する。
- 複数ベンダーのアクセラレータが混在するクラスターを、共通のスケジューリング方式で運用する。
クイックスタート
- 1
HAMi が管理できるように GPU ノードにラベルを付けます
kubectl label nodes <node-name> gpu=on - 2
HAMi の Helm リポジトリを追加します
helm repo add hami-charts https://project-hami.github.io/HAMi/ - 3
Helm を使って kube-system に HAMi をインストールします
helm install hami hami-charts/hami -n kube-system - 4
hami-device-plugin と hami-scheduler が Running であることを確認します
kubectl get pods -n kube-system
使う前に知っておきたいこと
- Helm を利用できる Kubernetes クラスターが必要です。また、NVIDIA を使用する場合は NVIDIA ドライバーとコンテナツールキットが必要です。
- 利用するには、クラスターのノードにアクセラレーターのハードウェアが必要です。
トピック
よくある質問
- HAMi とは?
- デバイスを考慮したスケジューリングにより、GPUなどのAIアクセラレータをメモリや計算能力に応じてPod間で共有するKubernetesミドルウェア。 HAMi(Heterogeneous AI Computing Virtualization Middleware、旧称 k8s-vGPU-scheduler)は、プラットフォームチームが高価なGPUなどのAIアクセラレータをKubernetesワークロード間で共有できるようにします。Podは標準のKubernetesリソース制限を使って、メモリ容量またはコア数でデバイスの一部を要求できるため、アプリケーションのコードを変更する必要はありません。
- HAMi は無料で使えますか?ライセンスは?
- HAMi は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- HAMi は今もメンテナンスされていますか?
- 活発にメンテナンス中。HAMi の最終コミットは 2026年10月21日 です。
- HAMi は何に使えますか?
- 共有Kubernetes AIクラスターでGPUの利用率を高める。 単一のアクセラレータプール上で、マルチテナントのノートブック、学習、推論ワークロードを実行する。 デバイス割り当てのクォータを制御できるプライベートクラウドAIプラットフォームを構築する。 複数ベンダーのアクセラレータが混在するクラスターを、共通のスケジューリング方式で運用する。
- HAMi のインストール方法は?
- HAMi が管理できるように GPU ノードにラベルを付けます: kubectl label nodes <node-name> gpu=on HAMi の Helm リポジトリを追加します: helm repo add hami-charts https://project-hami.github.io/HAMi/ Helm を使って kube-system に HAMi をインストールします: helm install hami hami-charts/hami -n kube-system hami-device-plugin と hami-scheduler が Running であることを確認します: kubectl get pods -n kube-system
- HAMi はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/Project-HAMi/HAMi
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
A Kubernetes-native API gateway implementing the Gateway API on top of Envoy, with support for AI gateway use cases.
A management console for the Istio service mesh that visualizes traffic, topology and configuration health in a Kubernetes cluster.
Docker Compose and Kubernetes deployment setup for self-hosting Huly, an open-source all-in-one team collaboration platform.
Open-source cloud-native platform that unifies on-premise KVM, bare metal, vSphere and many public clouds behind one set of APIs.
A Kubernetes operator that deploys and manages Ray applications through RayCluster, RayJob and RayService resources.