初心者
kubernetes

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/ へアクセスすると見える。

最後に

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