キーワードで検索

今日を知り、明日を変えるシステム運用メディア

Minikubeで始めるKubernetes入門:ローカル環境で実践するための事前準備とコマンドを解説

Minikubeで始めるKubernetes入門:ローカル環境で実践するための事前準備とコマンドを解説

Kubernetesを学びたいけれど、何から始めたらいいか分からない…。そんな方にオススメなのが「Minikube」です。

この記事では、ローカル環境でKubernetesを実践的に学ぶための基礎知識と、Minikubeの導入・活用方法を分かりやすく解説します。初心者でも簡単に始められる手順を一緒に見ていきましょう!

Kubernetesとは

Kubernetes

Kubernetes(クバネティス)は、Googleが開発し、現在はオープンソースとして提供されているコンテナオーケストレーションツールです。

アプリケーションを構成するコンテナを自動的にデプロイ、スケール、管理する役割を担います。

例えば、複数のコンテナを効率よく動作させるためのリソース配分、障害発生時の自己修復、トラフィック量に応じたスケール調整などを自動化します。これにより、複雑なアプリケーションの運用管理が容易になります。特に、クラウドネイティブアプリケーションやマイクロサービスの導入で広く利用されています。

Kubernetesのコンポーネント

Kubernetesは、コントロールプレーンとワーカーノードという2つの主要なコンポーネント群で構成されており、これらが連携してクラスターを管理・運用します。それぞれの役割を簡潔に解説します。

コントロールプレーン

コントロールプレーンは、Kubernetesクラスター全体を管理・制御する役割を担います。

kube-apiserverクラスター全体の「窓口」として、ユーザーやツールからのリクエストを受け取り、各コンポーネントに指示を出します。
etcdKubernetesの状態情報(PodやServiceの設定、クラスターデータなど)を保存する分散型キー・バリューストアです。
kube-scheduler新しいPodを最適なノードに配置する役割を担い、リソース状況や設定ポリシーに基づいてスケジューリングを行います。
kube-controller-managerクラスターの状態が望ましい状態と一致するよう、さまざまなコントローラー(レプリカ数の維持など)を統括します
cloud-controller-managerクラウドプロバイダー(AWS、GCPなど)と連携し、ロードバランサーやストレージの管理を行います。

ワーカーノード

ワーカーノードは、実際にアプリケーションのコンテナを動かす役割を担います。

kubelet各ノードでPodを管理し、コンテナの起動・停止などの実行指示を行います。
kube-proxyクラスター内のネットワーク通信を管理し、各Podへのトラフィックをルーティングします。
コンテナランタイムDockerやcontainerdなど、コンテナの実行環境として機能するソフトウェアです。

Minikubeとは

Minikubeは、Kubernetesクラスターをローカル環境で簡単にセットアップして試すことができるツールです。本番環境で使用されるKubernetesとは異なり、Minikubeはローカル環境でしか動作せず、単一ノードクラスターとして動作します。

そのため、実際の分散型クラスターを再現することはできませんが、Kubernetesの基本的な仕組みを学ぶためには最適です。手軽にコンテナのデプロイやPodの管理を体験できるため、学習用途やテスト環境で幅広く利用されています。

Minikubeを使うための事前準備

Minikubeを使うためには、以下の3つのツールが必要です。ここでは、それぞれのツールの役割とインストール方法を解説します。必要なツールは以下の通りです。

  • Docker
  • kubectl
  • Minikube

Docker

Dockerは、Minikubeが使用するコンテナランタイムであり、コンテナを実行するための基盤となります。

動作要件の確認

Docker Desktopは、WindowsとMacでDockerを簡単に利用できるようにする公式ツールです。WindowsとMacそれぞれのインストール手順を詳しく説明しますが、まずは事前に以下の要件を確認してください。

  • Windows: Windows 10(Pro、Enterprise、Education)の64ビット版、またはWindows 11。Homeエディションの場合はWSL 2が必須。
  • Mac: macOS 10.15(Catalina)以降の64ビット版。Apple Silicon(M1/M2)やIntel Macの両方に対応。

次に、こちらの公式サイトからDocker Desktopをダウンロードします。

Docker Desktopのインストール手順(Windows)

  1. インストーラーの実行
    ダウンロードしたインストーラー(例: Docker Desktop Installer.exe)をダブルクリックして実行します。
  2. オプションを確認
    WSL 2 を使用するか(推奨): Windows Subsystem for Linux (WSL 2) を使用すると、より軽量で高速な仮想化が可能です。WSL 2のインストールが未完了の場合、以下の公式ガイドを参考にセットアップしてください。
    WSL 2 のインストール手順(Microsoft公式)
  3. インストール完了
    インストールが終了したら、「Docker Desktop」を起動します。
  4. 初回設定
    Docker IDでログイン(無料で作成可能)します。ログインせずに使いたい場合、「Skip for now」を選択できます。
    初回起動時にWSL 2やHyper-Vの有効化を促される場合があります。画面の指示に従い、適切に設定してください。
  5. 動作確認
    ターミナルまたはコマンドプロンプトで以下のコマンドを入力して、Dockerが正しくインストールされているか確認します。
docker –version

Docker Desktopのインストール手順(Mac)

  1. インストーラーの実行
    ダウンロードしたインストーラー(例: Docker.dmg)をダブルクリックして開きます。
  2. アプリケーションのインストール
    インストーラーが表示されたら、「Docker.app」をアプリケーションフォルダにドラッグ&ドロップします。

  3. Docker Desktopを起動
    アプリケーションフォルダから「Docker」をダブルクリックして起動します。初回起動時にパスワードを要求される場合があるので入力してください。
  4. 初回設定
    Docker IDでログインします(未登録の場合は無料で作成可能)
    Apple Silicon(M1/M2)を使用している場合は、Docker Desktopが自動的に対応するバージョンを選択します。
  5. 動作確認
    ターミナルを開き、以下のコマンドでインストール確認
docker –version


kubectl

kubectlは、Kubernetesクラスターを操作するためのCLIツールです。Minikubeでもクラスターやリソースの管理に使用します。WindowsとMacそれぞれのインストール手順を説明します。

kubectlのインストール方法(Windows)

方法1:choco(Chocolatey)を使用

Chocolateyを利用してインストールする場合、以下のコマンドを実行します。

choco install kubernetes-cli

方法2:scoopを使用

Scoopを使ってインストールする場合は以下を実行します。

scoop install kubectl

方法3:公式バイナリを使用
最新バージョンのkubectlをkubectl公式リリースページからダウンロードする方法です。
詳細は下記公式ページよりご確認ください。
https://kubernetes.io/ja/docs/tasks/tools/install-kubectl-windows/

kubectlのインストール方法(macOS)

方法1:Homebrewを使用

Homebrewがインストールされている場合、以下のコマンドで簡単にインストールできます。

brew install kubectl

方法2:公式バイナリを使用

  1. 最新バージョンのkubectlをダウンロード
curl -LO “https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/darwin/amd64/kubectl”
  1. ダウンロードしたバイナリに実行権限を付与
chmod +x kubectl
  1. 実行可能なディレクトリに移動
sudo mv kubectl /usr/local/bin/
  1. 動作確認
kubectl version –client –output=yaml

Minikube

Minikubeは、ローカルKubernetesクラスターを構築するためのツールです。WindowsとMacそれぞれのインストール手順を説明します。

動作要件の確認

Minikubeをインストールする前に、以下の動作要件を確認してください。

  • 仮想化サポート
    • Minikubeは仮想マシンまたはコンテナランタイムを使用します。Hyper-V、VirtualBox、Docker、またはKVMが必要です。
  • 事前準備ツール
    • Docker(または他の仮想化ツール)
    • kubectl(クラスター操作に必要)

Minikubeのインストール方法(Windows)

方法1:Chocolateyを使用

Chocolateyがインストールされている場合、以下のコマンドでMinikubeを簡単にインストールできます。

choco install minikube

方法2:公式バイナリを使用する方法

Minikubeの公式サイト(Minikube公式ページ)から、Windows用のバイナリをダウンロードします。

ダウンロードしたファイル(例: minikube.exe)を適切なディレクトリ(例: C:\Program Files\Minikube)に配置し、システム環境変数PATHに追加します。

※WSL 2 を有効化する(Windows 10 Home の場合)
Windows 10 Home では仮想化にWSL 2(Windows Subsystem for Linux 2)を使用する必要があります。こちらの「WSL 2 のインストール手順(Microsoft公式)」を参考に設定してください。

コマンドプロンプトまたはPowerShellで以下を実行します。

minikube version

Minikubeのインストール方法(macOS)

方法1:Homebrewを使用したインストール

brew install minikube

方法2:公式バイナリを使用したインストール

Homebrewが使えない場合、以下の手順でインストールできます。

  1. 最新バージョンをダウンロード
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
  1. 実行権限を付与
chmod +x minikube-darwin-amd64
  1. パスに移動
sudo mv minikube-darwin-amd64 /usr/local/bin/minikube

以下のコマンドでバージョン確認を実行し、動作確認を行ってください。

minikube version

Minikubeを利用するうえで覚えておくべきコマンド

Minikubeを使い始める際、基本的な操作を覚えておくとスムーズにKubernetesを学べます。ここでは、クラスターの作成・管理から、簡単なアプリケーションのデプロイまで、覚えておきたい主要なコマンドを解説します。

クラスターの作成

MinikubeでローカルKubernetesクラスターを起動するための基本コマンドです。

minikube start

例: メモリやCPUリソースを指定して起動する場合

minikube start –memory=4096 –cpus=2

クラスターのステータス確認

Minikubeクラスターの現在の状態を確認するコマンドです。クラスターが正常に動作している場合、各コンポーネントの状態が表示されます。

minikube status

クラスターの停止

使用しないときにクラスターを停止し、リソースを節約するコマンドです。

minikube stop

クラスターの削除

クラスターを完全に削除する場合に使用します。

minikube delete

nginxアプリケーションのデプロイ

以下のコマンドで、Kubernetesクラスターにnginx(軽量なWebサーバー)をデプロイします。

kubectl create deployment nginx –image=nginx
  • kubectl create deployment: Deploymentリソースを作成します。
  • –image=nginx: デプロイに使用するDockerイメージを指定します。

nginxの公開(Serviceの作成)

デプロイしたnginxアプリケーションをクラスター外部からアクセス可能にするため、Serviceを作成します。

kubectl expose deployment nginx –type=NodePort –port=80
  • –type=NodePort: クラスターのノード(Minikubeの場合はローカルホスト)の特定ポートを公開します。
  • –port=80: nginxがリクエストを受け付けるポートを指定します。

アクセス確認

作成したnginxサービスにブラウザでアクセスする場合、以下のコマンドでURLを取得します。

minikube service nginx

コマンド実行後、表示されたURLをブラウザで開くと、nginxのデフォルトページが表示されます。

リソースの確認

Kubernetesのリソースの状態を確認する際によく使うコマンドです。

Podの一覧を表示

作成したPodの名前や状態(Running、Pendingなど)が確認できます。

kubectl get pods

Serviceの一覧を表示

作成されたServiceの名前や公開ポート、クラスタ内IPなどが確認できます。

kubectl get services

Deploymentの詳細情報を確認

kubectl describe deployment nginx

ログの確認

アプリケーションのトラブルシューティング時にPodのログを確認するコマンドです。

kubectl logs <pod名>

ダッシュボードの起動(オプション)

MinikubeにはKubernetesのリソースをGUIで管理できるダッシュボードが含まれています。

minikube dashboard

実行後、ブラウザでKubernetesダッシュボードが開き、リソースを視覚的に管理できます。

コマンド集

操作内容コマンド例
クラスターの作成minikube start
クラスターのステータス確認minikube status
クラスターの停止minikube stop
クラスターの削除minikube delete
nginxのデプロイkubectl create deployment nginx –image=nginx
nginxの公開kubectl expose deployment nginx –type=NodePort –port=80
アクセス確認minikube service nginx
Pod一覧の確認kubectl get pods
Service一覧の確認kubectl get services
ダッシュボードの起動minikube dashboard

まとめ

Minikubeは、Kubernetesをローカル環境で手軽に学ぶための最適なツールです。

本記事では、Kubernetesの基本やMinikubeのインストール、基本的なコマンドを解説しました。これらを活用することで、Kubernetesの仕組みを理解し、実際の操作を体験できます。

別記事ではMinikubeを使って実際にノードやPodを動かす手順も解説しているので、ぜひご覧ください。

現在クラウドエンジニアとして勤務。AWS(SAP、DOP)とAzure(AZ-305)の資格を保有しており、ネットワークやセキュリティに関する業務を主に行っています。

最新情報をお届けします!

最新のITトレンドやセキュリティ対策の情報を、メルマガでいち早く受け取りませんか?ぜひご登録ください

メルマガ登録

最新情報をお届けします!

最新のITトレンドやセキュリティ対策の情報を、メルマガでいち早く受け取りませんか?ぜひご登録ください

メルマガ登録