MinikubeでMacのローカル環境にKubernetesクラスターを立ち上げる




Minikubeとは

Minikubeでは仮想化ソフトウェアを使ってLinuxがインストールされた仮想マシンを作成し、そこでKubernetesクラスタを動作させることができるツールです。Nodeは一つしか建てられないですがローカル環境でKubernetesをすぐに使うことができます。

brewを使うと簡単にインストールできます。

$ brew cask install minikube

Minikubeの実行

まずはMinikubeを立ち上げます。停止、削除は使い終わったら実行してください。

// clusterの起動
$ minikube start

// ダッシュボードの起動
$ minikube dashboard

// clusterの停止
$ minikube stop

// clusterの削除
$ minikube delete

Minikubeにはclusterの状態を確認できるダッシュボード機能があるので使うときは起動しとくといいと思います。こんな感じです。

kubectlのインストール

まずはgcloudをインストールします。

$ curl https://sdk.cloud.google.com | bash
$ source ~/.bash_profile
$ gcloud init

gcloudを使ってkubectlをインストールします。

$ gcloud components install kubectl

kubectlでDeploymentを立ち上げる

kubectlを使ってcluster内にNginxを立ち上げてみます。

$ kubectl run nginx --image=nginx:latest --port=80

ダッシュボードでDeploymentが立ち上がったのが確認できます。

kubectlでServiceを立ち上げる

このままでは外部からアクセス出来ないのでServiceを立ち上げます。表示されたurlにアクセスしてNginxにアクセスできたら完了です。

// serviceの作成
$ kubectl expose deployment nginx --type=LoadBalancer
// エンドポイントの確認
$ minikube service nginx --url
http://192.168.99.100:32360

Cluster内のコンテナにアクセスする

minikube docker-envでアクセスするための情報が確認でき、evalでそのまま適応できるので実行します。

$ minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/Users/tomokazukozuma/.minikube/certs"
export DOCKER_API_VERSION="1.23"
# Run this command to configure your shell:
# eval $(minikube docker-env)
$ eval $(minikube docker-env)

docker psでnginxのコンテナを確認します。あとはいつも通りdocker execコマンドを使います。

// コンテナを確認
$ docker ps
CONTAINER ID        IMAGE                                     COMMAND                  CREATED             STATUS              PORTS               NAMES
24851e87d50c        nginx                                     "nginx -g 'daemon of…"   8 minutes ago       Up 8 minutes                            k8s_nginx_nginx-6bfb654d7c-q2ksh_default_7d9cec25-58a4-11e8-b16b-0800279d537b_0
9919d4de6206        k8s.gcr.io/pause-amd64:3.1                "/pause"                 8 minutes ago       Up 8 minutes                            k8s_POD_nginx-6bfb654d7c-q2ksh_default_7d9cec25-58a4-11e8-b16b-0800279d537b_0

// コンテナにログイン
$ docker exec -it 24851e87d50c bin/bash
root@nginx-6bfb654d7c-q2ksh:/#

おすすめ書籍

Dockerの使い方から説明されているので初心者の方も安心して学べる書籍です。

Kubernetesに関してはPod, Service, Deploymentなどを順を追って説明し、実際に動かすところまでを解説しているので非常に実践的な内容となっています。

これからKuebernetesを使ってサービスを開発してみたい方にとって最初のよい手助けとなると思います。是非読んでみてください。

The following two tabs change content below.

髙妻智一

2013年CyberAgent新卒入社 スマホゲームを作る子会社に所属し、サーバーサイドのエンジニアを担当。2年目の終わりから新規子会社の立ち上げに参加し、サーバーサイドのエンジニアリーダーとしてサービースのリリースから運用までを担当。 2018年仮想通貨のスマホウォレットを提供するGinco Incにブロックチェーンエンジニアとして入社。






よく読まれている関連記事はこちら



コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です