Kubernetes (k8s) とは
Kubernetes(通称k8s)は、コンテナ化されたアプリケーションのデプロイ、スケーリング、および管理を自動化するためのオープンソースプラットフォームです。
- ノード: コンテナが実際に動作する物理または仮想マシンです。
- マスターノード: クラスター全体を管理し、コンテナのデプロイやスケーリングなどを制御します。
- クラスター: 複数のノード(マスターノードとワーカーノード)の集合体で、Kubernetesの管理単位となります。
Minikube
Minikubeは、SIG-Cluster-Lifecycle(Kubernetesのコミュニティグループ)によって開発されたツールで、ローカル環境に簡単に単一ノードのKubernetesクラスターを構築・実行できます。開発やテスト目的でKubernetesを試すのに最適です。
Minikubeは、ローカルの仮想マシン(VM)やコンテナ内にKubernetes環境を構築・実行するため、ハイパーバイザー(VMware Fusion, VirtualBox, Hyper-Vなど)またはコンテナランタイム(Docker, Podmanなど)が必要です。Minikubeは、これらのドライバーを使用して自動的にホスト環境をセットアップし、その上にKubernetesをデプロイします。
M1 Macにおける注意点: 以前はM1 Macでのハイパーバイザーの選択肢が限られていましたが、現在はDocker DesktopがM1 Macにネイティブ対応しており、MinikubeのDockerドライバーを利用することで問題なく動作します。
Minikubeのインストール
Homebrew(macOSの場合)を使用してMinikubeをインストールします。
brew install minikube
このコマンドは、Minikubeだけでなく、Kubernetesクラスターを操作するためのコマンドラインツールである kubectl
も同時にインストールします。
Minikubeを使用してKubernetes環境を構築する
minikube start
コマンドを実行すると、MinikubeがローカルにKubernetesクラスターを起動します。
minikube start
初回起動時には、必要なイメージのダウンロードやクラスターのセットアップが行われるため、時間がかかる場合があります。
Contextの切り替え
複数のKubernetesクラスターを利用している場合、kubectl
がどのクラスターを操作するかを指定するためにContextを切り替える必要があります。Minikubeを起動すると、自動的にMinikubeクラスターのContextが設定されます。
kubectl config use-context minikube
ノードの確認
クラスターが正常に起動しているか、ノードの状態を確認します。
kubectl get nodes
minikube
という名前のノードが Ready
状態であれば、クラスターは正常に動作しています。
Minikubeクラスターの削除
Minikubeクラスターを停止し、関連するリソースを削除するには、minikube delete
コマンドを使用します。
minikube delete
これにより、Minikubeが作成した仮想マシンやコンテナ、関連ファイルがクリーンアップされます。
参考
- 青山真也, 『Kubernetes完全ガイド 第2版 impress top gearシリーズ』, インプレス (2021)
- Minikube公式ドキュメント