OpenShift Origin is a distribution of Kubernetes optimized for continuous application development and multi-tenant deployment. OpenShift adds developer and free operations-centric tools on top of Kubernetes. This helps small and large teams rapidly develop applications, scale and deploy easily, and maintain an app throughout a long-term lifecycle. Minishift helps you run OpenShift locally by running a single-node OpenShift cluster inside a VM. With Minishift, you can try out OpenShift or develop with it daily on your local host. Under the hood it uses libmachine for provisioning VMs, and OpenShift Origin for running the cluster.
Installing and Using Minishift
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.
First, install 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>
Update your current session for the group change to take effect.
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.7.0.
sudo curl -L https://github.com/dhiltgen/docker-machine-kvm/releases/download/v0.7.0/docker-machine-driver-kvm -o /usr/local/bin/docker-machine-driver-kvm sudo chmod +x /usr/local/bin/docker-machine-driver-kvm
Download the archive for your operating system from the releases page and unpack it. At the time of this writing, the latest version is 1.1.0:
wget https://github.com/minishift/minishift/releases/download/v1.1.0/minishift-1.1.0-linux-amd64.tgz tar -xvf minishift-1.1.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:
Run the following command. The output will look similar to below:
$ minishift start Starting local OpenShift cluster using 'kvm' hypervisor... ... OpenShift server started. The server is accessible via web console at: https://192.168.99.128:8443 You are logged in as: User: developer Password: developer To login to your Minishift installation as administrator: oc login -u system:admin
This process performs the following steps:
- Downloads the latest ISO image based on boot2docker (~40 MB)
- Starts a VM using libmachine
- Downloads OpenShift client binary (oc)
- Caches both oc and the ISO image into your $HOME/.minishift/cache folder
- Finally, provisions OpenShift single node cluster in your workstation
Now, use minishift oc-env to display the command to add the oc binary to your PATH. The output of oc-env differs depending on the operating system and shell.
$ minishift oc-env export PATH="/home/john/.minishift/cache/oc/v1.5.0:$PATH" # Run this command to configure your shell: # eval $(minishift oc-env)
Deploying an application
OpenShift provides various sample applications, such as templates, builder applications, and quickstarts. The following steps deploy a sample Node.js application from the command line.
First, create a Node.js example app.
oc new-app https://github.com/openshift/nodejs-ex -l name=myapp
Then, track the build log until the app is built and deployed.
oc logs -f bc/nodejs-ex
Next, expose a route to the service.
oc expose svc/nodejs-ex
Now access the application.
minishift openshift service nodejs-ex -n myproject
To stop the service, use the following command:
Refer to the official documentation for getting started with a single node OpenShift cluster.
We’d love to get your feedback. If you hit a problem, please raise an issue in the issue tracker. Please search through the listed issues, though, before creating a new one. It’s possible a similar issue is already open.
The community hangs out on the IRC channel #minishift on Freenode (https://freenode.net). You’re welcome to join, participate in the discussions, and contribute.