エンジニア 技術

MacにてKubernetes(k8s)クラスタを簡単に構築する方法を解説

広告

「Kubernetesの環境を作るのはハードルが高すぎる。。VMを用意するなり、AWSと契約するなりしなきゃ・・」

めいず(筆者)
めいず(筆者)

そんなあなたに今回はkindというk8sクラスタ構築ツールについて解説します。

kind(Kubernetes IN Docker) は、Dockerコンテナの中にKubernetesのクラスタを構築できるツールです。

kindの原理や使い方についてわかりやすく解説するので、これでPC一台でVM仮想化をしなくてもk8sクラスタを構築できます。
kubectlを叩いた実践的な作業も可能です。

Kindとは

kindはDockerコンテナをk8sクラスタを構成するVMと見立ててk8sクラスタを構築するツールです。
https://kind.sigs.k8s.io/

k8sが公式で提供しているツールであり、Dockerがあればインストールが可能です。

「k8sクラスタ構築のためには、最低でもMASTERノードにさまざまなコンポーネントが必要じゃないの?」と思ったあなたへ。
すでに勉強が進んでいそうですね。

そんなあなたに伝わるように解説します。

Dockerを用いたコンテナ型仮想化

まずDockerを用いてコンテナ型の仮想化をする場合、環境は以下になります。よく見る図ですよね。

ホストOSにDockerをインストールした場合は、Dockerをコンテナエンジンとしてコンテナが起動し、その上(中)でアプリケーションが動作します。
「VMにはゲストOSをインストールする必要があるが、コンテナはゲストOSがなくてもアプリケーションが動作できる軽量な環境」といった解説を見たことがあるでしょう。

k8sクラスタの構成

続いてk8sクラスタの構成は以下になります。

2025年7月現在、k8s上ではDockerではなくcontainerdをコンテナエンジンとして利用することが推奨されています。
containerdは軽量で高機能なコンテナ実行ランタイムです。

従来、k8sクラスタ上のVMもDockerを利用していましたが、簡単に述べると「Dockerは不要なプロセスが多いからcontainerdで良い!」と、k8s側がDockerを使わない仕様に変更しました。

containerdは軽量なコンテナランタイムであり、Dockerはcontainerdを含んでコンテナを管理できるツールだと考えましょう。

そしてk8sクラスタの構築時はcontainerdがインストールされた状態のVMを起動し、その上でPodという単位でコンテナを管理します。
ゲストOSにはk8sクラスタとして動作するための、さまざまなコンポーネントがPodあるいは、単にVMのプロセスとして稼働しています。

kindを使ったk8sクラスタの構成

k8sクラスタを構築する場合、上記のようにVMを作る必要があります。オートスケーリングのことを考えれば、クラウド上のサービスを頼る必要もあるでしょう。

しかし、「VirtualBoxは重くなるから入れたくない!」「AWSは金がかかるから使いたくない!」など、k8sクラスタを構築するには精神的、金銭的なハードルがあります(もちろんほかにもあるでしょう)。

そこで登場したのがkindです。kindを用いればDockerコンテナをk8sクラスタのVMと見立ててk8sクラスタを構築できます。図に起こすと以下の具合です。

ホストOSにDockerをインストールし、Dockerコンテナをk8sクラスタのVMと見立てて必要なコンポーネントが動作します。
そしてコンテナ上で、k8sクラスタVMと同様にPodの利用が可能です。

kindのインストール方法

以下のコマンド実行でインストールが可能です。

Dockerやbrewのインストールについては以下を参考にしてください。

-エンジニア, 技術
-,