kindのインストール

kindというのは,Kubernetesクラスタを簡単に作れるツール。kindは、Kubernetes IN Dockerの略。つまり、KubernetesクラスタがDockerコンテナ上で動作するということになる。

ローカル環境でKubernetesを利用できるツールとしてはminikubeやmicrok8sと同様のもの。但し,kindにはマルチノードクラスタを作れるという他のツールには無い大きな特長がある。

また、kindはKubernetesの公式ツールでもある。つまり、Kubernetesの挙動を確認したい場合やCI(Continuous Integration)環境で新しいビルドとリリースプロセスをテストしたいという場合にはkindが適している。

multipassにkindをインストールする。但し、このインストールの前にkubectlのインストールをしておく必要がある。

ubuntu@DEV:/home$ sudo curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 86 100 86 0 0 117 0 --:--:-- --:--:-- --:--:-- 120
100 9697k 100 9697k 0 0 3242k 0 0:00:02 0:00:02 --:--:-- 7121k

ubuntu@DEV:/home$ chmod +x ./kind
ubuntu@DEV:sudo mv ./kind /usr/local/bin/kind
ubuntu@DEV:/home$ kind --version
kind version 0.26.0-alpha+74acdf744a3566

一行目のコマンドで、kindのバイナリをダウンロードしている。次に、ダウンロードしたバイナリに実行権限を付与。そして、ダウンロードしたバイナリを /usr/local/bin/kind ディレクトリに移動。

これで、問題なく、kindがインストールされている。

続いて、いよいよ、クラスターを作成してみる。クラスターを構成するマシン(ノード)のベースとなるイメージは、kindest/node:v1.29.、つまり、Docker Hubのkindest/nodeで公開されているKubernetes バージョン 1.29.0と指定。プロジェクトや本番環境が「Kubernetes v1.29」で動いている場合、自分のPCも全く同じバージョンに揃えないと、動くはずのプログラムがエラーを起こす原因になるために指定。

なお、kind create cluster コマンドをそのまま実行した場合、自動的に kind-kind という名前になる。kind でクラスターを作ると、接続先の名前(コンテキスト名)は自動的に kind-[クラスター名] という法則で命名される。

ubuntu@DEV:kind create cluster --image=kindest/node:v1.29.0
Creating cluster "kind" ...
✓ Ensuring node image (kindest/node:v1.29.0)
✓ Preparing nodes
✓ Writing configuration
✓ Starting control-plane
✓ Installing CNI
✓ Installing StorageClass
Set kubectl context to "kind-kind"

クラスターが作成されているかを確認する。

ubuntu@DEV:~$ sudo kubectl cluster-info --context kind-kind
Kubernetes control plane is running at https://127.0.0.1:46537
CoreDNS is running at https://127.0.0.1:46537/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

コントロールプレーンノード(control-plane)はクラスターの管理と制御を担当する特別なノード。APIサーバー、コントローラーマネージャー、スケジューラー等のクラスターを管理するためのコアコンポーネントである。これに対して、アプリケーションコンテナが配置され、実行されるノードはワーカーノードと呼ばれ、このワーカーノードにクラスター内のアプリケーションがデプロイされる。kindではノードをDockerコンテナとして起動される。Dockerコンテナとしてのノードが起動される。その内部でcontainerdが初期化が行われる。そして、KubernetesのAPIサーバーからの要求に応じてPodの実行や管理を行う。コンテナ間でのネットワーク機能はCNI[Container Network Interface]が担う。

また、CoreDNSはKubernetesクラスターのDNSとして機能するDNSサーバーである。

コンテキスト[context]というのは、kubectlがどのKubernetesクラスタと通信するかを示すもの。

kindを用いると、新しいコンテキストが自動設定される。

補足

127.0.0.1はネットワークにおいて自分自身のコンピューターに割り当てられたIPアドレス。すなわち、ループバックアドレスの一つ。127.0.0.1を表すホスト名はlocalhostとなる。

なお、IPv4では上記の通り、127.0.0.1が最も一般的に使用されるループバックアドレスとなるが、127.0.0.0から127.255.255.255の全範囲がループバック用として予約されている。また、IPv6では::1[0:0:0:0:0:0:0:1]が使用される。

参考

ローカルKubernetes構築ツールとしては、kind以外にminikubeが定番とされている。

kindとminikubeの比較
項目kind(Kubernetes in Docker)minikube
仕組みDockerコンテナの中にKubernetesを作る仮想マシン(VM)やDockerの中にKubernetesを作る
最大の特徴とにかく爆速で軽量。複数マシンの構成(マルチノード)が簡単に作れる機能が非常に豊富。アドオン(プラグイン)でさまざまな機能をON/OFFできる
起動スピード圧倒的に速い(数秒〜数十秒)やや遅い(VMの起動を待つため)
PCへの負荷軽い重い(特に仮想マシンを使う場合)
主な用途CI/CD(自動テスト)での使い捨て環境、軽量な開発本番環境に近い本格的な機能テスト、学習用

kind や minikube 以外にも、用途に合わせていくつかのツールが存在する。


@2026-09-26

Mathematics is the language with which God has written the universe.





















ELFプログラムヘッダーのデータ構造と型 Network Namespaceによる最小ネットワーク構成 固定式位置エンコーディング Model2Vec Virtualboxでavxを有効化 Docker composeのインストール