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開発に取り組んでいけると良いですね。