Getting started with Openshift using OKD

OKD is a distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OKD is the upstream Kubernetes distribution embedded in Red Hat OpenShift and can be used to add developer and operations-centric tools on top of Kubernetes to enable rapid application development, easy deployment and scaling, and long-term lifecycle maintenance for small and large teams.

openshift minishift tutorial

Let’s see how we can install OKD on your system. You have two options:

1) Run OKD in a Container

This option allows to get started quickly by running OKD in a container by itself with as little as “oc cluster up”. This option is discussed in tutorial: How to start an openshift local cluster using oc utility

2) Run the All-In-One VM with Minishift

Minishift is a tool that helps you run OKD locally by launching a single-node OKD cluster inside a virtual machine. This option is discussed in this tutorial.

Prepare your environment for installing Minishift

As an example, we will show how to install minishift on a Fedora 29 distribution.

Minishift requires a hypervisor to start the virtual machine on which the OpenShift cluster is provisioned. Make sure KVM is installed and enabled on your system before you start Minishift on Fedora.

Start by installing libvirt and qemu-kvm on your system:

$ sudo dnf install libvirt qemu-kvm

Then, add yourself to the libvirt group to avoid sudo:

$ sudo usermod -a -G libvirt <username>

Next, update your current session for the group change to take effect:

$ newgrp libvirt

Next, start and enable libvirtd and virlogd services.

$ systemctl start virtlogd 
$ systemctl enable virtlogd 
$ systemctl start libvirtd 
$ systemctl enable libvirtd

Finally, install the docker-machine-kvm driver binary to provision a VM. Then make it executable. The instructions below are using version 0.8.2.

sudo curl -L -o /usr/local/bin/docker-machine-driver-kvm

sudo chmod +x /usr/local/bin/docker-machine-driver-kvm

Installing Minishift

Download the archive for your operating system from the releases page and unpack it.

tar -xvf minishift-1.27.0-linux-amd64.tgz

Copy the contents of the directory to your preferred location.

cp minishift ~/bin/minishift

If your personal ~/bin folder is not in your PATH environment variable already (use echo $PATH to check), add it:

export PATH=~/bin:$PATH

Starting Minishift

Finally, provisions OpenShift single node cluster in your workstation by running the following command. The output will look similar to below:

$ minishift start
Starting local OpenShift cluster using 'kvm' hypervisor...
Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.

The server is accessible via web console at:

You are logged in as:
    User:     developer
    Password: <any value>

To login as administrator:
    oc login -u system:admin

If you browse to the http address you can log into the the Web console:

minishift tutorial openshift

In the next screen you can access to the main panel:

minishift tutorial openshift

You can create a new application easily by clicking on any of the available templates. For example, select WildFly template:

minishift tutorial openshift

The select a github project that will be used to build the image with the Source to Image process

minishift tutorial openshift

At the end of the build process, the template has created for you also a router so that the application is accessible also externally.

minishift tutorial openshift

Using the oc binary to build a process

In the above example we have used the Web console to build an example application. Openshift, however, can be reached out using the oc client binary. If you want the oc to be added automatically toyour path, use the “minishift oc-env” to display the command to add the oc binary to your PATH. For example:

$ ./minishift oc-env
export PATH="/home/user1/.minishift/cache/oc/v3.11.0/linux:$PATH"
# Run this command to configure your shell:
# eval $(minishift oc-env)

Now you can try building projects also with the ‘oc’ client tool:

oc login
Authentication required for (openshift)
Username: developer
Password:  developer

Next, you can test the ‘oc’ client tool loading a Git Hub project which uses WildFly Image Stream:

$ oc new-app wildfly~ --context-dir=wildfly-basic --name=wildfly-basic

Finally, expose the application wildfly-basic to the router so that it’s available to outside:

$ oc expose service wildfly-basic

In this tutorial we have learned how to install Minishift on your environment and we have deployed an example application on the top of it. Also, Minishift ships with the ‘oc’ client tool which just needs to be added to your path to be used.