kubernetes
minikube

Hyper-VでMinikubeを起動しようとして詰まった

MinikubeをWindows 10(Hyper-V)で利用する
あたりの記事を参考に、Windows10環境でminikubeを使ってみようとしています。

GCPでコンテナ入門しようとした際、たいへんに触り心地の良いツールだったので慣れたい。AWSもCNCFのプラチナ会員がなんとかかんとか(よく分かっていません)でめでたい風ですし、覚えておいて損のない道具かなと思っています。

さあ開始。

> minikube start --vm-driver="hyperv"  --hyperv-virtual-switch="MinikubeNAT"
Starting local Kubernetes v1.7.5 cluster...
Starting VM...

10分待っても起動しない。
以下はこの状況から、当てずっぽうで問題解決したメモです。それ以外の情報は書いてないです。

上のリンク先記事を参考にHyper-Vマネージャを起動して仮想スイッチを作ったわけですが、いったん作成したスイッチの設定を見てみます。

Hyper-Vマネージャ → 仮想マシンの項目で「minikube」選択 → 右ペインの「操作」の下の方に「設定」とあるのでこちらをクリック

image.png

ネットワークアダプターの項目がDockerNATになっていたのでこちらをMinikubeNATに修正(Docker for Windowsを入れていたので勝手にそっちを向いたのかも)
また、DockerNATは内部ネットワークを向いているあたりも、MinikubeNATとは差異があります。

念のため仮想マシンのminikubeを選択しシャットダウン、再びminikube起動を試みます。

> minikube start --vm-driver="hyperv"  --hyperv-virtual-switch="MinikubeNAT"
Starting local Kubernetes v1.7.5 cluster...
Starting VM...
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.

スタートラインに立った。よかった。

> kubectl config use-context minikube
Switched to context "minikube".
> kubectl cluster-info
Kubernetes master is running at https://192.168.0.140:8443

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

大丈夫みたい。

起動時に--hyperv-virtual-switch="MinikubeNAT"と指定してるわけですが、こいつは本当にいるのかどうなのか疑わしくなってきました。
ついでなので試します。

Hyper-Vマネージャで「DockerNAT」を指定、--hyperv-virtual-switchの有無で挙動が変わるかどうか確認します。
両方共だめでした。こっちはまあ想定通り。
次にHyper-Vマネージャで「MinikubeNAT」を指定、--hyperv-virtual-switchの有無で挙動が変わるかどうか確認します。
一つ目は上で既に試している内容。

> minikube start --vm-driver="hyperv"  --hyperv-virtual-switch="MinikubeNAT"
Starting local Kubernetes v1.7.5 cluster...
Starting VM...
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に指定されている

> minikube start --vm-driver="hyperv"
Starting local Kubernetes v1.7.5 cluster...
Starting VM...
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.

問題なく起動。何が違うんだろう?
いくつかのLANアダプタがある状態で、それぞれに仮想スイッチを作っていた場合の選択用にあるのかな?手持ちのマシンではネットワークアダプタが一個しかなかったので、そこまでは試せませんでした。
初投稿終わり。