Kubeapps : Application Dashboard for Kubernetes environment

Introduction to Kubeapps

Kubeapps is a web-based UI provides a complete application delivery environment that empowers users to launch, review and share applications. Kubeapps help organization to have their own application dashboard, allowing them to deploy Kubernetes-ready applications into your cluster with a single click.

Kubeapps allows to:

  • Browse and deploy Helm charts from chart repositories
  • Inspect, upgrade and delete Helm-based applications installed in the cluster
  • Add custom and private chart repositories
  • Secure authentication and authorization based on Kubernetes Role-Based Access Control

Assumptions and prerequisites

  1. Kubernetes Cluster of v 1.8.4 and above.
  2. Helm
  3. A locally installed copy of kubectl.

Why Helm is needed ?

Just like Apt / YM / Homebrew package manager, Helm is an another package manager that streamlines installing and managing Kubernetes applications in a K8S environment. It uses packaging formats called Charts which describes a set of Kubernetes resources. A single chart can be used to deploy simple single tier application or something  complex, like a full web app stack with HTTP servers, databases, caches, and so on.

Before proceeding Kubeapps lets install Helm

  1. Download your desired version
  2. Unpack it (tar -zxvf helm-v3.x.x-linux-amd64.tar.gz)
  3. Find the helm binary in the unpacked directory, and move it to its desired destination (mv linux-amd64/helm /usr/local/bin/helm)
  4. Run the command helm version to verify the installation

Installing Kubeapps

As now we have our prerequisite ready, lets go ahead and install Kubeapps. You can either leverage Len : The Kubernetes IDE or you can directly install using command line. In both the cases, Helm will be used to install Kubeapps. Lens provides a nice interface to deploy application using Helm charts,

In case you don’t have Lens installed, please follow my another post “Manage, Monitor & Troubleshoot your Kubernetes Cluster using Lens, the Kubernetes IDE.”  

In this blog, I will be using Lens to deploy KUBEAPPS 

Step 1. Open Lens application and Click on Charts, search for Kubeapps

Step 2 : Click on Kubeapps and click on Install

Step 3 : As we are using Helm 3.x make sure you change the parameter useHelm3: false to true in the script shown. Post changing the useHelm3:true click on Install

It would take some time to get the all pods deployed

Step 4 : Once successfully deployed, the release apps will be visible under Apps –> Releases

Step 5: Select the released application and follow the instruction to setup port forwarding to access KUBEAPPS web interface from your local computer.

 

Creating Kubernetes API Token

For trying out Kubeapps, access to the Dashboard requires a Kubernetes API token to authenticate with the Kubernetes API server as shown below, but for any real installation of Kubeapps you should instead configure an OAuth2/OIDC provider.

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={range .secrets[*]}{.name}{“\n”}{end} | grep kubeapps-operator-token) -o jsonpath={.data.token} -o go-template={{.data.token | base64decode}} && echo

Copy the key and provide an an input KUBERNETES API TOKEN window.

Once authenticated, you can access the kubeapps console. Now you can leverage kubeapps to deploy applications to you kubernetes cluster.

Now, under catalog you can see the list of available apps you can deploy using kubeapps.

In you want to add any specific Helm repository to the list, you can do using APP REPOSITORIES under CONFIGURATION

 

Deploying wordpress using kubeapps

Now we have kubeapps configured, lets deploy our fist app using kubeapps. Search for the application under catalog. If you wish to get your application deployed under any specific namespace, you can choose from the list. You can also create a new namespace from kubeapps console and deploy your application there.

Lets create a new namespace

Click on WordPress application and hit Deploy

Do the necessary changes as per your organization requirement.

Navigate to Bottom and click on submit.

Wait for the time, the both the pods status change to RUNNING

As we don’t have load balancer configured for pods, we can directly access the website accessing IP address of worker node along with the port number of wordpress.

Conclusion

This concludes the deployment of Kubeapps in a kubernetes cluster along with the WordPress application using Kubeapps. Kubeapps provides a web-based UI with the complete application delivery environment that empowers users to launch, review and share applications. Hope this will be informative for you, please do share if you find worth sharing it.

 

 

 

 

 

Manage, Monitor & Troubleshoot your Kubernetes cluster with Lens : The Kubernetes IDE

These days Kubernetes is everywhere and there are many Kubernetes administration tools to choose from either command-line or a graphical user interface. While exploring the options to manage and monitor my kubernetes cluster, I came across two very nice tools  k9s (a command line kubernetes cluster monitoring tool) and Lens (a GUI based tool). As most of the admins love to work on GUI based colourful  solution, i thought of covering Lens a Kubernetes IDE tool first and will be covering the k9s in my next blog.

Introduction to Lens

Lens, which bills itself as “the Kubernetes IDE,” is a useful, attractive, open source user interface (UI) for working with Kubernetes clusters. Lens is a standalone application available for MacOS, Windows and Linux Operating Systems. Lens can connect to you Kubernetes Cluster using kubeconfig file and display deep level of visibility and real time statics of your Kubernetes Cluster.  Lens can also connect to—or install—a Prometheus stack and use it to provide metrics about the cluster, including node information and health.

You can access and work with multiple kubernetes cluster from a single unified IDE. The Kubernetes cluster can be local or external (public cloud hosted, Rancer or Openshift). You can add your Kubernetes Cluster by simply importing the kubeconfig with cluster details. You can even access you Kubernetes cluster using the built-in kubectl to enforce the Kubernetes RBAC.

Lens Features

  1. Monitor your Kubernetes Cluster
  2. Collects Metrics such as CPU, Memory, Network and Disk Utilization
  3. Scale up or Scale Down Kubernetes Cluster
  4. Single Plane of Glass for multiple kubernetes Cluster
  5. Inbuilt Kubectl tool
  6. Integration with Helm repositories.

Installing Lens

You can download Lens for Linux, macOS, or Windows from either its GitHub page or its website. In this post, I will be Installing Lens on my Ubuntu Server.

Step 1 : You can install Lens on Ubuntu using following command on an Ubuntu Server.

sudo snap install kontena-lens –classic

Step : 2 Launch the Lens Application

Step : 3 : Fetch kubeconfig file details of the cluster you want to add

kubectl config view –minify –raw

Step 4 : Click on Plus Sign to add cluster you want to Monitor. Click on Custom and paste the Kubecofig file data and click on Add Cluster

Once added you will see the details of cluster, nodes, pods and other components of kubernetes cluster.

In case you don’t see the resource utilization  metrics you need to enable from the cluster settings. Right Click on Cluster and click on settings

Click on Install under Features –> Metrics

Reviewing Kubernetes Cluster Events

 

Lens provides integration with different repositories of Helm Charts, You can install any app from the list of Helm Charts available. Lens also provides you an option to integrate with other Helm Repositories

Deploying Harbor Repository using Lens.

As we can see, there are only two applications deployed under Releases.

Click on Charts and Search for the application you want to deploy.

Click on Install.

Click on Install in bottom right corner.

Click on Helm Release

You can see third application is added to the list.

Under Pods you can see the progress of Pods

Once application get deployed completely. Click on the Application under release to view process to login application.

Scaling up an Deployed Application

Using Lens you can scale up and scale down an application anytime you want with just few click.

Inbuilt Kubectl Command

Lens provides terminal along with Kubectl command line tool to manage kubernetes cluster.

This concludes the installation of Lens, The Kubernetes IDE. In this blog, we covered how you can leverage, Lens to Monitor, Manage & Troubleshoot a kubernetes cluster. Hope this will be informative for you. Please do share if you find worth sharing this.

 

 

 

 

 

Deploying VMware Tanzu Kubernetes Grid Management Cluster

Introduction to VMware Tanzu Kubernetes Grid

What is VMware Tanzu Kubernetes Grid?

VMware Tanzu Kubernetes Grid provides a consistent, upstream-compatible implementation of Kubernetes, that is tested, signed, and supported by VMware. VMware Tanzu Kubernetes Grid allows organization to run Kubernetes with consistency and make it available to developers as a utility. VMware Tanzu Kubernetes Grid supported by VMware provides organizations with a consistent, upstream-compatible, regional Kubernetes substrate across on premise software-defined datacenters and public cloud environments. VMware TKG provides the services such as networking, authentication, ingress control, and logging that a production Kubernetes environment requires.

VMware TKG Components

  1. Bootstrap Environment : The bootstrap environment any physical or virtual server on which you download and run the Tanzu Kubernetes Grid CLI. This is where the initial bootstrapping of a management cluster occurs, before it is pushed to the platform where it will run.
  2. TKG Management Cluster : The management cluster will be the first element that need to be deployed when you create a Tanzu Kubernetes Grid instance. The management cluster is a Kubernetes cluster that performs the role of the primary management and operational center for the Tanzu Kubernetes Grid instance. You can either leverage TKG CLI or Web Interface to deploy a TKG Management Cluster.
  3. Tanzu Kubernetes Cluster: are the clusters that are deployed from the management cluster by using the Tanzu Kubernetes Grid CLI.  You can have multiple clusters running different versions of Kubernetes, depending on the needs of the applications they run. By default Tanzu Kubernetes clusters implement Calico for pod-to-pod networking.

Deploying TKG Management Cluster

Prerequisite

  • Internet Connectivity on the Bootstrap server.
  • Install docker & kubectl on bootstrap server.
  • Download, Unpack & Install the Tanzu Kubernetes Grid CLI
  • On Linux use gunzip tkg-linux-amd64-v1.1.0-vmware.1.gz
  • mv ./tkg-linux-amd64-v1.1.0-vmware.1 /usr/local/bin/tkg
  • chmod +x /usr/local/bin/tkg
  • Verify by executing tkg version

  • Generate Public & Private Key on Bootstrap server

ssh-keygen -t rsa -b 4096 -C “email@example.com
ssh-add ~/.ssh/id_rsa

  • SSH to TKG Bootstrap VM.
  • Run the following command to start the UI wizard: tkg init –ui

  • Open up another terminal session on your workstation and run the following command to use SSH port forwarding so we can connect to the TKG UI from your local workstation:ssh root@192.168.1.199 -L 8080:127.0.0.1:8080 -N Open Internet browser and open URL http://127.0.0.1:8080

Deploying Tanzu Kubernetes Grid Management Cluster

Conclusion:

This conclude the process of deploying a #VMware #Kubernetes Grid Management Cluster in a vSphere environment. Hope this will be informative for you. Please do like and share if you worth sharing this. Happy Learning 🙂