DEV Community

Cover image for Cyclops UI - the browser for your Kubernetes Clusters
pravintargaryen
pravintargaryen

Posted on

Cyclops UI - the browser for your Kubernetes Clusters

Have you ever wondered how Google can handle so much requests per minute convincingly without any lag or downtime and that too at Godspeed?

The answer lies in it's Data Center

What is a Datacenter?

A Datacenter is a place where thousands of Linux Servers(mostly) are racked (aka rack servers) working down the clock for serving each requests at a scale larger than anyone can imagine.

Imagine a whole football ground with Servers

Image description
Pic Courtesy : Google Data Center Gallery

This is the map of the Google Data Centers around the Globe

Image description

You can get a quick snapshot of what a Datacenter is at the moment.

What is a Cluster?

As the name suggests Clusters are group of anything, in this case a group of Servers. The following illustration somehow details it

Image description
Pic Courtesy : Google Datacenter

You just got to know about cluster in the Datacenter. Let's take dig deeper.

Kubernetes

What if we want to build or emulate a data center of our own. Here Comes Kubernetes. Kubernetes or K8s as is commonly helps Containerized applications run with resources they need to run. Kubernetes is actually a result of Google's own Cluster Brainchild operating system called Borg.

Kubernetes Cluster Architecture

The basic Kubernetes cluster consists of a Control Pane and a Node

Image description
https://www.linkedin.com/pulse/step-by-step-guide-setting-up-kubernetes-cluster-md-rezaul-karim-1fpuc/

The kubelet is the primary "node agent" that runs on each node

What is Containerization?

Containerization as the name suggests helps contain an application with the tools they need to run such as environment variables, packages etc..

Think of it like a Sandbox or Delivery Container where everything you need is kept so that it can run as a single isolated units

Image description

How to Containerize an Application?

Well we usually containerize an application with Docker. Docker can package an application and its dependencies in a virtual container that can run on any Linux, Windows, or macOS computer. This enables the application to run in a variety of locations, such as on-premises, in public (see decentralized computing, distributed computing, and cloud computing) or private cloud.

Normally to Containerize an Application you need your application and a Docker File. That's it. A Docker File is a simple YAML File that will have the necessary details like:

  • Base Image
  • Working Directory
  • COPY
  • RUN Command
  • PORT

This is more like the build, run command and env variables needed when running an application in production. Think of it like Deploying our application to Vercel or Netlify. We are Deploying our application to Docker Container in this case. The Dockerfile will create a Docker Image first and the Docker Image will be Containerized.

Image description
https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/compare-Docker-image-vs-container-difference-compare

Because Docker containers are lightweight, a single server or virtual machine can run several containers simultaneously.

Image description
Copyright: Wired Magazine

Think of this ship. Each Container hosts an individual application or file. You can literally containerize anything from Google Colab notebook to a single image file or an entire application. The Choice is yours.

Docker Hub

You might have probably heard Github by now. Similar to Github, which hosts the source code of our applications, we have Docker Hub which hosts the Docker Image of our applications at https://hub.docker.com/.

Minikube

Now that you have a basic understanding of Kubernetes and Docker, let's focus on Minikube.

Minikube is a lightweight and simplified version of Kubernetes, primarily used for local development and testing purposes.While Kubernetes are multi nodes in real world scenario, Minikube allows you to run a single-node Kubernetes cluster locally on your machine. So this will be ideal for playing with it.

That's it we have learnt all the basics, now we can focus on Cyclops UI

Cyclops UI

Cyclops is an user interface for managing and interacting with Kubernetes clusters. This is more like a browser for Kubernetes Cluster without which we have to rely on Command line Terminals for managing clusters.

Cyclops UI Demo

Click the below image to watch Cyclops UI Demo

IMAGE ALT TEXT HERE

Top comments (0)