Skip to content
Home ยป Kubernetes 101: Container and Kubernetes Overview

Kubernetes 101: Container and Kubernetes Overview

Welcome to the second chapter of my free Kubernetes crash course, Kubernetes 101: Container and Kubernetes Overview!

This chapter will briefly provide a Kubernetes overview to help you better understand what Kubernetes is and how it can truly help!

Look at you, so eager to start playing with the Kubernetes cluster you created in the previous chapter! Well you’re going to have to wait a little bit longer. And before you ask, yes I planned it out this way.

Now let’s take a walk down memory lane and see why containers are so useful (I promise this will be brief)!

Why containers are so useful compared to our previous deployment options

Why Kubernetes is so useful compared to our previous deployment options

In the traditional deployment era, organizations ran applications on physical servers. Resource boundaries for applications couldn’t be defined causing resource allocation issues, and scaling physical servers was way too expensive as resources were then underutilized. This is not a feasible solution.

Introducing the virtualized deployment era, where all of the issues from the traditional deployment are solved! Multiple Virtual Machines (VMs) are ran on a single physical server’s CPU which allows applications to be isolated between VMs. This isolation provides a level of security, better utilization of resources provided by the physical server, and scalability.

The container deployment era, which is the era we are currently in when working with Kubernetes, is similar to the virtualized deployment era. When comparing containers to VMs, containers often win because they are considered lightweight. Containers have relaxed isolation properties to share the operating system (OS) among the applications. Similar to a VM, a container has its own filesystem, share of CPU, memory, process space, and more. As they are decoupled from the underlying infrastructure, they are portable across clouds and OS distributions.

Recently, containers have become increasingly popular because they provide extra benefits, such as:

  • Agile application creation and deployment: increased ease and efficiency of container image creation compared to VM image use.
  • Continuous development, integration, and deployment: provides for reliable and frequent container image build and deployment with quick and efficient rollbacks.
  • Observability: not only surfaces OS-level information and metrics, but also application health and other signals.
  • Loosely coupled, distributed, elastic, liberated micro-services: applications are broken into smaller, independent pieces and can be deployed and managed dynamically โ€“ not a monolithic stack running on one big single-purpose machine.
  • Resource isolation: predictable application performance.
  • Resource utilization: high efficiency and density.

Seriously, the list goes on but I’m cutting it there. I don’t want these chapters to be too long and I want to get to the fun stuff! I just hope you now have an idea why containers are awesome if you didn’t already.

Brief Kubernetes overview on why you need Kubernetes and what it can do

You know how awesome containers are. Now you’re going to know how awesome Kubernetes is.

In a production environment, you need to manage the containers that run the applications and ensure that there is no downtime. If a container hosting a very important application goes down for whatever reason, another container needs to start as soon as possible to replace the one that went down. If only we had someone, or something, always watching our system and spinning containers back up after they fail!

Oh wait, we do. Our beloved Kubernetes.

Kubernetes provides you with a framework to run distributed systems resiliently. It takes care of scaling and failover for your application, provides deployment patterns, and more.

List of amazing features that Kubernetes provides you with

Service discovery and load balancing

Kubernetes can expose a container using the DNS name or using their own IP address. If traffic to a container is high, Kubernetes is able to load balance and distribute the network traffic so that the deployment is stable.

Automated rollouts and rollbacks

You can describe the desired state for your deployed containers using Kubernetes, and it can change the actual state to the desired state at a controlled rate. For example, you can automate Kubernetes to create new containers for your deployment, remove existing containers and adopt all their resources to the new container.

Self-healing

Kubernetes restarts containers that fail, replaces containers, kills containers that don’t respond to your user-defined health check, and doesn’t advertise them to clients until they are ready to serve.

Storage orchestration

Kubernetes allows you to automatically mount a storage system of your choice, such as local storages, public cloud providers, and more.

Automatic bin packing

You provide Kubernetes with a cluster of nodes that it can use to run containerized tasks. You tell Kubernetes how much CPU and memory (RAM) each container needs. Kubernetes can fit containers onto your nodes to make the best use of your resources.

What Kubernetes is not

Kubernetes is not monolithic and operates at the container level rather than the hardware level. Kubernetes provides some generally applicable features such as deployment, scaling, load balancing, and lets users integrate their logging, monitoring, and alerting solutions, but Kubernetes is not a traditional, all-inclusive Platform as a Service (PaaS) system. These default solutions are optional and pluggable.

Kubernetes overview conclusion

Trust me, I know. You messed around in your Kubernetes cluster already and want to skip to the fun interactive parts of this Kubernetes crash course. Honestly, me too, but I promise you no matter how deep you go into the cluster you will always (and I mean, always) find yourself back learning the fundamentals of Kubernetes. I truly believe that building a strong understanding of what’s under the Kubernetes hood will help a lot in the long run and that is why the next chapter is still a lot of reading and less doing, but I also understand that this is just a Kubernetes 101 crash course. It’s totally fine if you want to jump ahead a bit and learn by doing.

If you’d like to skip ahead to a more interactive chapter of my free Kubernetes 101 crash course, click here:

Coming soon ๐Ÿ™‚

If you’d like to continue with the next chapter of Kubernetes 101, click here:

Coming soon ๐Ÿ™‚

You can visit the previous chapter of Kubernetes 101 here:

Kubernetes 101: How to Deploy Kubernetes with Kind

Thanks for reading! <3

Leave a Reply

Your email address will not be published. Required fields are marked *