How to install Minishift on Windows10?

0
91

Minishift is the compact all-in-one solution of OpenShift community distribution in a Virtual Machine(VM). It allows developers and curious minds to run OpenShift v3.11 on their own environment. In this post we will install Minishift on Windows10. In order to install and use Minishift you need an hypervisor in your machine. You can choose following hypervisors depending on your machine and preferences.

  • macOS xhyve
  • Linux KVM
  • Windows Hyper-V
  • All platforms VirtualBox (you can use Virtualbox in all other Operation Systems as Hypervisor)

I am using Windows10 and VirtualBox as a hypervisor in this tutorial. After setting up hypervisor in your machine, then we need to download Minishift client from release page https://github.com/minishift/minishift/releases

minishift release page

You need to copy Minishift executable in one of the folders and that folder should be in the PATH.

minishift in the download folder

Here in my windows10 machine , i searched “Edit the System Environment Variables” , Click on Environment Variables

Windows Environment variable settins screen

I have created a Tools folder under C drive and copy minishift.exe file to that folder. Click on Edit in the upcoming “Environment Variables” screen when Path is selected. Click “New” and add C:\Tools folder to the PATH.

placing minishift client to the correct place

Then if you run a CMD, command prompt in your Windows machine, type minishift version command, you should able to see output similar to below.

minishift version

Set the Virtualbox as vm-driver for Minishift with the help of minishift config set vm-driver virtualbox command.

minishift config set vm-driver virtualbox

If you want to see the minishift VM startup option you can type minishift start--help command. I will use this command minishift start --cpus 2 --memory "16GB" for this tutorial, depending on your local machine capacity you can decide your minishift VM size. It will download latest all in one minishift Centos7 iso from internet. It is size is around 370Mb. The Minishift VM installation will take couple of minutes.

If you face any problem while starting up Minishift VM and showing Kernel Panic sycing error( SPEC_CTRL MSR ) on Minishift VM screen, then you can shutdown the Minishift VM and apply this command vboxmanage modifyvm minishift --spec-ctrl on Afterwards you can apply same start command. You don’t need to worry about shutdown and restart , installer will continue from the last point.

You will see more or less similar output during installation of Minishift VM.

C:\Users\burak>minishift start --cpus 2 --memory "16GB"
 -- Starting profile 'minishift'
 -- Check if deprecated options are used … OK
 -- Checking if https://github.com is reachable … OK
 -- Checking if requested OpenShift version 'v3.11.0' is valid … OK
 -- Checking if requested OpenShift version 'v3.11.0' is supported … OK
 -- Checking if requested hypervisor 'virtualbox' is supported on this platform … OK
 -- Checking if VirtualBox is installed … OK
 -- Checking the ISO URL … OK
 -- Checking if provided oc flags are supported … OK
 -- Starting the OpenShift cluster using 'virtualbox' hypervisor …
 -- Starting Minishift VM ………………… OK
 -- Checking for IP address … OK
 -- Checking for nameservers … OK
 -- Checking if external host is reachable from the Minishift VM …
    Pinging 8.8.8.8 … OK
 -- Checking HTTP connectivity from the VM …
    Retrieving http://minishift.io/index.html … OK
 -- Checking if persistent storage volume is mounted … OK
 -- Checking available disk space … 1% used OK
 -- Writing current configuration for static assignment of IP address … OK
 -- OpenShift cluster will be configured with …
    Version: v3.11.0
 -- Pulling the OpenShift Container Image ………………….. OK
 -- Copying oc binary from the OpenShift container image to VM … OK
 -- Starting OpenShift cluster ………………………………………………………
 Getting a Docker client …
 Checking if image openshift/origin-control-plane:v3.11.0 is available …
 Pulling image openshift/origin-cli:v3.11.0
 E0416 22:40:58.949399    3071 helper.go:173] Reading docker config from /home/docker/.docker/config.json failed: open /home/docker/.docker/config.json: no such file or directory, will attempt to pull image docker.io/openshift/origin-cli:v3.11.0 anonymously
 Image pull complete
 Pulling image openshift/origin-node:v3.11.0
 E0416 22:41:06.151170    3071 helper.go:173] Reading docker config from /home/docker/.docker/config.json failed: open /home/docker/.docker/config.json: no such file or directory, will attempt to pull image docker.io/openshift/origin-node:v3.11.0 anonymously
 Pulled 5/6 layers, 85% complete
 Pulled 6/6 layers, 100% complete
 Extracting
 Image pull complete
 Checking type of volume mount …
 Determining server IP …
 Using public hostname IP 192.168.99.100 as the host IP
 Checking if OpenShift is already running …
 Checking for supported Docker version (=>1.22) …
 Checking if insecured registry is configured properly in Docker …
 Checking if required ports are available …
 Checking if OpenShift client is configured properly …
 Checking if image openshift/origin-control-plane:v3.11.0 is available …
 Starting OpenShift using openshift/origin-control-plane:v3.11.0 …
 I0416 22:41:31.560273    3071 config.go:40] Running "create-master-config"
 I0416 22:41:33.420430    3071 config.go:46] Running "create-node-config"
 I0416 22:41:34.075284    3071 flags.go:30] Running "create-kubelet-flags"
 I0416 22:41:34.456908    3071 run_kubelet.go:49] Running "start-kubelet"
 I0416 22:41:34.656205    3071 run_self_hosted.go:181] Waiting for the kube-apiserver to be ready …
 I0416 22:42:28.666610    3071 interface.go:26] Installing "kube-proxy" …
 I0416 22:42:28.666653    3071 interface.go:26] Installing "kube-dns" …
 I0416 22:42:28.666658    3071 interface.go:26] Installing "openshift-service-cert-signer-operator" …
 I0416 22:42:28.666661    3071 interface.go:26] Installing "openshift-apiserver" …
 I0416 22:42:28.666682    3071 apply_template.go:81] Installing "openshift-apiserver"
 I0416 22:42:28.667180    3071 apply_template.go:81] Installing "kube-dns"
 I0416 22:42:28.667250    3071 apply_template.go:81] Installing "openshift-service-cert-signer-operator"
 I0416 22:42:28.667250    3071 apply_template.go:81] Installing "kube-proxy"
 I0416 22:42:30.633674    3071 interface.go:41] Finished installing "kube-proxy" "kube-dns" "openshift-service-cert-signer-operator" "openshift-apiserver"
 I0416 22:44:49.652372    3071 run_self_hosted.go:242] openshift-apiserver available
 I0416 22:44:49.653050    3071 interface.go:26] Installing "openshift-controller-manager" …
 I0416 22:44:49.653077    3071 apply_template.go:81] Installing "openshift-controller-manager"
 I0416 22:44:51.397016    3071 interface.go:41] Finished installing "openshift-controller-manager"
 Adding default OAuthClient redirect URIs …
 I0416 22:44:51.410805    3071 interface.go:26] Installing "openshift-router" …
 I0416 22:44:51.410811    3071 interface.go:26] Installing "sample-templates" …
 I0416 22:44:51.410816    3071 interface.go:26] Installing "openshift-web-console-operator" …
 I0416 22:44:51.410820    3071 interface.go:26] Installing "centos-imagestreams" …
 I0416 22:44:51.410824    3071 interface.go:26] Installing "openshift-image-registry" …
 I0416 22:44:51.410828    3071 interface.go:26] Installing "persistent-volumes" …
 Adding router …
 Adding sample-templates …
 Adding web-console …
 Adding centos-imagestreams …
 Adding registry …
 Adding persistent-volumes …
 I0416 22:44:51.411102    3071 apply_list.go:67] Installing "centos-imagestreams"
 I0416 22:44:51.411253    3071 interface.go:26] Installing "sample-templates/postgresql" …
 I0416 22:44:51.411304    3071 interface.go:26] Installing "sample-templates/dancer quickstart" …
 I0416 22:44:51.411309    3071 interface.go:26] Installing "sample-templates/nodejs quickstart" …
 I0416 22:44:51.411313    3071 interface.go:26] Installing "sample-templates/rails quickstart" …
 I0416 22:44:51.411331    3071 interface.go:26] Installing "sample-templates/sample pipeline" …
 I0416 22:44:51.411334    3071 interface.go:26] Installing "sample-templates/mysql" …
 I0416 22:44:51.411337    3071 interface.go:26] Installing "sample-templates/mariadb" …
 I0416 22:44:51.411340    3071 interface.go:26] Installing "sample-templates/cakephp quickstart" …
 I0416 22:44:51.411344    3071 interface.go:26] Installing "sample-templates/django quickstart" …
 I0416 22:44:51.411347    3071 interface.go:26] Installing "sample-templates/jenkins pipeline ephemeral" …
 I0416 22:44:51.411351    3071 interface.go:26] Installing "sample-templates/mongodb" …
 I0416 22:44:51.411364    3071 apply_list.go:67] Installing "sample-templates/nodejs quickstart"
 I0416 22:44:51.411417    3071 apply_list.go:67] Installing "sample-templates/mongodb"
 I0416 22:44:51.411539    3071 apply_template.go:81] Installing "openshift-web-console-operator"
 I0416 22:44:51.411564    3071 apply_list.go:67] Installing "sample-templates/postgresql"
 I0416 22:44:51.411568    3071 apply_list.go:67] Installing "sample-templates/rails quickstart"
 I0416 22:44:51.411604    3071 apply_list.go:67] Installing "sample-templates/dancer quickstart"
 I0416 22:44:51.411667    3071 apply_list.go:67] Installing "sample-templates/sample pipeline"
 I0416 22:44:51.411716    3071 apply_list.go:67] Installing "sample-templates/jenkins pipeline ephemeral"
 I0416 22:44:51.411730    3071 apply_list.go:67] Installing "sample-templates/mariadb"
 I0416 22:44:51.411758    3071 apply_list.go:67] Installing "sample-templates/mysql"
 I0416 22:44:51.411767    3071 apply_list.go:67] Installing "sample-templates/cakephp quickstart"
 I0416 22:44:51.411786    3071 apply_list.go:67] Installing "sample-templates/django quickstart"
 I0416 22:44:55.418528    3071 interface.go:41] Finished installing "sample-templates/postgresql" "sample-templates/dancer quickstart" "sample-templates/nodejs quickstart" "sample-templates/rails quickstart" "sample-templates/sample pipeline" "sample-templates/mysql" "sample-templates/mariadb" "sample-templates/cakephp quickstart" "sample-templates/django quickstart" "sample-templates/jenkins pipeline ephemeral" "sample-templates/mongodb"
 I0416 22:46:03.725667    3071 interface.go:41] Finished installing "openshift-router" "sample-templates" "openshift-web-console-operator" "centos-imagestreams" "openshift-image-registry" "persistent-volumes"
 Login to server …
 Creating initial project "myproject" …
 Server Information …
 OpenShift server started.
 The server is accessible via web console at:
     https://192.168.99.100:8443/console
 You are logged in as:
     User:     developer
     Password: 
 To login as administrator:
     oc login -u system:admin
 Could not set oc CLI context for 'minishift' profile: Error during setting 'minishift' as active profile: The specified path to the kube config 'C:\Users\burak.minishift\machines\minishift_kubeconfig' does not exist

You can check the installation if it is successful with oc version command.

C:\Users\burak>oc version
oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth SSPI Kerberos SPNEGO

Server https://192.168.99.100:8443
kubernetes v1.11.0+d4cacc0

You can login to MiniShift/OpenShift Console via https://192.168.99.100:8443/console or you can type minishift console command

minishift console

and it will open Minishift console on your system default browser. your browser might give security warning about certificate, after skipping this certificate warning, you can use developer as username, password as Password. then Click “Login”

minishift console login screen
Minishift Console Login screen

You have “My Project” by default in your Minishift environment. Currently OpenShift v3.11 is used in Minishift.Most of OpenShift settings are tuned to work all in one Minishift machine. The behavior of Minishift will be different than the Enterprise version of OpenShift installed in your environment.

minishift web console dashboard
Minishift Web Console

Now you are ready to use Minishift and experience OpenShift v3.11. Don’t forget that, Minishift is aimed to use in development and to experiment OpenShift v3.x. You should not use Minishift for running production and business critical workloads. This all in one Minishift will have less strict security policies, you will be the admin of the all in one cluster, you can create many projects and do deployment as long as your PC/Server can support.

Let us know if you were able to follow the post and able to install your Minishift.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.