エッジKubernetes比較:K3s vs MicroK8s vs Kind で軽量Kubernetesを構築する
オープンソースラボ編集部 ・ 2026年6月14日
エッジKubernetes比較:K3s vs MicroK8s vs Kind で軽量Kubernetesを構築する
⚙️ ラップトップ・Raspberry Pi・CI環境で動く軽量Kubernetes。K3s・MicroK8s・Kindの違いと最適な使い分けを解説します。
軽量Kubernetesが必要な理由
本番用のKubernetesは最低でも3ノード・16GB RAM程度が推奨されます。開発・テスト・エッジ環境では、より軽量な代替が必要です。
主要ツール比較表
| 項目 | K3s | MicroK8s | Kind |
|---|---|---|---|
| ライセンス | Apache 2.0 | Apache 2.0 | Apache 2.0 |
| 開発元 | Rancher/SUSE | Canonical | Kubernetes SIG |
| インストール | バイナリ1つ | snap | Docker内Kubernetes |
| 最小RAM | 512MB | 512MB | 2GB(Docker必要) |
| ARM対応 | ◎ | ◎ | ○ |
| 本番利用 | ◎ | ○ | × |
| CI向け | ○ | ○ | ◎ |
| マルチノード | ◎ | ◎ | ◎ |
| アドオン管理 | ◎(Helm charts) | ◎(snap) | △ |
各ツールの特徴
K3s
Rancher(現SUSE)が開発した最も軽量なKubernetes。40MBのバイナリ1つで完全なKubernetesが動作します。
主な特徴:
- 40MB以下のシングルバイナリ(外部依存なし)
- SQLite/etcd/MySQL等をデータストアに選択可能
- ARM64/ARMv7完全対応(Raspberry Pi等で動作)
- エッジ・IoT・組み込み環境での本番利用実績
# K3sのインストール(1コマンド)
curl -sfL https://get.k3s.io | sh -
# インストール確認
sudo kubectl get nodes
# ワーカーノードの追加
# マスターのトークンを確認
sudo cat /var/lib/rancher/k3s/server/node-token
# ワーカー側で実行
curl -sfL https://get.k3s.io | K3S_URL=https://master:6443 K3S_TOKEN=<node-token> sh -
# K3sのkubeconfigを取得
sudo cat /etc/rancher/k3s/k3s.yaml > ~/.kube/config
sudo chmod 600 ~/.kube/config
向いているケース: エッジ/IoT・Raspberry Pi・軽量本番クラスタ
MicroK8s
Canonicalが開発したsnapパッケージ版Kubernetes。Ubuntu向けに最適化されており、アドオンの有効化が特に簡単です。
主な特徴:
- snapでインストール・自動更新
microk8s enableコマンドでDNS・ダッシュボード・Istio等を1行有効化- Ubuntu Proとの統合
- マルチノードクラスタ構築が容易
# MicroK8sのインストール
sudo snap install microk8s --classic
# グループ追加(sudoなしで使えるように)
sudo usermod -a -G microk8s $USER
newgrp microk8s
# アドオン有効化
microk8s enable dns dashboard storage
# マルチノード構築
microk8s add-node
# → 表示されるコマンドを別ノードで実行
# ダッシュボードアクセス
microk8s dashboard-proxy
向いているケース: Ubuntu環境・アドオン管理・ローカル開発
Kind(Kubernetes IN Docker)
Docker内でKubernetesを動かすCI向けツール。Kubernetesのテストスイート自体がKindで構築されています。
主な特徴:
- Docker内に完全なKubernetesクラスタを構築
- YAML設定でマルチノードクラスタを瞬時に作成・削除
- GitHub Actions等のCIで広く使われる
- ローカルでKubernetesのバージョンテスト
# kindのインストール
go install sigs.k8s.io/kind@latest
# または
brew install kind
# クラスタ作成
kind create cluster --name test-cluster
# マルチノードクラスタ
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
EOF
# 削除
kind delete cluster --name test-cluster
# GitHub Actionsでの利用例
- name: Create Kind cluster
uses: helm/kind-action@v1.8.0
with:
cluster_name: test
- name: Deploy and test
run: |
kubectl apply -f manifests/
kubectl wait --for=condition=ready pod -l app=myapp --timeout=60s
向いているケース: CI/CDパイプライン・Kubernetesバージョンテスト
選択ガイド
| 状況 | 推奨 |
|---|---|
| Raspberry Pi・エッジ本番 | K3s |
| Ubuntu環境・ローカル開発 | MicroK8s |
| CI/CD・テスト・クラスタ作成/削除頻繁 | Kind |
内部リンク
外部リソース
FAQ
Q. MinikubeとKindの違いは何ですか?
MinikubeはVM上でKubernetesを動かします(VM管理ドライバーが必要)。KindはDocker内で動くため、DockerさえあればVM不要でより軽量です。
Q. K3sとK8s(フルKubernetes)のAPI互換性はありますか?
K3sはKubernetes API完全準拠です。本番でK3sを使い、フルKubernetesに移行する場合もマニフェストをそのまま使えます。
Q. Raspberry Pi 4でK3sを動かすのに必要なスペックは?
最低でもRaspberry Pi 4 2GBモデル推奨です。ストレージはmicroSDよりSSDを推奨(耐久性・速度)。
Q. KindはWindowsでも動きますか?
Docker Desktop for Windowsがあれば動作します。WSL2環境でも正常に使えます。