Windows wsl2 + kindでローカルKubernetesを使用してみる

2024/12/30に公開

はじめに

今までローカルKubernetes環境としてMinikubeやDocker Desktop上のKubernetesを利用してきたが、今更ながら複数Node構成などが可能?であるkindを知ったので環境を準備したときの備忘録。

前提環境

  • OS: Windows11, WSL2(Ubuntu 22.04.4 LTS)
  • Docker Desktop: 4.37.1
  • Docker: 27.4.0

kindインストール

事前準備

以下の項目が用意されていれば良さそうです。(kubectlは必須ではないようですが、ハンズオンする際にあったほうが良さそうです。)

  1. WSL2
  2. Docker
  3. kubectlクライアントコマンド

DockerとkubectlはDocker DesktopをインストールすればWSL上でも使えるようになっているはず?
もし、WSL上でdocker --versionkubectl versionコマンドが使えなければDocker DesktopのSettingsのResourcesのWSL integrationが有効になっているか確認してみてください。

インストール

kindドキュメントのQuick Startにあるコマンドを実行していきます。
今回はInstalling From Release Binariesの方法でインストールします。
私の環境はx86_64なので、下記のコマンドを実行します。(uname -mで確認しました。)

# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.26.0/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

下記のようにversionを表示できればインストールできています。

$ kind --version
kind version 0.26.0
$ kind version
kind v0.26.0 go1.23.4 linux/amd64

クラスターの作成と削除

ついでに、kindドキュメントのInteracting With Your Cluster, Deleting a Clusterにあるサンプルを試してみます。

クラスターの作成

下記のコマンドでクラスターを作成します。--nameで指定しないとデフォルトでkindというクラスターが作成されるようです。

$ kind create cluster --name kind-2
Creating cluster "kind-2" ...
 ✓ Ensuring node image (kindest/node:v1.32.0) 🖼
 ✓ Preparing nodes 📦
 ✓ Writing configuration 📜
 ✓ Starting control-plane 🕹️
 ✓ Installing CNI 🔌
 ✓ Installing StorageClass 💾
Set kubectl context to "kind-kind-2"
You can now use your cluster with:

kubectl cluster-info --context kind-kind-2

Have a question, bug, or feature request? Let us know! https://kind.sigs.k8s.io/#community 🙂

下記のコマンドで作成されたクラスターを確認してみます。

$ kind get clusters
kind-2
$ kubectl cluster-info --context kind-kind-2
Kubernetes control plane is running at https://127.0.0.1:43163
CoreDNS is running at https://127.0.0.1:43163/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

クラスターの削除

$ kind delete cluster --name kind-2
Deleting cluster "kind-2" ...
Deleted nodes: ["kind-2-control-plane"]
$ kind get clusters
No kind clusters found.

参考

Discussion