Install Admin Console

YugabyteDB clusters are created and managed from YugaWare. The default option to install YugaWare on a host machine that is connected to the Internet.

Step 1. Install Replicated

Connect to the YugaWare instance and do the following.

  • Install Replicated.
  1. $ curl -sSL https://get.replicated.com/docker | sudo bash

NOTE: If you are behind a proxy, you would need to run the following:

  • Install Replicated behind a proxy.
  1. $ curl -x http://<proxy_address>:<proxy_port> https://get.replicated.com/docker | sudo bash
  • After Replicated install completes, make sure it is running.

You can do this as shown below.

  1. $ sudo docker ps

You should see an output similar to the following.

Replicated successfully installed

Step 2. Install YugaWare

Set up HTTPS for Replicated

Launch Replicated UI by going to http://yugaware-host-public-ip:8800. The warning shown next states that the connection to the server is not private (yet). We will address this warning as soon as we setup HTTPS for the Replicated Admin Console in the next step. Click Continue to Setup and then ADVANCED to bypass this warning and go to the Replicated Admin Console.

Replicated SSL warning

You can provide your own custom SSL certificate along with a hostname.

Replicated HTTPS setup

The simplest option is use a self-signed cert for now and add the custom SSL certificate later. Note that you will have to connect to the Replicated Admin Console only using IP address (as noted below).

Replicated Self Signed Cert

Upload license file

Now upload the Yugabyte license file received from Yugabyte Support.

Replicated License Upload

If you are asked to choose an installation type, choose Online.

Replicated License Online Install

Replicated License Online Progress

Secure Replicated

The next step is to add a password to protect the Replicated Admin Console (note that this Admin Console is for Replicated and is different from YugaWare, the Admin Console for YugabyteDB).

Replicated Password

Pre-flight checks

Replicated will perform a set of pre-flight checks to ensure that the host is setup correctly for the YugaWare application.

Replicated Checks

Clicking Continue above will bring us to YugaWare configuration.

In case the pre-flight check fails, see Troubleshoot Yugabyte Platform to identify the resolution.

An “air-gapped” host has either no or a restricted path to inbound or outbound Internet traffic at all.

Prerequisites

1. Whitelist endpoints

In order to install Replicated and YugaWare on a host with no Internet connectivity at all, you have to first download the binaries on a machine that has Internet connectivity and then copy the files over to the appropriate host. In case of restricted connectivity, the following endpoints have to be whitelisted to ensure that they are accessible from the host marked for installation.

  1. https://downloads.yugabyte.com
  2. https://download.docker.com

2. Install Docker Engine

A supported version of Docker Engine (docker-engine) (currently 1.7.1 to 17.03.1-ce) needs to be installed on the host. If you do not have docker-engine installed, follow the instructions here to first install docker-engine on an air-gapped host. After Docker Engine (docker-engine) is installed, perform the following steps to install Replicated and then YugaWare.

Step 1. Install Replicated

On a machine connected to the Internet, perform the following steps.

Make a directory for downloading the binaries.

  1. $ sudo mkdir /opt/downloads

Change the owner user for the directory.

  1. $ sudo chown -R ubuntu:ubuntu /opt/downloads

Change to the directory.

  1. $ cd /opt/downloads

Get the replicated binary.

  1. $ wget https://downloads.yugabyte.com/replicated.tar.gz

Get the yugaware binary where the last 4 digits refer to the version of the binary. Change this number as needed.

  1. $ wget https://downloads.yugabyte.com/yugaware-1.2.6.0.airgap

Change to the directory.

  1. $ cd /opt/downloads

Expand the replicated binary.

  1. $ tar xzvf replicated.tar.gz

Install replicated (yugaware will be installed via replicated ui after replicated install completes) pick eth0 network interface in case multiple ones show up.

  1. $ cat ./install.sh | sudo bash -s airgap

After replicated install completes, make sure it is running.

  1. $ sudo docker ps

You should see an output similar to the following.

Replicated successfully installed

Next step is install YugaWare as described in the section below.

Step 2. Install YugaWare using Replicated

Set up HTTPS for Replicated

Launch Replicated UI by going to http://yugaware-host-public-ip:8800. The warning shown next states that the connection to the server is not private (yet). We will address this warning as soon as we setup HTTPS for the Replicated Admin Console in the next step. Click Continue to Setup and then ADVANCED to bypass this warning and go to the Replicated Admin Console.

Replicated SSL warning

You can provide your own custom SSL certificate along with a hostname.

Replicated HTTPS setup

The simplest option is use a self-signed cert for now and add the custom SSL certificate later. Note that you will have to connect to the Replicated Admin Console only using IP address (as noted below).

Replicated Self Signed Cert

Upload license file

Now upload the Yugabyte license file received from Yugabyte Support.

Replicated License Upload

Two options to install YugaWare are presented.

Replicated License Airgapped Install

Replicated License Airgapped Path

Replicated License Airgapped Progress

Secure Replicated

The next step is to add a password to protect the Replicated Admin Console (note that this Admin Console is for Replicated and is different from YugaWare, the Admin Console for YugabyteDB).

Replicated Password

Pre-flight checks

Replicated will perform a set of pre-flight checks to ensure that the host is setup correctly for the YugaWare application.

Replicated Checks

Clicking Continue above will bring us to YugaWare configuration.

In case the pre-flight check fails, review the Troubleshoot Yugabyte Platform section below to identify the resolution.

Prerequisites

You must have a Kubernetes cluster that has Helm configured. If you have not installed Helm client and server (aka Tiller) yet, follow the instructions here.

The YugaWare Helm chart documented here has been tested with the following software versions:

  • Kubernetes 1.10+
  • Helm 2.8.0+
  • YugaWare Docker Images 1.1.0+
  • Kubernetes node with minimum 4 CPU core and 15 GB RAM can be allocated to YugaWare.

Confirm that your helm is configured correctly.

  1. $ helm version
  1. Client: &version.Version{SemVer:"v2.10.0", GitCommit:"...", GitTreeState:"clean"}
  2. Server: &version.Version{SemVer:"v2.10.0", GitCommit:"...", GitTreeState:"clean"}

Create a cluster

Create a service account with cluster-admin role privileges

For deploying a YugaWare Helm (v2.x) chart, you need to have a service account with cluster-admin role privileges — if the user in context already has that access, you can skip this step.

  1. $ kubectl apply -f https://raw.githubusercontent.com/yugabyte/charts/master/stable/yugabyte/yugabyte-rbac.yaml
  1. serviceaccount/yugabyte-helm created
  2. clusterrolebinding.rbac.authorization.k8s.io/yugabyte-helm created

Initialize Helm

Initialize helm with the service account but use the —upgrade flag to ensure that you can upgrade any previous initializations you may have made.

  1. $ helm init --service-account yugabyte-helm --upgrade --wait
  1. $HELM_HOME has been configured at /Users/<user>/.helm.
  2. Tiller (the Helm server-side component) has been upgraded to the current version.
  3. Happy Helming!

Download YugaWare Helm Chart

You can do this as shown below.

  1. $ wget https://downloads.yugabyte.com/kubernetes/yugaware-1.0.0.tgz

Install YugaWare

Install YugaWare in the Kubernetes cluster using the command below.

  1. $ helm install yugaware-1.0.0.tgz --name yb --set=image.tag=1.1.10.0-b3 --wait

Check the cluster status

You can check the status of the cluster using various commands noted below.

  1. $ helm status yb
  1. LAST DEPLOYED: Wed Jan 2 14:12:27 2019
  2. NAMESPACE: default
  3. STATUS: DEPLOYED
  4. RESOURCES:
  5. ==> v1/ConfigMap
  6. NAME AGE
  7. yb-yugaware-global-config 14d
  8. yb-yugaware-app-config 14d
  9. yb-yugaware-nginx-config 14d
  10. yb-yugaware-prometheus-config 14d
  11. ==> v1/PersistentVolumeClaim
  12. yb-yugaware-storage 14d
  13. ==> v1/ServiceAccount
  14. yugaware 14d
  15. ==> v1/ClusterRole
  16. yugaware 14d
  17. ==> v1/ClusterRoleBinding
  18. yugaware 14d
  19. ==> v1/Service
  20. yb-yugaware-ui 14d
  21. ==> v1/StatefulSet
  22. yb-yugaware 14d
  23. ==> v1/Pod(related)
  24. NAME READY STATUS RESTARTS AGE
  25. yb-yugaware-0 5/5 Running 0 14d

Get service details.

  1. $ kubectl get svc -lapp=yb-yugaware
  1. NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
  2. yb-yugaware-ui LoadBalancer 10.102.9.91 10.200.300.400 80:32495/TCP,9090:30087/TCP 15d

You can even check the history of the yb helm chart.

  1. $ helm history yb
  1. REVISION UPDATED STATUS CHART DESCRIPTION
  2. 1 Wed Jan 2 14:12:27 2019 DEPLOYED yugaware-1.0.0 Install complete

Upgrade YugaWare

  1. $ helm upgrade yb yugaware-1.0.0.tgz --set=image.tag=<new-tag> --wait

Delete YugaWare

  1. $ helm delete yb --purge