kubernetesを使った開発では、GKEやEKS等のパブリックベンダーが提供しているkubernetesサービスを利用するケースが多いですが、ローカルでk8s環境を構築して開発ができると便利です。そこで、今回は、ローカル環境にk8sを構築する3つの方法について紹介します。

Docker for Desktop付属のk8sを利用する

docker for desktopの設定画面にkubernetsというタブを開き、Enable Kubernetesをクリックすることで利用できるようになります。

docker for desktopで作成された際のクラスタ名は、 docker-desktopとして作成されます。構成は、シングルノードになっていますが、docker for desktopをインストールすることで手軽に始めることができるのがいいですね。

minikubeを利用する

minikubeは、ローカル環境でkubernetesを簡単に実行するためのツールです。ローカル環境構築では多く利用されている印象があります。minikubeを利用するには、Macでは下記コマンドでインストールできます。

$ brew install minikube

稼働するには、下記のコマンドを利用します。

$ minikube start

クラスタ名は、minikubeが作成されます。構成は、シングルノードになっています。
詳しくは、https://minikube.sigs.k8s.io/docs/を参照してください。

Kindを利用する

Kindは、Docker container “nodes”を使って、k8sのクラスタを生成するツールです。こちらのツールは、他の機能にはないマルチノード、マルチクラスタ構成を生成することができるのが特徴です。

Macの場合のインストール手順は、下記のとおりです。

$ brew install kind

yamlファイルで作成するcluster構成を記載することができます。2つのworkノードを作成するには、下記のような形で記載します。

-- kind.yaml
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker

クラスタ生成時に下記のようにファイルを指定します。

kind create cluster --config kind.yaml

クラスタの削除は、下記のようにします。

kind delete cluster

詳しくは、https://kind.sigs.k8s.io/を参照してください。

まとめ

個人的には、kindがローカル環境を汚さず作業ができるので気に入っています。ツールごとに個性があるので、うまく使い分けてローカル開発環境をうまく使ってcloud native開発に取り組んでいけると良いですね。