AI

エッジ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程度が推奨されます。開発・テスト・エッジ環境では、より軽量な代替が必要です。

主要ツール比較表

項目K3sMicroK8sKind
ライセンスApache 2.0Apache 2.0Apache 2.0
開発元Rancher/SUSECanonicalKubernetes SIG
インストールバイナリ1つsnapDocker内Kubernetes
最小RAM512MB512MB2GB(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環境でも正常に使えます。

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。