IBM Cloud Private on RHEL

An easy installation guide

Jesse Antoszyk
IBM Cloud
8 min readNov 29, 2017

--

Background

IBM Cloud Private is a Kubernetes-based platform that runs on your infrastructure. It can be used for managing a rich catalog of IBM applications, as well as for hosting your own internal apps.

This tutorial will teach you how to install IBM Cloud Private 2.1.0 - Community Edition on RHEL 7.4

Requirements

The infrastructure for your Kubernetes cluster must be created prior to following this guide. At minimum a master and single worker node are required. The machine specs used for testing are below. A minimum of 151 GB of disk space on the master node is recommended.

Master Node — 4 CPUs, 8 GB RAM, 80 GB disk, public/accessable IP
Worker Node(s) — 2 CPUs, 4 GB RAM, 40 GB disk

Steps

1. Review the System Requirements

The system requirements doc can be found here. Note the hardware requirements when setting up your machines. All of the machines created must have network access to one-another.

2. Architecture

Familiarize yourself with the architecture of IBM Cloud Private found here. For this install a single machine will act as the master, boot and proxy node. Each worker node will have its own machine. The management node will not be used.

3. Clone the Install Repo

Clone the GitHub Repo https://github.com/jcantosz/icp-rhel-install to your master node.

The repo contains a scripts folder with a series of of numbered scripts. Change (cd) to icp-rhel-install/scripts for the rest of the remaining steps.

4. Fill in the Variables

Using your favorite editor fill in the 00-variables.sh file.

  • SSH_KEY — the path to the private key file used to SSH into each of the workers.
  • SSH_USER — the user to SSH into the workers as.
  • PUBLIC_IP — The IP on which you plan to access the web dashboard. This may be the same as the MASTER_IP if there is only one interface for accessing the master
  • MASTER_IP — The (private) IP address of the master node
  • WORKER_IPS — An array of IP addresses, one per worker
  • WORKER_HOSTNAMES — An array of hostnames, one per worker, the size and order must match WORKER_IPS

Note that this file also contains links to the ICP install docs, the ICP wiki, and a wiki page with directions for joining the #ibm-cloud-private private channel on Slack.

5. Set Up Password-less SSH if needed

If SSH communication using keyfiles is not already set up between the master and worker nodes, the script 01–1-passwordless-ssh.sh can be run to help accomplish this.

6. Bind Mounted Volumes if needed

If you have volume mounts you wish to use for installing ICP, the script 01–2-bind-mounts.sh can help you accomplish this. Identify which mounted volumes you wish to bind to which folder locations and fill in the MOUNT_DIR variable as appropriate.

This is helpful when the base machine’s storage is insufficient for installing ICP and volume mounts are used.

7. Run the Scripts

Run each script 01-update-hosts.sh through 09-kubeconfig.sh in numerical order. Reviewing each script prior to running it.

Each script has a section that runs on the master and a for loop that cycles through each of the worker’s hostnames and runs the same or similar commands on the workers.

Note the URL and credentials of the web UI after running script 08-install.sh

8. Test kubectl commands

After script 09-kubeconfig.sh has completed, your master node should have a working version of kubectl. Try running kubectl get pods –all-namespaces to see what is running on Kubernetes.

9. View the Web UI

Upon successful completion of the 08-install.sh script, instructions on how to access the web interface will be printed. if the UI does not appear, you may need to wait for your pods to be in the “Running” state. By default the web interface will be accessible on https://<PUBLIC_IP>:8443 with the username/password of admin/admin. The cluster is using a self-signed certificate, so you may get a message about an untrusted certificate. Accept and proceed to the log in page. Log in and view the dashboard. Many elements of Kubernetes that can be accesses via kubectl commands can also be viewed using the left-hand navigation menu. Additional options such as LDAP configuration and a catalog of content can also be found here.

Self-signed certificate warning, click “advanced” and proceed to the page.

Accepting the warning will lead you to the log in page, log in:

View the dashboard and explore the UI:

10. Conclusion

IBM Cloud Private is a fully-featured Kubernetes-based platform that runs on your infrastructure. The Community Edition is a great way to test out the platform. The scripts that accompany this article are intended to provide a digestable way to understand the install process and get the product up-and-running on your machines, so you can do the important tasks using the platform.

Originally published at developer.ibm.com.

--

--

Jesse Antoszyk
IBM Cloud

DevOps Systems Engineer at BoxBoat Technologies. The opinions expressed here are my own.