DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Modernize your data layer. Learn how to design cloud-native database architectures to meet the evolving demands of AI and GenAI workkloads.

Secure your stack and shape the future! Help dev teams across the globe navigate their software supply chain security challenges.

Releasing software shouldn't be stressful or risky. Learn how to leverage progressive delivery techniques to ensure safer deployments.

Avoid machine learning mistakes and boost model performance! Discover key ML patterns, anti-patterns, data strategies, and more.

Related

  • A Guide to Container Runtimes
  • Docker vs Kubernetes: Which to Use and When?
  • Using KRaft Kafka for Development and Kubernetes Deployment
  • Mobile Backend With Docker, Kubernetes, and Microservices

Trending

  • GDPR Compliance With .NET: Securing Data the Right Way
  • Emerging Data Architectures: The Future of Data Management
  • Failure Handling Mechanisms in Microservices and Their Importance
  • Doris: Unifying SQL Dialects for a Seamless Data Query Ecosystem
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. Introduction To Kubernetes

Introduction To Kubernetes

An orchestration tool takes care of provisioning and deployment, allocation of resources, load balancing, and many other important aspects of any system.

By 
Ankit Agrawal user avatar
Ankit Agrawal
·
Apr. 13, 21 · Analysis
Likes (11)
Comment
Save
Tweet
Share
15.7K Views

Join the DZone community and get the full member experience.

Join For Free

With containerization gaining popularity over time and revolutionizing the process of building, shipping, and maintaining applications, it became the need of the hour to effectively manage these containers. Many tools were introduced to manage the lifecycle of these containers in large-scale systems. These tools were called container orchestration tools.

An orchestration tool takes care of provisioning and deployment, allocation of resources, load balancing, service discovery, high availability, and other important aspects of any system. By using container orchestration tools like Docker Swarm, Kubernetes, etc. we can easily describe the configurations such as volume mounts, env variables, image source, CPU, Memory configuration, etc., and use them as blueprints for creating containers.  

In this article, we will take a look at the basic components of Kubernetes.

Basic Components of Kubernetes

Cluster

As the name suggests, a cluster is a set that consists of master and worker Nodes. It has at least one master node and can have one or many worker nodes. A master node consists of a control plane to manage the worker nodes. The control plane has several components which make the decisions such as scheduling, life cycle management, etc.

The components of the control plane are Kube-APIserver, etcd, kube schedular, kube-controller-manager, cloud-controller-manager.

Some components of the control plane run on each node. These components are kubelet, kube-proxy, container-runtime.

We will dive deeper into these components in PART-2 of this blog series.

Node

The containers placed in pods are run on Kubernetes worker nodes. Each node has the necessary configuration and runtime environment to support the containers running in the pod. Nodes are managed by the control plane.

Pod

A pod is the smallest deployable unit in Kubernetes. Pods run within a node. A node can have one or many pods running inside. Each pod can have one or more containers running within. Containers running within the same pod can interact using a localhost network but the same is not true for inter-pod communication since they run in isolated environments and have no idea about each other.

Deployment

These are improved versions of replication controllers. They manage replica set deployment. A pod uses the deployment as a blueprint. Deployment describes all the basic details for a pod to be created such as name, memory, CPU, volume mounts, env variables, number of replicas to run at a time, image from which container will be created, etc.

Service

Kubernetes pods are dynamic. They get created and destroyed frequently. Every time a new pod is created, it has a new name and address in the Kubernetes node. So, it becomes impossible to communicate between pods using the physical address or IP of pods. To solve this issue, Kubernetes services are created. A service defines the policies to access a logical set of pods.

Secret

Secrets are used to stored sensitive information securely. This can be anything such as DB credentials or service account details. It is always advisable to store this information in secrets instead of hardcoding it in K8s configuration files.

Persistent Volume

Persistent volumes can be used to mount any external storage drive to a particular location on the container. This is usually done to keep the containers stateful. There are many types of persistent volume supported by Kubernetes which can be found in an official document in detail.

Persistent Volume Claim

It can be described as a request from the user for some storage. We can configure the properties of Persistent Volume needed using the claims. Similar to pod (consuming node resources), claims consume Persistent Volumes. Volumes can be provisioned dynamically or statically depending on our configuration of claims.

We have barely scratched the surface with the above article. We will see many more details and practical exercises in the upcoming articles on this topic. 

Kubernetes Docker (software)

Opinions expressed by DZone contributors are their own.

Related

  • A Guide to Container Runtimes
  • Docker vs Kubernetes: Which to Use and When?
  • Using KRaft Kafka for Development and Kubernetes Deployment
  • Mobile Backend With Docker, Kubernetes, and Microservices

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!