【超簡単】Docker Desktopの画面からポチポチして始める、KindによるKubernetesクラスタ構築ガイド

こんにちは、よしぽ(@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のインストール

まだインストールしていない場合は、公式サイトから入手します。

👉 Docker Desktop ダウンロード


Kubernetes機能の有効化とKubernetesクラスタの作成

  1. Docker Desktopを起動し、右上の歯車マーク(Settings)をクリックする。
  2. 左の「Kubernetes」タブ を選択する。
  3. 「Enable Kubernetes」にチェックを入れる。
  4. Cluster Settingsは「Kind」を選択する。Kubeadmは選択しません。
  5. Node(s)を2にします。
  6. 「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

STATUSReadyなら、クラスタのノードは正常に稼働しています。

ここまでで、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操作に慣れてきたら、次はより本格的なクラスタ構築にもチャレンジしてみてもいいかもしれません。


参考リンク

コメント

タイトルとURLをコピーしました