LoginSignup
21

More than 5 years have passed since last update.

MinikubeをWindows 10(Hyper-V)で利用する

Last updated at Posted at 2017-06-30

MinikubeをWindows環境(Hyper-V)で動かす機会があったのでまとめておきます。
「k8s触ってみようかな…」という方のお役に立てば幸いです。

事前準備

  • Windowsのライセンス確認
    • Windows 10 Homeの場合はHyper-Vが使えないので、おとなしくVirtualBoxを使ってMinikubeを動かすか、Professionalにアップグレードしてください。
  • BIOSの仮想化機能(VT-X/AMD-V)を有効化
  • OSにHyper-Vをインストール
  • Windowsの「Hyper-Vプラットフォーム」を有効化

既にDocker for Windowsを利用している環境なら、何かする必要はないと思います。

Hyper-Vの設定(外部ネットワーク用仮想スイッチの追加)

Hyper-V マネージャーを起動します。

  • 「プログラム」>「Windows 管理ツール」>「Hyper-V マネージャー」
    • もしくは「ファイル名を指定して実行」からvirtmgmt.msc

起動したら「仮想スイッチ マネージャー」を選択。

0001.png

「新しい仮想ネットワーク スイッチ」→「外部」→「仮想スイッチの作成」として、外部ネットワーク用の仮想スイッチを追加します。

abc.png

Docker for Windowsを利用している場合は「DockerNAT」という名前で既に仮想スイッチが登録されているため、同じような名前にしました。赤枠のチェックを忘れずに。

0002.png

Minikubeのインストール

公式の手順の通りやっていけばOKです。Chocolateyも提供されていますが、ここでは基本的なやり方で。

以下のバイナリをダウンロードして、あとはPATHの通ったところに置くだけです。minikube-windows-amd64.exeminikube.exe にリネームしておくと楽です。

今回はC:\minikube\以下に配置し、システム環境変数からパスを通しました。

008.png

どちらもexeファイルを直接ダウンロードするため、Windowsのsmartscreenにひっかかって起動が失敗することがあります。exeファイルには、以下のようにチェックを入れておくと安心です。

0003.png

動作確認

公式のQuickstartをやってみます。

コマンドプロンプトを管理者権限で起動し(参考記事)、仮想マシンドライバとして"hyperv"を指定して起動します。(無指定だとvirtualboxのドライバが利用されます)

c:\>minikube start --vm-driver="hyperv"
Starting local Kubernetes v1.6.4 cluster...
Starting VM...
Moving files into cluster...
Setting up certs...
Starting cluster components...
Connecting to cluster...
Setting up kubeconfig...
Kubectl is now configured to use the cluster.

Hyper-Vマネージャに「minikube」という名前で仮想マシンが追加されるのが確認できます。

0005.png

クラスタが立ち上がっているのも確認しておきます。

c:\>kubectl config use-context minikube
Switched to context "minikube".

c:\>kubectl cluster-info
Kubernetes master is running at https://192.168.11.222:8443

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

ここまで確認できたら、あとはMiniqubeのQuickstartの通りやっていきましょう。

c:\>kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
deployment "hello-minikube" created

c:\>kubectl expose deployment hello-minikube --type=NodePort
service "hello-minikube" exposed

c:\>kubectl get pod
NAME                             READY     STATUS    RESTARTS   AGE
hello-minikube-938614450-jl8ht   1/1       Running   0          51s

c:\>minikube service hello-minikube --url
http://192.168.11.222:32455

表示されたURL( http://192.168.11.222:32455 )にアクセスして、以下のようなレスポンスが表示されればOKです。

CLIENT VALUES:
client_address=172.17.0.1
command=GET
real path=/
query=nil
request_version=1.1
request_uri=http://192.168.11.222:8080/

SERVER VALUES:
server_version=nginx: 1.10.0 - lua: 10001

HEADERS RECEIVED:
accept=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding=gzip, deflate, sdch
accept-language=ja,en-US;q=0.8,en;q=0.6
connection=keep-alive
host=192.168.11.222:32455
referer=http://google.co.jp/
upgrade-insecure-requests=1
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
BODY:
-no body in request-

終了する場合は以下のような感じで。

// 仮想マシン停止
c:\>minikube stop
Stopping local Kubernetes cluster...
Machine stopped.

// 仮想マシン削除
c:\>minikube delete
Deleting local Kubernetes cluster...
Machine deleted.

お役に立てば幸いです。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21