(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Kubernetes】VirtualBoxにminikubeをインスール&起動する

スポンサーリンク

はじめに

minikubeとはシングルノードでマスターとノードを提供しているKubernetesの開発/学習環境ですが、本記事では

  • Windows 10
  • Cygwin
  • VirtualBox

が入った環境でminikubeをインストールする手順を紹介します。

minikubeのインストーラを入手する

以下サイトから「minikube-installer.exe」をダウンロードしました。


上記インストーラを実行すると場合によっては以下の警告が出ますが入手先リンクに間違いがなければ進めると

f:id:mtiit:20200206092658p:plain
場合によっては以下でブロックされます
以下のインストール画面になります。
f:id:mtiit:20200206092724p:plain
インストール画面

デフォルトでは以下のパスに約50MBの容量でインストールされました。

C:\Program Files\Kubernetes\Minikube

minikubeコマンドにパスを通す

インストールにて作成されたディレクトリ以下を確認すると

$ tree /cygdrive/c/Program\ Files/Kubernetes/
/cygdrive/c/Program Files/Kubernetes/
└── Minikube
    ├── logo.ico
    ├── minikube.exe
    ├── uninstall.exe
    └── update_path.ps1

minikube.exeが確認できます。

上記実行ファイルにパスを通すべくCygwin上にて以下を.bashrcに追記しました。

PATH=$PATH:/cygdrive/c/Program\ Files/Kubernetes/Minikube

再読み込みをかけるとパスが通っていることが確認できます。

$ source .bashrc
$ which minikube
/cygdrive/c/Program Files/Kubernetes/Minikube/minikube

VirtualBox用の設定

以下のように設定を入れ

$ minikube config set vm-driver virtualbox
! These changes will take effect upon a minikube delete and then a minikube start

configを以下コマンドで確認します。

$ minikube config view
- vm-driver: virtualbox

ちなみにこれらの実体はホームディレクトリ配下に以下のように作成されたディレクトリ内にconfig.jsonとしてありました。

$ tree .minikube/
.minikube/
├── addons
├── cache
│   └── iso
├── certs
├── config
│   └── config.json
├── files
├── logs
└── machines

設定値がJSON形式で格納されています。

$ cat .minikube/config/config.json
{
    "vm-driver": "virtualbox"
}

minikubeを起動する

以下のコマンドで起動されます。

$ minikube.exe start
* minikube v1.6.2 on Microsoft Windows 10 Enterprise 10.0.18362 Build 18362
* Selecting 'virtualbox' driver from user configuration (alternates: [])
* Creating virtualbox VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
* Preparing Kubernetes v1.17.0 on Docker '19.03.5' ...
* Downloading kubeadm v1.17.0
* Downloading kubelet v1.17.0
* Pulling images ...
* Launching Kubernetes ...
* Waiting for cluster to come online ...
* Done! kubectl is now configured to use "minikube"
* For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/

VirtualBox上でも確認でき

f:id:mtiit:20200206110218p:plain
minikubeがVirtualBoxに展開される
コマンドでもきちんとRunningとなっています。

$ minikube status
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured

終わりに

手探りでインストールしてみましたが、HyperVをONにしている状況では以下のように起動が失敗しました。

X Unable to start VM. Please investigate and run 'minikube delete' if possible
* Error: [VBOX_HYPERV_64_BOOT] create: precreate: This computer is running Hyper-V. VirtualBox won't boot a 64bits VM when Hyper-V is activated. Either use Hyper-V as a driver, or disable the Hyper-V hypervisor. (To skip this check, use --virtualbox-no-vtx-check)
* Suggestion: VirtualBox and Hyper-V are having a conflict. Use '--vm-driver=hyp
erv' or disable Hyper-V using: 'bcdedit /set hypervisorlaunchtype off'

Hyper-Vの要件である以下は満たしつつ

VM モニター モード拡張機能: はい
ファームウェアで仮想化が有効になっています: はい
第 2 レベルのアドレス変換: はい
データ実行防止が使用できます: はい

設定はオフにしておく必要がある模様です。

minikubeをVirtualBoxに起動する流れでした、ご参考になれば幸いです。