DevOps

Kubernetesを手軽に試そう!Kindを使った実機動作確認ガイド

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

Kubernetesとは?

Kubernetes Neon Logo

一言で言えば、「大量のコンテナを賢く管理する指揮者」です。 例えば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

STATUSContainerCreating から 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を作ったり壊したりして遊んでみてください。それが習得への一番の近道です。