What is Kubernetes, technically?

Jon Goldman
4 min readFeb 12, 2021

--

Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications according to kubernetes.io but if we look at it closer under the hood let’s see what it is actually and technically :)

This is a kubernetes dashboard you should see once went through the simple steps in this article.

Launching a single node Kubernetes cluster, we will use Minikube(https://github.com/kubernetes/minikube), it is a tool that makes it easy to run Kubernetes locally, Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it on a daily basis.

Minikube has been installed and configured in the environment. Check that it is properly installed, by running the minikube version command:
Start the cluster, by running the minikube start command:

You now have a running Kubernetes cluster in your online terminal. Minikube started a virtual machine for you, and a Kubernetes cluster is now running in that VM.

Details of the cluster and its health status can be discovered via

To view the nodes in the cluster using

If the node is marked as NotReady then it is still starting the components.

This command shows all nodes that can be used to host our applications. Now we have only one node, and we can see that it’s status is ready (it is ready to accept applications for deployment).

With a running Kubernetes cluster, containers can now be deployed.

Using kubectl run, it allows containers to be deployed onto the cluster

The status of the deployment can be discovered via the running Pods

Once the container is running it can be exposed via different networking options, depending on requirements. One possible solution is NodePort, that provides a dynamic port to a container.

The command below finds the allocated port and executes a HTTP request.

The result is the container that processed the request.

Enable the dashboard using Minikube with the command

Make the Kubernetes Dashboard available by deploying the following YAML definition. This should be used only in your lab.

The Kubernetes dashboard allows you to view your applications in a UI. In this deployment, the dashboard has been made available on port 30000 but may take a while to start.

To see the progress of the Dashboard starting, watch the Pods within the kube-system namespace using

Once running, the URL to the dashboard.

Dashboard should look like the above screen in the beginning of this article.

Kubernetes is an important piece of the cloud-native puzzle: But it’s important to understand that its broader ecosystem provides even more value to IT organizations. As Red Hat’s Haff notes, “The power of the open source cloud-native ecosystem comes only in part from individual projects such as Kubernetes. It derives, perhaps even more, from the breadth of complementary projects that come together to create a true cloud-native platform.”

This includes service meshes like Istio, monitoring tools like Prometheus, command-line tools like Podman, distributed tracing from the likes of Jaeger and Kiali, enterprise registries like Quay, and inspection utilities like Skopeo, says Haff. And, of course, Linux, which is the foundation for the containers orchestrated by Kubernetes.

--

--

Jon Goldman
Jon Goldman

Written by Jon Goldman

Cloud Security, Automation, DevOps, AWS, Azure, GCP

No responses yet