コンテナオーケストレーションのデファクトスタンダードであるKubernetes (K8s)。「難しそう」「環境構築が大変そう」と思っていませんか? 今回は、Kind (Kubernetes in Docker) を使って、驚くほど簡単にローカルでK8s環境を作る方法を紹介します。
Kubernetesとは?

一言で言えば、「大量のコンテナを賢く管理する指揮者」です。 例えばDockerだけだと、コンテナが落ちた時に手動で再起動したり、アクセスが増えた時のスケーリングが大変です。 Kubernetesはこれらを自動で行ってくれます。
- 自動復旧: 落ちたコンテナを勝手に再起動
- スケーリング: 負荷に応じてコンテナ数を増減
- ローリングアップデート: サービスを止めずに更新
重要なキーワード:Cluster(クラスター)と Pod(ポッド)
これだけ覚えればOKです。
1. Cluster(クラスター)
「システム全体」のことです。複数のコンピューター(ノード)を束ねて1つの巨大なコンピューターのように扱います。
Kindや GKE, EKS などを使うと、まずこの クラスター が提供されます。2. Pod(ポッド)
Kubernetesで扱う「最小単位」です。
- コンテナを直接動かすのではなく、コンテナが入った「Pod」を動かします。
- エンドウ豆のさや(Pod)の中に、豆(コンテナ)が入っているイメージです。
- 文字通り「さや」なので、通常は1つのコンテナが入っていますが、複数のコンテナを同居させることもできます。
なぜ Kind なのか?
学習用ツールとしてはMinikubeも有名ですが、Kindは「Dockerコンテナの中でK8sノードを動かす」という仕組みのため、非常に軽量で起動が早いです。 Dockerさえ入っていれば、数コマンドで自分専用のクラスターが手に入ります。
実機で動かしてみよう
それでは実際にMac (またはLinux/WSL) で動かしてみましょう。
1. Kindのインストール
Macの場合はHomebrewで一発です。
brew install kind
インストールできたか確認します。
kind --version # kind v0.20.0 go1.21.1 darwin/arm64 みたいな表示が出ればOK
2. クラスターの作成
kind create cluster --name my-cluster
これだけで、裏でDockerイメージがダウンロードされ、K8sのコントロールプレーンが立ち上がります。
kubectl cluster-info --context kind-my-cluster と表示されれば完了です。
3. 動作確認:Nginxを動かす
実際にWebサーバー(Nginx)をデプロイしてみましょう。
# NginxのDeploymentを作成 kubectl create deployment nginx --image=nginx # Podの状態を確認 kubectl get pods
STATUS が ContainerCreating から Running に変われば成功です。
4. ブラウザからアクセス
Podはクラスターの中にいるため、そのままでは外からアクセスできません。 ポートフォワード機能を使って、PCのポートをPodに繋ぎます。
kubectl port-forward deployment/nginx 8080:80
これでブラウザを開き、 http://localhost:8080 にアクセスしてみてください。
「Welcome to nginx!」の画面が表示されましたか?これがあなたのPCの中で動いているKubernetesの力です!
5. 後片付け
遊び終わったら、環境を丸ごと削除できます。
kind delete cluster --name my-cluster
まとめ
Kubernetesは、Kindを使えば「怖くない」技術です。 まずはこの手軽な環境で、Podを作ったり壊したりして遊んでみてください。それが習得への一番の近道です。