Minishift OKD on Linux or macOS

Everything Linux, A.I, IT News, DataOps, Open Source and more delivered right to you.
Subscribe
"The best Linux newsletter on the web"

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.

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

Everything Linux, A.I, IT News, DataOps, Open Source and more delivered right to you.
Subscribe
"The best Linux newsletter on the web"
Mel
Melhttps://unixcop.com
Unix/Linux Guru and FOSS supporter

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest articles

Join us on Facebook