Windows 10 に minikube の環境構築してみよう in April 2018 のコーナーです。
前提
Hyper-V on Win 10 でやりますので、Hyper-V を有効にしましょう。
Windows 10 での Hyper-V の有効化 | Microsoft Docs
(Win 10 Homeじゃ利用できない...Virtual Box でやるってのもある?けどここではやりません)
Chocolatey を使わずセットアップします。
Chocolatey 使うとchoco install minikube
からのchoco install kubernetes-cli
で必要なインストールが終わっちゃいますがね、特に理由はないですよ。シェルは PowerShell でもコマンドプロンプトでも大丈夫ですが、管理者権限で実行しときましょう。 色々試してた都合で画面キャプチャーでどっちも登場しますが深い意味はないです。
環境
- Windows 10 Pro (1709 - 16299.371)
- minikube (v0.25.2)
- kubectl (v1.10.0)
では開始♪
仮想スイッチの準備
Windows のメニューで「hyper」くらいを入力すると「Hyper-V マネージャー」が表示されますでしょうかね。起動しましょう。
Hyper-V マネージャーの左の方にある「仮想スイッチマネージャー」をクリックします。
仮想スイッチの種類は 外部
を選択した状態で、「仮想スイッチの作成」をクリックします。
名前を適当に入力し(ここ本家のドキュメントにそって「Primary Virtual Switch」としました、後でこの名称使います)、
- 「外部ネットワーク」にチェックオン
- 「管理オペレーティングシステムに...」にもチェックオン
で「OK」をクリックして作成します。
minikube のセットアップ
Releases · kubernetes/minikube · GitHub から最新のWindows用のバイナリ(minikube-windows-amd64)をダウンロードしましょう.....
って話なんですが、これを書いてる時点の最新 v0.26.0 を使っても私の検証環境2台とも動かなかった 。
コマンド minikube version
くらいはできるけど、minikube start ....
すると 「Hyper-V PowerShell Module is not available」で死亡。GitHub の Issues で類似のがあるので色々試したけどダメでめんどくさくなったので ひとつ前のバージョン:v0.25.2 にしたら普通に動きました。
ということで、今回は、v0.25.2 を使います。
ダウンロードしたら、ファイル名を 「minikube.exe」に変更します。
このexeを minikube
ってコマンドとして呼び出すためですね。そしてコマンドとして呼び出すのには、PATHを通しておいた楽ですね。
といことで、まず 「minikube.exe」を適当なフォルダに置きましょう。今回はminikube.exeを「C:\tools\minikube\」におきました。そして、環境変数のPATHを設定しました。(不明な場合は..ググればすぐ見つかるでしょう♪)。
コマンドプロンプトを開いて、minikube version
とたたいてみましょう。問題なければバージョンが表示されます。
kubectl のセットアップ
Kubernetes clusters を操作するための CLI である kubectl をセットアップしましょう。
公式サイトのこちらにあるようにインストールすればOKです。インストール方法はいくつかありますが、binary を直接ダウンロードするのが手っ取り早いでしょうか。"Before you begin" > "Install kubectl binary via curl" > Windows タブ で "this link" をクリックしてダウンロードしましょう。
ダウンロードした「kubectl.exe」を、今回は「C:\tools\kubectl」というフォルダを作って置き、先ほど同様にこのフォルダを環境変数のPATHに設定します。
コマンドプロンプトを開いて、kubectl version
とたたいてみましょう。問題なければバージョンが表示されます。
minikube VM の起動
`minikube start
のコマンドオプションは、minikube start --help
とコマンドをたたくと見れます。そのうち今回は以下を使います。
- --vm-driver: Hyper-V使ってるので、
hyperv
を指定 - --hyperv-virtual-switch: 仮想スイッチには先ほど作った「Primary Virtual Switch」を指定
- --alsologtostderr: ログをファイル出力する代わりに(コンソールに)表示
- --v: ログの出力レベルを設定。設定レベルはこちら
以下のコマンドをたたいて minikube VM を起動してみましょう。
minikube start --vm-driver=hyperv --hyperv-virtual-switch="Primary Virtual Switch" --alsologtostderr --v=3
無事に動いたら、ついでに minikube status
とたたいて状態を確認できます。
minikube VM のメモリ設定
こちらのドキュメントの HyperV driver の部分に「動的メモリを有効にしてると死ぬかもね」(雑な意訳)と書いてあるので、Offにします。 (GitHub の Issues だとこれですかね。)
メモリの設定変更は仮想マシンが停止状態じゃないとできないので、
minikube stop
で止めましょう。
Hyper-V マネージャーで、状態がオフになっている(はずの)仮想マシン「minikube」を選択し、右ペインにある「設定」を開きます。
「動的メモリを有効にする」のチェックをオフにしましょう。静的なメモリ割り当ては必要に応じて適当にやります(今回はちょっとためすだけなので2Gでいいか...)。
設定完了なので、また先ほどと同じstartのコマンド
minikube start --vm-driver=hyperv --hyperv-virtual-switch="Primary Virtual Switch" --alsologtostderr --v=3
をたたいて正常に起動することを確認します。
次回は公式ドキュメントの動作確認をしようと思います。
動作がおかしいと思ったら
minikube の start でハングするようなら、%LOCALAPPDATA%\Temp
にログが出ているはずなので見るといいでしょう。
で、ファーなってどうにもならんかったら、
%USERPROFILE%
フォルダにある.minikube
を削除- Hyper-V マネージャーで仮想マシン「minikube」を削除
してやり直すってのはいいかもしれません。
あとは、GitHub の Open の issues 結構あるので見てもよいかも。
Issues · kubernetes/minikube · GitHub
今回は、環境構築でドタバタしたから2台のPCでセットアップしたけど、同じ設定しても1台だけ動かないとか色々あってイラつきながらやってました....最終的には2台とも無事に動いてますが....。
参考
GitHub - kubernetes/minikube: Run Kubernetes locally
Setting up Kubernetes on Windows10 Laptop with Minikube | Microsoft Docs