こんにちは、よしぽ(@yspo107)です。
今回はローカル環境で簡単にKubernetesクラスタを構築できるツール「Kind (Kubernetes IN Docker)」を使った方法をご紹介します。
Kindとは?
Kind (Kubernetes IN Docker) は、Dockerコンテナ上にKubernetesクラスタを構築するためのツールです。
主に以下の用途で利用されています。
- ローカル環境でのKubernetes検証
- 手軽な学習環境の構築
Dockerさえインストールされていれば、数分でKubernetesクラスタを立ち上げることができます。
Docker DesktopでKindクラスタを構築する手順
Docker Desktopは、GUIから簡単にKubernetes(Kindベース)のクラスタを作成できる機能が提供されています。
以下の手順で進めていきます。(Mac・Windowsどちらも可)
Docker Desktopのインストール
まだインストールしていない場合は、公式サイトから入手します。
Kubernetes機能の有効化とKubernetesクラスタの作成

- Docker Desktopを起動し、右上の歯車マーク(Settings)をクリックする。
- 左の「Kubernetes」タブ を選択する。
- 「Enable Kubernetes」にチェックを入れる。
- Cluster Settingsは「Kind」を選択する。Kubeadmは選択しません。
- Node(s)を2にします。
- 「Apply & Restart」をクリックする。
これでKubernetes機能が有効になります。数分でKubernetesクラスタが作成されます。
クラスタ動作確認
Docker DesktopでKubernetesクラスタを構築したら、まずはkubectl
コマンドで正しく接続されているか確認してみましょう。
※Docker DesktopでKubernetesを有効化すると、kubectl
コマンドラインツールが自動的にインストールされます。
接続先クラスタ(コンテキスト)の確認
以下のコマンドで、kubectl
がどのクラスタに接続しているかを確認できます。
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* docker-desktop docker-desktop docker-desktop
*
:現在選択中のコンテキストNAME
:コンテキスト名CLUSTER
:実際のKubernetesクラスタ名(AWSのEKSの場合はARN形式だったりする)AUTHINFO
:認証情報(どの資格情報でアクセスするか)|
docker-desktop
が選択されていれば、Docker Desktopで作成したKubernetesクラスタに接続中です。
接続先クラスタの切り替え
別のクラスタに切り替えたい場合は以下のコマンドを使用します。
$ kubectl config use-context <NAME>
# 例
$ kubectl config use-context docker-desktop
ノードの状態を確認
クラスタのノードが正しく起動しているか確認するには、次のコマンドを実行します。
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
desktop-control-plane Ready control-plane 1h v1.33.0
desktop-worker Ready <none> 1h v1.33.0
STATUS
がReady
なら、クラスタのノードは正常に稼働しています。
ここまでで、Docker Desktop上に問題なくKubernetesクラスタが構築できたことが確認できました。
少し本格的な話:なぜKindは本番環境向きではないのか?
今回使用したDocker Desktopでは、内部的に Kind(Kubernetes IN Docker) をベースにしてクラスタが作られています。
Kindはローカル検証にとても便利ですが、実際の本番環境では使われません。
その理由は、KindがDockerコンテナ上に仮想的なノードを構成する仕組みになっているためです。
コンテナベースのノードは、
- 物理サーバやクラウドVMとはネットワークやストレージ構成が異なる
- 本番環境で求められる高可用性やパフォーマンス要件を満たす設計になっていない
- セキュリティやオーケストレーション要件(CNIプラグインや負荷分散設定など)も簡易化されている
といった特徴があり、あくまでローカル開発・学習・CIテスト向けに設計されています。
そのため、本番環境では通常、物理サーバや仮想マシン上に実ノードを構成するkubeadmや、マネージドサービス(EKS、GKE、AKS) が利用されます。
まとめ
- Docker Desktopを使えば、簡単にKubernetesクラスタをローカルで作成できる
kubectl config get-contexts
で接続先確認、kubectl get nodes
でノード状態確認- Kindはローカル開発・学習・CIテスト向けのクラスタ構築ツール
ローカルでのKubernetes操作に慣れてきたら、次はより本格的なクラスタ構築にもチャレンジしてみてもいいかもしれません。
コメント