Ambassador Community Advocate

Kubernetes 101: Highlights From My Cloud Native Learning Journey

Esther Olowoloba
Ambassador Labs
Published in
4 min readJan 20, 2023

--

Given the explosive growth of cloud computing, it is not surprising that Kubernetes has become an essential tool utilized worldwide. Due to its popularity and usage, understanding how Kubernetes works is essential for anybody in the cloud native space. This motivated me to learn more about Kubernetes and write articles about my learning journey.

In this article, I’ll share what I have learned about Kubernetes — its core concepts, benefits, and architecture. If you’re new to cloud native and its technologies, this article will be beneficial for you as it will help you understand how and why Kubernetes has become so crucial to application development, deployment, and scalability.

What is Kubernetes?

When building cloud native applications, developers follow this format: “Build an application using their preferred programming language” -> “Containerize the application” -> “Deploy the application”.

Cloud native applications usually contain several microservices. And even though it is possible to manage and orchestrate these microservices manually, it becomes more and more challenging to do so when the number of microservices increases, leading to downtime, which frustrates end users.

Kubernetes solves this problem by automating the orchestrating, deploying, scaling, and managing cloud-native applications. Kubernetes uses low-level errors, health checks, and traffic management to ensure that cloud native applications execute with their containers effectively and efficiently and even replace malfunctioning Kubernetes objects with healthy ones.

Basic Kubernetes Concepts

As a newbie in the Kubernetes ecosystem, you’ll need to be familiar with some technical terms, so let’s take a moment to go over some of the more prevalent ones.

  1. Containers: A standard software package containing all the program code required to operate an application in any technological environment.
  2. Cloud-native applications: Special applications designed to run and be maintained on the cloud using scalable environments such as public or private clouds.
  3. Pod: A collection of containers and the smallest Kubernetes unit, each container having a unique IP address.
  4. Deployment: The size or scope at which an application developer wants to run a program by configuring particulars specific to the program’s work.
  5. Nodes: A virtual or physical machine that runs and manages the pods for container operation.
  6. Control plane: This is the command interface developers utilize to operate and maintain nodes so users can access them.

Understanding the Kubernetes Architecture

Kubernetes has its specific vocabulary. Understanding these terms can help you comprehend the architecture and how the different parts work together. Usually, a developer evaluates and engages with Kubernetes containers by starting at the control plane. This control plane comprises four parts:

  • An API server connects the web application with its users.
  • A Scheduler that assigns workload to the nodes.
  • The Controller Manager whose responsibility is to declutter operations as efficiently as possible.
  • Etcd is a key-value database used to share information about clusters.

Other node units involve the Kubelet, which helps keep track of the state of the pods as well as traffic from services directed into a node by Kube-proxy.

Credit: Cloud-native Computing Foundation

The diagram above shows how these different components work together to form the Kubernetes architecture.

Users can interact with the Kubernetes system using a UI and the Kubernetes command line tools (kubectl) to manage the control plane, which runs on the application’s required nodes. And although this is an automated process, developers can also alter individual containers.

Benefits of Kubernetes

  1. Helps automate and scale a significant workload efficiently.
  2. Enables faster and easier deployment via automated events that rule out errors or impacts from cluster traffic.
  3. Provides quick feedback as containers are easily accessible to developers building the application.
  4. Integrates operational activities with developer responsibilities which can lead to a better understanding of both.
  5. It saves costs as there is an optimization of infrastructural resources.

Conclusion

Kubernetes has become a tool that DevOps engineers use when building and controlling an application. It has helped make development in the cloud space better and is an essential component in developer education.

I have learned about Kubernetes from various sources, but the Kubernetes Learning Center at Ambassador Labs stood out for me. This educational resource has learning tracks for both application developers and platform engineers. It includes useful tutorials on debugging Kubernetes services with Telepresence and effectively sending traffic to your Kubernetes services using Ambassador Edge Stack. I encourage you to check it out and join the Ambassador Labs Slack channel.

I hope you found this article useful. If you have questions or concerns, please drop them in the comment session and follow me here for more content on cloud-related topics.

--

--

A Star girl in her element in love with everything health and cloud technology, documenting her experiences as she evolves.