Introduction
Minishift requires a hypervisor to provision a virtual machine on the OpenShift cluster. OpenShift is one of the popular PaaS platforms.
It is provided by Red Hat. It is Kubernetes based docker container orchestration platform on the foundation of Red Hat Enterprise Linux.
Depending on your host operating system.
- macOS – hyperkit
- Linux – KVM
- Windows – Hyper-V
- All Platforms – VirtualBox
OpenShift Origin locally in a single node cluster inside a VirtualMachine. A great choice for a development platform for testing. This post will explain how to install and run it on a Linux machine, where no Hyper-V support is available.
The only available alternative to Hyper-V is Oracle VirtualBox.
Installing minishift
You must first satisfy the prerequisites on your hosts, which includes verifying system and environment requirements and installing and configuring Docker container engines. After ensuring your hosts are properly set up, you can continue with the installation.
Container engines and OKD must run on the Linux operating system. If you run the server from a macOS host, start a Linux VM first.
Environment Setup
Update the packages on nodes
# yum -y update
Enable the control node to log into the node using ssh keys
On the control, node Generate SSH keys
#ssh-keygen
Copy the contents of the id_rsa.pub file generated in /home/root/.ssh/id_rsa.pub to your clipboard or ssh-copy-id to all nodes
# ssh-copy-id nodexx
Note to enable PermitrootLogin and PubkeyAuthentication
Minishift Setup
Login to the control node and download the utility
# wget https://github.com/minishift/minishift/releases/download/v1.34.3/minishift-1.34.3-linux-amd64.tgz
Extract the file
# tar xvf minishift-1.34.3-linux-amd64.tgz -C /usr/local/bin/
Enable the mini shift generic driver. VirtualBox Permanently
Setting the VM-driver option as a configuration allows to run a minishift start without passing the –VM-driver VirtualBox flag each time. Set VM-driver persistent configuration option as follows.
# minishift config set vm-driver virtualbox
No Minishift instance exists. New 'vm-driver' setting will be applied on next 'minishift start'
Verify configuration
# minishift config view
# - vm-driver : virtualbox
Deploy Minishift to nodes
# -- 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
-- Downloading OpenShift binary 'oc' version 'v3.11.0'
53.59 MiB / 53.59 MiB [===============================================================================================================] 100.00% 0s-
- Downloading OpenShift v3.11.0 checksums ... OK
-- Checking if provided oc flags are supported ... OK
-- Starting the OpenShift cluster using 'virtualbox' hypervisor ...
-- Minishift VM will be configured with ...
Memory: 4 GB
vCPUs : 2
Disk size: 20 GB
Downloading ISO 'https://github.com/minishift/minishift-centos-iso/releases/download/v1.17.0/minishift-centos7.iso'
159.52 MiB / 375.00 MiB [=============================================>------------------------------------------------------------] 42.54% 20m6s
-- 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
Importing 'openshift/origin-control-plane:v3.11.0' . CACHE MISS
Importing 'openshift/origin-docker-registry:v3.11.0' . CACHE MISS
Importing 'openshift/origin-haproxy-router:v3.11.0' . CACHE MISS
-- 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
Pulling image openshift/origin-node:v3.11.0
Pulled 5/6 layers, 86% 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.101 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 ...
I0806 13:11:49.152395 2814 config.go:40] Running "create-master-config"
Starting OpenShift using openshift/origin-control-plane:v3.11.0 ...
I0806 13:11:52.336051 2814 config.go:46] Running "create-node-config"
I0806 13:11:53.256448 2814 flags.go:30] Running "create-kubelet-flags"
I0806 13:11:53.688024 2814 run_kubelet.go:49] Running "start-kubelet"
I0806 13:11:53.910624 2814 run_self_hosted.go:181] Waiting for the kube-apiserver to be ready ...
I0806 13:12:51.925113 2814 interface.go:26] Installing "kube-proxy" ...
I0806 13:12:51.925152 2814 interface.go:26] Installing "kube-dns" ...
I0806 13:12:51.925163 2814 interface.go:26] Installing "openshift-service-cert-signer-operator" ...
I0806 13:12:51.925171 2814 interface.go:26] Installing "openshift-apiserver" ...
I0806 13:12:51.925182 2814 apply_template.go:81] Installing "kube-proxy"
I0806 13:12:51.925254 2814 apply_template.go:81] Installing "openshift-apiserver"
I0806 13:12:51.926319 2814 apply_template.go:81] Installing "kube-dns"
I0806 13:12:51.927239 2814 apply_template.go:81] Installing "openshift-service-cert-signer-operator"
I0806 13:12:56.686036 2814 interface.go:41] Finished installing "kube-proxy" "kube-dns" "openshift-service-cert-signer-operator" "openshift-apise
rver"
I0806 13:15:41.737188 2814 run_self_hosted.go:242] openshift-apiserver available
I0806 13:15:41.738124 2814 interface.go:26] Installing "openshift-controller-manager" ...
I0806 13:15:41.738147 2814 apply_template.go:81] Installing "openshift-controller-manager"
I0806 13:15:45.411246 2814 interface.go:41] Finished installing "openshift-controller-manager"
Adding default OAuthClient redirect URIs ...
Adding registry ...
Adding router ...
Adding sample-templates ...
Adding persistent-volumes ...
Adding web-console ...
Adding centos-imagestreams ...
I0806 13:15:45.431147 2814 interface.go:26] Installing "openshift-image-registry" ...
I0806 13:15:45.431157 2814 interface.go:26] Installing "openshift-router" ...
I0806 13:15:45.431207 2814 interface.go:26] Installing "sample-templates" ...
I0806 13:15:45.431235 2814 interface.go:26] Installing "persistent-volumes" ...
I0806 13:15:45.431249 2814 interface.go:26] Installing "openshift-web-console-operator" ...
I0806 13:15:45.431255 2814 interface.go:26] Installing "centos-imagestreams" ...
I0806 13:15:45.433919 2814 apply_list.go:67] Installing "sample-templates/cakephp quickstart"
I0806 13:15:45.434025 2814 apply_list.go:67] Installing "sample-templates/dancer quickstart"
I0806 13:15:45.434112 2814 apply_list.go:67] Installing "sample-templates/jenkins pipeline ephemeral"
I0806 13:15:45.434248 2814 apply_list.go:67] Installing "sample-templates/sample pipeline"
I0806 13:15:45.434363 2814 apply_list.go:67] Installing "sample-templates/mysql"
I0806 13:15:45.434490 2814 apply_list.go:67] Installing "sample-templates/postgresql"
I0806 13:15:45.434575 2814 apply_list.go:67] Installing "sample-templates/django quickstart"
I0806 13:15:58.361052 2814 interface.go:41] Finished installing "sample-templates/nodejs quickstart" "sample-templates/mongodb" "sample-templates
/mariadb" "sample-templates/cakephp quickstart" "sample-templates/dancer quickstart" "sample-templates/jenkins pipeline ephemeral" "sample-templates
/sample pipeline" "sample-templates/mysql" "sample-templates/postgresql" "sample-templates/django quickstart" "sample-templates/rails quickstart"
I0806 13:16:42.498789 2814 interface.go:41] Finished installing "openshift-image-registry" "openshift-router" "sample-templates" "persistent-volu
mes" "openshift-web-console-operator" "centos-imagestreams"
Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.
The server is accessible via web console at:
https://192.168.99.101:8443/console
You are logged in as:
User: developer
Password: <any value>
To login as administrator:
oc login -u system:admin
Verify minishift that the oc utility is functioning correctly
# oc status
In project test on server https://192.168.99.101:8443
You have no services, deployment configs, or build configs.
Run 'oc new-app' to create an application.
For other devops related topics link