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:
- A deployed instance of the Bitnami Kubernetes Sandbox with Kubernetes v1.8.4+. Learn how to deploy instances in our deployment guides.
- A locally installed copy of the Helm package manager v3.x. Learn about installing Helm.
- A locally installed copy of kubectl. Learn about installing kubectl.
- Administrative access to the cluster to create Custom Resource Definitions (CRDs)
Although this guide uses the Bitnami Kubernetes Sandbox, Kubeapps can be used with any Kubernetes (v1.8.4+) cluster with Helm 3.x configured following the steps outlined in this guide.
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.
Once you have configured kubectl to work with the Bitnami Kubernetes Sandbox, the next step is to install and access Kubeapps, and start deploying applications on your cluster. Watch the video below to learn how to install and use Kubeapps to deploy applications on Kubernetes or continue reading for instructions:
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 --namespace kubeapps 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.
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:


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:

- Use the "Catalog" menu to select an application from the list of available charts. This example assumes you want to deploy MariaDB.

- Click the "Deploy" button.

- You can customize the deployment by editing the form or YAML configuration file. Click "Deploy" to proceed.

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 using the command line. Alternatively, click the eye icon (in the "Application Secrets" section) to view the MariaDB credentials directly in your browser.

To remove a deployment, click the "Delete" button on the deployment detail page. To remove Kubeapps from the cluster, execute the command helm delete kubeapps.
Useful links
To learn more about the topics discussed in this guide, visit the links below: