Mac に minikube をインストール

2020/11/17

はじめに

minikube(ミニキューブ) は Kubernetes の環境を作成するためのパッケージで、単一 Node の環境構築をするコマンドです。

現在の Docker For Mac では Kubernetes が統合インストールされますが、minikube は別途インストールする必要があります。

ハイパーバイザーのインストール

Kubernetes を利用するには、以下のいずれかのハイパーバイザーをインストールが必要です。

  • HyperKit
  • VirtualBox
  • VMware Fusion

macOS では、Hypervisor Framework に対応した HyperKit も利用できるためインストールします。


$ brew install hyperkit

HyperKit のバージョンを確認します。


$ hyperkit -v
hyperkit: v0.20200224-44-gb54460

Homebrew で minikube のインストール

homebrew コマンドで minikube をインストールします。


$ brew install minikube

minikube がインストールされたかバージョンを確認します。


$ minikube version
minikube version: v1.13.1

もし /usr/local/bin/minikube がない場合、現在のフォルダにある minikube を /usr/local/bin/ に移動します。


$ sudo mv minikube /usr/local/bin

minikube の初回起動確認(HyperKit)

minikube のドライバを HyperKit にして起動します。起動にはパスワードが必要です。


$ minikube start --vm-driver=hyperkit
...
Password:
...
🏄  Done! kubectl is now configured to use "minikube" by default

minikube の確認

minikube の起動確認をします。Running と表示されていれば起動中です。


$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

Docker For Mac のめnyメニューにも minikube が追加されています。

minikube の停止

minikube を停止します。


$ minikube stop

minikube が停止したか確認します。


$ minikube status
minikube
type: Control Plane
host: Stopped
kubelet: Stopped
apiserver: Stopped
kubeconfig: Stopped

kubectl を使ってみる

初回ハイパーバイザーを設定して起動しておくと、次回からはオプションなしで起動できます。


$ minikube start

起動前にクラスターを変更する場合、 config use を利用してから起動します。


$ kubectl config use クラスター名

kubectl でクラスタ構成を確認し、デフォルトで minikube クラスターが作成されているのを確認します。


$ kubectl config get-contexts
CURRENT   NAME                 CLUSTER          AUTHINFO         NAMESPACE
          docker-desktop       docker-desktop   docker-desktop   
          docker-for-desktop   docker-desktop   docker-desktop   
*         minikube             minikube         minikube

その他のクラスタは、Docker For Mac インストールで作成されたクラスターです。

Namespace 一覧を取得します。


$ kubectl get namespace
NAME              STATUS   AGE
default           Active   19m
kube-node-lease   Active   19m
kube-public       Active   19m
kube-system       Active   19m
  • default: デフォルト Namespace
  • kube-system:Kubernetesシステムで作成されたオブジェクト用の Namespace
  • kube-public:全てのユーザーから読み取り可能な Namespaceリ

kube-system の Pod を取得します。


$ kubectl get pod -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-f9fd979d6-gbpf4            1/1     Running   1          21m
etcd-minikube                      1/1     Running   1          21m
kube-apiserver-minikube            1/1     Running   1          21m
kube-controller-manager-minikube   1/1     Running   1          21m
kube-proxy-kjbn8                   1/1     Running   1          21m
kube-scheduler-minikube            1/1     Running   1          21m
storage-provisioner                1/1     Running   2          21m

アドオンの利用

minikube には機能拡張するアドオンがあり、一覧を確認して enabled となっているのが有効になっているアドオンです。


$ minikube addons list

ingress を追加してみます。


$ minikube addons enable ingress
🔎  Verifying ingress addon...
🌟  The 'ingress' addon is enabled

アドオンを利用停止にするときは以下のコマンドを実行します。


$ minikube addons enable アドオン名

ingress

ingress は https ロードバランサーで、IP管理を service ではなく ingress で管理することができます。

hellow-world コンテナ起動

hello-world コンテナを起動して、Hello from Docker! のメッセージ表示されるか確認します。


$ docker run hello-world
...
Hello from Docker!
...

現在利用されていないコンテナーを削除したい場合は、 prune で削除しておきます。


$ docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Deleted Containers:
c4e29bf9fb68a07e863384879fec3567342b9bb20c99c22c15aec8756c508b60
5d8680dcfcd40e1b9c1e0a52636106b10d118284f75494a902ff20f171a18dd4
Mac に minikube をインストール
途中から .gitignore に追加する
Larevel 6.x から Laravel 8.x にバージョンアップ
Composer で Allowed memory size (メモリ不足)エラー
Blade でカスタムクラスを利用する
git push git pull にブランチ指定せずに実行する
git pull や git push できなくなったとき
Docker のコンテナからホストOS に接続
Mac で ローカル IP アドレス(ipv4)のみを表示する
ホストOS から Docker の MySQLコンテナに接続
caching_sha2_password のエラー
node-config で環境設定ファイルを利用する
rootパスワードを初期化(再設定)する
Git から clone したときのエラー対処
Mac に MySQL をインストール
Mac に PostgreSQL をインストール
Laravel 環境構築 - Mac ネイティブ編
Firebase 入門 - Firebase とは
Firebase 入門 - CLI インストールとデータベースの設定
AWS 無料枠(t2.micro)で容量とメモリエラー
Cloud9 を起動する -初心者編-
gcloud で GCEインスタンスを起動してみる
AWS CLI と jq でインスタンス一覧を整形して表示
React と Laravel7 のプロジェクトを作成する
Homebrewインストール-2020年版
3直線で囲まれた範囲塗りつぶし
PuLP で線形最適化問題を解く
カスタムのペジネーションを作る
node-sass を使って sass をコンパイルする
Log ファサードでSQLログを分離して書き出す
いちから始める Docker - 複数のコンテナを使う - (2020年)
いちから始める Docker - docker-compose を使う - (2020年)
AWS ECR を使ってみる
Laravel7 でマルチ認証
Mac に AWS Client を設定する
Laravel7 リリース
v-html でHTML表示する
Laravel で Nuxt.js を使ってみる(Docker環境)
Laravel で Vue コンポーネントを使う
いちから始める Docker -コンテナをビルド- (2020年)
いちから始める Docker -起動してみる- (2020年)
Mac で MySQL(8系)
composer で vendor がインストールできない
Eloquent の日付を Carbon で扱う
webpack 4 入門(npm編)
[Mac]容量を減らす
DIコンテナはじめ
freee SDKを Laravel で使ってみる
freee API を使ってみる
Segueを利用しない画面遷移