Posted at

minikube on macOS

More than 1 year has passed since last update.


minikubeで始めるKubernetes

macOS向けにminikubeの作成方法をまとめました。

Windowsも記載していますが、Windowsはこちらに別途まとめています。


minikubeのインストール

※ 2017/11/02現在のバージョンである、minikube v0.23.0のコマンドなので、最新版は以下のURLで確認してください。

https://github.com/kubernetes/minikube/releases


Windows

Exprimentalとあるので、完全に動作するかは保証されないようです。

上記URLにある「minikube-installer.exe」のダウンロードリンクをクリックして、インストーラを起動してインストールします。


macOS

以下のコマンドを実行すると、/usr/local/bin/minikubeに配置される。

curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.22.2/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/


OS共通

これでminikubeコマンドが実行可能になった。バージョン確認コマンドを使って、パスが通っていることを確認する。

$ minikube version

minikube version: v0.23.0

そして、minikubeがサポートしているKubernetesのバージョンも確認する。

$ minikube get-k8s-versions

The following Kubernetes versions are available:
- v1.8.0
- v1.7.5
- v1.7.4

一番最新のKubernetes v1.8.0で試してみる。


minikube VMを稼働させる


Windows

Hyper-V上にMinikube VMを作成&稼働させる。

minikube start --vm-driver=hyperv


macOS

Virtual Box上にMinikube VMを作成&稼働させる。

minikube start --vm-driver=virtualbox


minikube作成ログ(OS共通)

macOSで起動〜確認まで行ったログです↓

$ minikube start --vm-driver=virtualbox

Starting local Kubernetes v1.8.0 cluster...
Starting VM...
Downloading Minikube ISO
106.37 MB / 106.37 MB [============================================] 100.00% 0s
Getting VM IP address...
Moving files into cluster...
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.

$ minikube status
minikube: Running
cluster: Running
kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100

minikube startの際、kubectl contextも一緒に設定してくれる。

$ cat ~/.kube/config 

apiVersion: v1
clusters:
- cluster:
certificate-authority: /Users/01008455/.minikube/ca.crt
server: https://192.168.99.100:8443
name: minikube
contexts:
- context:
cluster: minikube
user: minikube
name: minikube
current-context: minikube
kind: Config
preferences: {}
users:
- name: minikube
user:
client-certificate: /Users/01008455/.minikube/client.crt
client-key: /Users/01008455/.minikube/client.key

#$


もしminikube startでエラーになったら

エラーになった場合は、おそらく昔のデータが残っているので、削除して構わなければdeleteを使って環境をクリーンアップする。

minikube delete

また、kubectl側にも昔のサーバデータがあるはずなので、削除しておく。

# 一括で削除する場合

rm ~/.kube/config

# 一括削除しない場合
## configの一覧表示
kubectl config view

## 出力されたcontextの削除
kubectl config delete-context minikube


kubectlのインストール

kubernetesを直接操作する場合はkubectlコマンドを使うので、インストールしておく。


(共通)GCP Cloud SDKからインストール

gcloudはGCP用のコマンドであるが、installならびにupdateもこれで管理できるので、丁度良い。

アップデートする場合はinstall -> updateにする。

gcloud components install kubectl


(Windows)Chocolateyからインストール

Chocolateyでパッケージマネジメントをしている場合はこちら。

choco install kubectl


(macOS)Homebrewからインストール

macOSはHomebrewからインストールできるので、こっちでも可。

brew install kubectl


(macOS,Linux)kubectl bash completion

Homebrewでbash-complettionのインストールのあと、kubectlのbash-completionを設定する。

brew install bash-completion

kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl

#$

bash-completion有効化のため、.bash_profileに以下を設定する。

# bash-completion

if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

terminalを開き直せば有効化され、kubectlのあとにタブを押せばサブコマンドだけでなくNodeやPodなどリソース名も表示されて非常に便利です。


kubernetes dashboardの表示

KubernetesのDashboardを表示させてみる。

稼働中のPodやServiceの確認、また、動作エラーなどがあった場合はここを見ると早い。

kubernetes_dashboard.png


minikubeコマンドでDashboard作成

Dashboardもコンテナで起動するが、minikubeは専用のコマンドがあるのでこれを使う。

minikube dashboard


kubectlコマンドからDashboard作成

未検証ですが、以下のような定義ファイルを用いてKubernetes Deploymentより、Dashboard用のPodやServiceを作成することもできます。

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

kubectl proxy

このあと、 http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/ へアクセスすると見える。


最後に

社内の勉強会目的なので、いつか閉じると思います。