googlekubernetes-sandbox

Bitnami How-To Guides for Google Cloud Platform

Install and Use Kubeapps with the Bitnami Kubernetes Sandbox

Introduction

Kubernetes is the recommended way to manage containers in production. To make it even easier to work with Kubernetes, Bitnami offers Kubeapps, a set of tools to super-charge your Kubernetes cluster with:

  • Your own application dashboard, allowing you to deploy Kubernetes-ready applications into your cluster with a single click.
  • Kubeless, a Kubernetes-native Serverless Framework, compatible with serverless.com.
  • SealedSecrets, a way to encrypt a Secret into a SealedSecret, which is safe to store… even for a public repository.

Kubeapps binaries are available for both Linux and OS X, and Kubeapps has been tested with both minikube and Google Kubernetes Engine (GKE).

This guide explains how to install and get started with Kubeapps using the Bitnami Kubernetes Sandbox. The Bitnami Kubernetes Sandbox provides a complete development environment for containerized applications. It includes ready-to-run versions of a Kubernetes cluster, together with local volume provisioner, Helm, Ingress controller and Kubernetes Dashboard to offer as close to a production cluster as possible without any configuration pains.

Assumptions and prerequisites

This guide assumes that you have:

Although this guide uses the Bitnami Kubernetes Sandbox, Kubeapps can be used with any Kubernetes (v1.8.4+) cluster with Helm/Tiller configured and RBAC enabled following the steps outlined in this guide.

NOTE: On GKE, you must either be an “Owner” or have the “Container Engine Admin” role in order to install Kubeapps.

Step 1: Configure kubectl to work with the Bitnami Kubernetes Sandbox

The first step is to configure your locally installed copy of kubectl to communicate with the Bitnami Kubernetes Sandbox. Follow these steps:

  • Connect to the Bitnami Kubernetes Sandbox using SFTP.
  • Download the /etc/kubernetes/admin.conf file to your local system.
  • Edit the downloaded file and update the server variable to reflect the public IP address of the running Bitnami Kubernetes Sandbox instance.

    ...
    - cluster
      server: https://SERVER-IP:6443
    ...
    
  • Move the downloaded file to ~/.kube/sandbox.conf:

    $ sudo mv admin.conf ~/.kube/sandbox.conf
    
  • Set the KUBECONFIG environment variable to reflect the new configuration file:

    $ export KUBECONFIG=~/.kube/sandbox.conf
    

Your locally installed copy of kubectl should now be configured to use the Bitnami Kubernetes Sandbox. Verify this by executing kubectl cluster-info and checking the output.

Step 2: Install Kubeapps

To install Kubeapps, execute the commands below on your local system:

$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install --name kubeapps --namespace kubeapps bitnami/kubeapps

It may take a few minutes for all Kubeapps services to start. You can check the status of the deployment using the command below:

$ kubectl get pods -w --namespace kubeapps

Proceed to the next step only after confirming that all Kubeapps services have successfully started.

Step 3: Log in to the Kubeapps Dashboard

Once all Kubeapps services are running, obtain a Kubernetes API token as follows:

$ kubectl create serviceaccount kubeapps-operator
$ kubectl create clusterrolebinding kubeapps-operator --clusterrole=cluster-admin --serviceaccount=default:kubeapps-operator
$ kubectl get secret $(kubectl get serviceaccount kubeapps-operator -o jsonpath='{.secrets[].name}') -o jsonpath='{.data.token}' | base64 --decode

Copy the generated API token, as you will need it to log in to Kubeapps.

NOTE: It’s not recommended to create cluster-admin users for Kubeapps production usage. Please refer to the Kubeapps access control documentation to configure fine-grained access control for users.

Next, run the following commands to start the Kubeapps Dashboard:

$ export POD_NAME=$(kubectl get pods -n kubeapps -l "app=kubeapps,release=kubeapps" -o jsonpath="{.items[0].metadata.name}")
$ kubectl port-forward -n kubeapps $POD_NAME 8080:8080

This will start an HTTP proxy on port 8080 for secure access to the Kubeapps Dashboard. You can now access the Kubeapps Dashboard by browsing to http://127.0.0.1:8080. Here’s what you should see:

Kubeapps Dashboard login

Paste the API token generated earlier into the “Kubernetes API Token” field to log in to the Kubeapps Dashboard. Here is what you should see:

Kubeapps Dashboard welcome page

Step 4: Deploy an application with Kubeapps

Once you have the Kubeapps Dashboard up and running, you can start deploying applications into your cluster.

  • Start with the Dashboard welcome page:

    Kubeapps Dashboard

  • Use the “Catalog” menu to select an application from the list of charts in the official Kubernetes chart repository. This example assumes you want to deploy MariaDB.

    MariaDB deployment

  • Click the “Deploy” button.

    MariaDB namespace

  • You can customize the deployment by editing the YAML configuration file displayed. Click “Submit” to proceed.

    MariaDB namespace

The application will now be deployed. You will be able to track the new Kubernetes deployment directly from the browser.

The “Notes” section of the deployment page contains important information to help you use the application, including how to obtain the MariaDB credentials. Alternatively, click the eye icon (just below the “Notes” section) to view the application credentials.

MariaDB deployment notes

TIP: To remove a deployment, click the “Delete” button on the deployment detail page. To remove Kubeapps from the cluster, execute the command helm delete –purge kubeapps.

To learn more about the topics discussed in this guide, visit the links below:

Last modification April 19, 2019