Minikube のインストール,Minikube の基本機能(Windows 上)

概要

Minikube は,1台のパソコンの中に Kubernetes(コンテナの配置・実行・管理を自動化するソフトウェア)のクラスタを作るソフトウェアである.学習や開発のために,手元の環境で Kubernetes を試すことができる.

このページでは,Windows へのインストールと,Deployment(Pod の作成と維持を管理するしくみ)や Service(Pod を外部に公開するしくみ)の基本操作を説明する.手順は Minikube 公式ページと Kubernetes 公式チュートリアルに従う.

Minikube を動かすには,コンテナ管理ソフトウェアまたは仮想マシン管理ソフトウェア(Docker,Hyper-V など)と,2 CPU 以上,2GB 以上の空きメモリ,20GB 以上の空きディスクが必要である.

目次

関連する外部ページ

サイト内の関連情報

1. 前準備

Docker のインストール

Minikube は,既定では Docker をコンテナの実行環境(ドライバ)として使う.

Windows での Docker のインストール: 別ページ »で説明

Windows の Hyper-V の機能を有効にしておく

仮想マシンのドライバとして Hyper-V を使う場合は,次のページを参考に,Windows の Hyper-V の機能を有効にしておく.

https://learn.microsoft.com/ja-jp/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

Hyper-V の状態は「systeminfo」で確認できる.次のように,「Hyper-V の要件: ハイパーバイザーが検出されました。Hyper-V に必要な機能は表示されません。」と表示されたときは,すでに Hyper-V の機能は有効になっている.

2. Chocolatey のインストール(Windows 上)

  1. 管理者権限コマンドプロンプトを起動する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

  2. 次のコマンドを実行する

    次のコマンドは,Chocolatey パッケージマネージャーをインストールするものである.

    winget install --scope machine Chocolatey.Chocolatey Chocolatey.ChocolateyGUI
    

3. Minikube のインストール

  1. 管理者権限コマンドプロンプトを起動する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

  2. Minikube をインストール

    実行のとき、エラーメッセージが出ないことを確認すること

    choco install minikube
    

    Chocolatey を使わない場合は,Windows パッケージマネージャー(winget)でもインストールできる.

    winget install Kubernetes.minikube
    
  3. インストール後は,コマンドプロンプトを開き直してから minikube を使う
Kubernetes を操作するコマンドは kubectl である.kubectl を別途インストールしていない場合は,Minikube に同梱の kubectl を「minikube kubectl -- コマンド」の形で使うことができる(例: minikube kubectl -- get pods).

4. コンテナイメージの作成

作成するイメージのレポジトリとタグ: hello-node:1.0

  1. ファイルの準備

    同じディレクトリに,次の2つのファイルを作る.

    • Dockerfile

      node:24 は,Node.js の LTS 版(長期サポート版)の公式イメージである.

      FROM node:24
      EXPOSE 8080
      COPY server.js .
      CMD node server.js
      
    • server.js
      var http = require('http');
      
      var handleRequest = function(request, response) {
        console.log('Received request for URL: ' + request.url);
        response.writeHead(200);
        response.end('Hello World!');
      };
      var www = http.createServer(handleRequest);
      www.listen(8080);
      
  2. 次のコマンドでイメージを作成する

    末尾の「.」は,カレントディレクトリをビルドコンテキスト(Dockerfile と COPY するファイルの置き場)として使うという指定である.

    docker build -t hello-node:1.0 .
    docker images
    
  3. 作成したイメージを Minikube のクラスタから使えるようにする

    手元で作ったイメージは,そのままでは Minikube のクラスタから参照できない.次のコマンドで読み込ませる.

    minikube image load hello-node:1.0
    

5. Minikube を使ってみる

  1. Minikube の起動
    minikube start
    
  2. クラスタの状態の確認
    minikube status
    
  3. ダッシュボードを開いてみる
    minikube dashboard
    

    ダッシュボードを閉じるときは,実行中のコマンドプロンプトで Ctrl+C を押す.

  4. Deployment の作成

    Kubernetes 公式チュートリアルのテスト用イメージ(Web サーバを含む)を使う.

    kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.53 -- /agnhost netexec --http-port=8080
    
  5. Deployment の確認
    kubectl get deployments
    
  6. Pod の確認
    kubectl get pods
    
  7. クラスタイベントの確認
    kubectl get events
    
  8. 設定の確認
    kubectl config view
    

6. Pod の公開

  1. 公開

    テスト用イメージのアプリケーションは TCP の 8080 番ポートで待ち受ける.

    kubectl expose deployment hello-node --type=LoadBalancer --port=8080
    
  2. Service の確認
    kubectl get services
    
  3. Web ブラウザでアクセス

    次のコマンドを実行すると,Web ブラウザが開き,アプリケーションの応答が表示される.

    minikube service hello-node
    

7. クリーンアップ

クラスタに作成したリソースのクリーンアップ

kubectl delete service hello-node
kubectl delete deployment hello-node

Minikube のクラスタの停止

minikube stop

Minikube のクラスタの削除

minikube delete