Deploy a Kubernetes cluster on-premise


  1. Deploy simple master (single) and worker node (single) Kubernetes cluster for demo purposes
  2. Configure kubectl
  3. Use Helm to deploy WordPress to a cluster

Before you get started

To use Kublr, you’ll need to download and install Kublr Demo/Installer at


System Requirements for the cluster nodes

  1. x86 64-bit hardware
  2. Hardware recommendation
  3. Supported OS on nodes: RHEL 7.2+ or Ubuntu 16.04 LTS
  4. Root access to each node
  5. Nodes are connected in your network and Kublr Demo/Installer configured IP is accessible from these nodes (ping)
  6. From your nodes, firewall rules should allow traffic to Kublr Demo/Installer on ports 9080 / 9443
  7. 100Mbs stable internet connection
  8. Kublr Demo/Installer should be correctly configured to be accessible in your local network. It is critical that you provide the correct IP address during the virtual machine startup. If you skipped this step, please re-run provisioning and configure your firewall rules to allow traffic to your computer.

Re-provisioning Kublr Demo/Installer

If you would like to install clusters on-premise, but you have already started Kublr Demo/Installer without option KUBLR_HOST or your IP address has been changed (for example switch network), please correct KUBLR_HOST to access your computer from the network. Typically, it is your computer’s IP address, but it may be different if you use NAT:

    docker exec -i kublr /bin/bash -c 'echo "KUBLR_HOST=HOST_IP:HOST_PORT" > /ip.external'; docker restart kublr

This will reconfigure Kublr to use a proper DNS/IP address for the installation scripts used on your nodes.

Determine Your Own IP Address

Creating a cluster in your machine’s network is simple. Use your machine’s IP address for this network. If you don’t know how to get the IP address, contact your system administrator or read your OS manual.

To install Kublr clusters in a different network on complex network topologies, provide the IP address of your machine from that network.

Creating On-Premise cluster in Kublr

  1. Click on Cluster Menu in Left Navigation Menu Bar Cluster Menu
  2. Click on Add Cluster Add New Cluster
  3. Enter Cluster Name Cluster Name
  4. Select Provider: BARE-METAL Bare-metal provider
  5. Select Number of Master Nodes Number of Masters
  6. Enter IP/DNS of Master IP/DNS of Master 1
  7. Select Number of Worker Nodes Work nodes
  8. Click on Confirm and Install button
  9. Page with setup instructions should be opened. Copy the Instruction for Master Node by clicking the button Copy Masters for Bare-metal
  10. Open Terminal and login to the master node machine with ssh:
ssh <user_name>@

After you login to the machine you may need to change current user to root:

sudo -i

Insert the instruction copied earlier in command line:

curl '' -o ./; chmod a+x ./; ./

You will see the following message for login Masters setup script

Enter the username and password of the user you are logged into Kublr Demo/Installer Masters setup script

At the end you will see Masters setup script

  1. In Kublr Demo/Installer UI Master Node status should be OK Masters Status
  2. Copy the instructions for Worker Node and do the same as for Master Node Work Nodes script

Open Terminal and login to the worker node ssh:

ssh <user_name>@

After you login to the machine you may need to change current user to root:

sudo -i

Insert the instruction copied earlier in command line:

curl '' -o ./; chmod a+x ./; ./

Enter the username and password of the user. You will be logged into Kublr and should wait until the installation is complete Work Nodes Complete

Go into the Kublr UI and wait until cluster is switched to running status Bare-metal cluster is Running


Install and Configure kubectl

Additional information can be found here

curl -LO$(curl -s
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

Copy Kublr config file

To retrieve config from Kublr */:

  1. Click on the cluster in the cluster list to access the cluster details page
  2. On the overview tab, download the config file Config File
mkdir ~/.kube
cp ~/Downloads/config.yaml ~/.kube/config
kubectl cluster-info


Install and use Helm to deploy WordPress to your cluster

Install Helm. Click here for detailed guidelines.

curl >
chmod +x
./ --version v2.5.0
helm init

Install WordPress

By default both WordPress and MariaDB require support for Persistent Volume storage provisioner. Configuration of that goes beyond the scope of the Quickstart, so install Wordpress with persistence disabled. Also, for on-premise installation, use Service with Type = NodePort.

Note: Additional configuration parameters for WordPress and MariaDB are available. See documentation at and, respectively.

helm install stable/wordpress --name wordpress --set persistence.enabled=false,serviceType=NodePort,mariadb.persistence.enabled=false
export SERVICE_PORT=$(kubectl get svc --namespace default wordpress-wordpress -o jsonpath='{.spec.ports[?("http")].nodePort}')
export SERVICE_IP=$(kubectl get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}')
echo http://$SERVICE_IP:$SERVICE_PORT/admin
echo Username: user
echo Password: $(kubectl get secret --namespace default wordpress-wordpress -o jsonpath='{.data.wordpress-password}' | base64 --decode)

Open the browser and navigate to the URL from console output.

Congrats! You just deployed your first app in a Kubernetes cluster with Kublr.