<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dhritiraj Nath</title>
    <description>The latest articles on DEV Community by Dhritiraj Nath (@dhritiraj_nath_212b175585).</description>
    <link>https://dev.to/dhritiraj_nath_212b175585</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3444535%2F5268fa5f-b804-4475-9fe6-c20f56b30a21.jpeg</url>
      <title>DEV Community: Dhritiraj Nath</title>
      <link>https://dev.to/dhritiraj_nath_212b175585</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dhritiraj_nath_212b175585"/>
    <language>en</language>
    <item>
      <title>Docker vs Kubernetes: Stop Comparing Them the Wrong Way! 🐳☸️</title>
      <dc:creator>Dhritiraj Nath</dc:creator>
      <pubDate>Fri, 24 Jul 2026 13:32:56 +0000</pubDate>
      <link>https://dev.to/dhritiraj_nath_212b175585/docker-vs-kubernetes-stop-comparing-them-the-wrong-way-2m9b</link>
      <guid>https://dev.to/dhritiraj_nath_212b175585/docker-vs-kubernetes-stop-comparing-them-the-wrong-way-2m9b</guid>
      <description>&lt;p&gt;When I first started learning Docker, I thought, "If Docker can do all of this, then why do we even need Kubernetes?" 🤔&lt;/p&gt;

&lt;p&gt;But after learning and understanding both Docker and Kubernetes, I realized that they are not really competitors, they solve different problems and are often used together.&lt;/p&gt;

&lt;p&gt;So, in this blog, I'll share what I learned and explain the main differences between Docker and Kubernetes in a simple and beginner-friendly way.&lt;/p&gt;

&lt;p&gt;First lets get an overview of what is Docker and Kubernetes -&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker (Container Platform):&lt;/strong&gt; Docker provides tools to build, run, and manage containers. In simple terms, Docker allows you to package your application along with all its required dependencies and configuration into a container. This makes the application lightweight, portable, and easier to run consistently across different environments and machines.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes (Container Orchestration Platform):&lt;/strong&gt; Kubernetes is a platform used to manage and orchestrate containers at scale. Orchestration means that Kubernetes can automatically handle tasks such as scaling applications, managing networking, restarting failed containers, and distributing workloads across multiple machines in a cluster. This helps applications run reliably and efficiently.&lt;/p&gt;

&lt;p&gt;Now, let's come to the main point: &lt;strong&gt;What are the differences between Docker and Kubernetes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are mainly &lt;strong&gt;four key areas&lt;/strong&gt; where Kubernetes provides capabilities beyond Docker's basic container-management workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Single-Host Nature.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto-Healing.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Auto-Scaling.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Enterprise-Level Support.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, let's take a closer look at each of these points and understand them briefly.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. &lt;strong&gt;Single-Host Nature:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Docker containers typically run on a single host. If one container consumes excessive CPU or memory resources, it can affect the performance of other containers running on the same host. In extreme cases, it can even cause other containers to crash or become unresponsive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes Solution (Cluster Architecture):&lt;/strong&gt; Kubernetes manages applications across a cluster, which is a group of nodes (machines). If a node becomes unhealthy or fails, Kubernetes can automatically reschedule the affected workloads onto healthy nodes, helping the application remain available.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. &lt;strong&gt;Auto-Healing:&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Docker does not automatically scale based on traffic. During high load(for example: A festival season).You would have to manually create more containers and configure load balancers(It is a system that distributes incoming network traffic across multiple servers or containers so that no single server gets overloaded).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes Solution:&lt;/strong&gt; Kubernetes provides &lt;strong&gt;Auto-Healing&lt;/strong&gt;. If a container or "Pod" starts to fail, the API server detects it and rolls out a new one automatically before the user even notices&lt;/p&gt;

&lt;h2&gt;
  
  
  3. &lt;strong&gt;Auto-Scaling&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; With basic Docker, containers do not automatically scale based on application demand. During periods of high traffic, such as a festival season, you may need to manually create additional containers and configure a load balancer to distribute the incoming traffic.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes Solution:&lt;/strong&gt; Kubernetes provides multiple ways to scale applications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manual Scaling:&lt;/strong&gt; You can easily increase or decrease the number of Pod replicas by updating the Kubernetes configuration. For example, you can change the number of replicas from &lt;strong&gt;1 to 10&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Horizontal Pod AutoScaler(HPA):&lt;/strong&gt; HPA can automatically increase or decrease the number of Pod replicas based on resource utilization, such as CPU or memory usage. For example, if CPU utilization reaches a configured threshold, Kubernetes can create additional Pods to handle the increased workload.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. &lt;strong&gt;Enterprise-Level Support&lt;/strong&gt;
&lt;/h2&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Docker is primarily a container platform focused on building, running, and managing containers. By itself, Docker does not provide a complete set of advanced orchestration and production-management features needed to operate complex applications at large scale. Organizations often need additional tools for load balancing, networking, security, API management, and other enterprise requirements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kubernetes Solution:&lt;/strong&gt; Kubernetes was originally developed by Google and is heavily influenced by Google's experience with its internal cluster-management system, &lt;strong&gt;Borg&lt;/strong&gt;. Kubernetes is designed to manage containerized applications in production environments and provides a powerful ecosystem that can be extended through various tools and integrations.&lt;/p&gt;

&lt;p&gt;Some of its capabilities include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Load Balancing and Service Discovery:&lt;/strong&gt; Kubernetes can expose applications and distribute traffic across multiple Pods using Services and Ingress.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security and Access Control:&lt;/strong&gt; Kubernetes provides features such as &lt;strong&gt;Role-Based Access Control (RBAC)&lt;/strong&gt;, network policies, and Secrets to help secure applications and control access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Resource Definitions (CRDs):&lt;/strong&gt; CRDs allow developers and organizations to extend Kubernetes by creating custom resources and building their own Kubernetes-native functionality.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Extensible Ecosystem:&lt;/strong&gt; Kubernetes supports integrations with various tools for API gateways, ingress controllers, monitoring, logging, security, and cloud services. For example, &lt;strong&gt;NGINX Ingress Controller&lt;/strong&gt; can be used to manage external HTTP/HTTPS traffic entering a Kubernetes cluster.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Learn Kubernetes Architecture : In different way</title>
      <dc:creator>Dhritiraj Nath</dc:creator>
      <pubDate>Sun, 15 Mar 2026 16:31:15 +0000</pubDate>
      <link>https://dev.to/dhritiraj_nath_212b175585/learn-kubernetes-architecture-in-different-way-2pm2</link>
      <guid>https://dev.to/dhritiraj_nath_212b175585/learn-kubernetes-architecture-in-different-way-2pm2</guid>
      <description>

&lt;p&gt;Welcome to my vlog , I am continuing my DevOps journey and this is my first vlog . The only prerequisites before you moving forward in this vlog    is basic knowledge of Docker. And do not worry if you do not know about Kubernetes architecture before I am very sure that you will understand everything.&lt;br&gt;
Today we are going to learn about the Architecture of Kubernetes(K8S).&lt;br&gt;
&lt;strong&gt;Kubernetes is mainly split into two major parts:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The control plane&lt;/strong&gt; (Master or the Manager of Kubernetes or you can assume it as brain of Kubernetes)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Data Plane&lt;/strong&gt; (Worker Nodes or who is actually building the application)&lt;/p&gt;

&lt;p&gt;Now lets talk about the Workers or Data plane first. &lt;strong&gt;Data plan includes   mainly 3 components:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Kubelet:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; it acts like a &lt;em&gt;captain&lt;/em&gt; of the worker node. It ensures that pods are running and healthy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Auto healing node:&lt;/strong&gt; If a pod stops running , the Cubelet informs the control plain(the brain) to take necessary action(like restarting or recreating it).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Kube Proxy (Q Proxy):&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; Handles networking for the pods.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Mechanism:&lt;/strong&gt; It uses IP tables(Linux network rules that send traffic from a Service to the correct Pod) on the linux host to manage IP address allocation and basic load balancing .(eg: Splitting traffic between multiple replicas of a pod) &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Container Runtime:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; It is basically the execution environment that actually runs the container.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Flexibility:&lt;/strong&gt; Unlike Docker, which mainly uses its built-in runtime stack(means Docker already has a fixed set of runtimes inside it, so you normally don’t choose or change them.), Kubernetes supports multiple runtimes via Container Runtime Interface (CRI).Examples include containerd, CRI-O, and earlier Docker via Dockershim.&lt;/p&gt;

&lt;p&gt;Now lets talk about the Master or &lt;em&gt;&lt;strong&gt;Control plane&lt;/strong&gt;&lt;/em&gt; . &lt;strong&gt;Control plan includes   mainly 5 components:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. API Server:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; This the entry point for all administrative tasks. It exposes the Kubernetes API to the external world(users, CLI etc).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Core Rule:&lt;/strong&gt; Every single request goes through the API server first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Scheduler:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; This basically decides in which worker node a pod should be placed on based on resource availability(eg: If node 1 is, put the pod there).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.ETCD:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; A distributed Key-value store that acts as the backing store for all cluster data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Importance:&lt;/strong&gt; It holds the entire state of the cluster, Without it you cannot restore or manage the cluster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4.Controller Manager:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; It is responsible for maintaining the Desired State. It constantly compares what is running(current state) against what you asked for in your YAML files(Desired State).&lt;br&gt;
     If there is mismatch (eg: a pod crashes), the controller manager is responsible for identifying the failure and triggering the fix.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5.Cloud Controller Manager(CCM):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Role:&lt;/strong&gt; This is a specific component that bridges the gap between Kubernetes and underlying cloud providers like AWS(EKS), Azure(AKS), Google Cloud(GKE).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsibility:&lt;/strong&gt; It translates generic Kubernetes request into specific cloud API calls&lt;br&gt;
    Example: If you request a "Load Balancer" in Kubernetes, the CCM translates this into a request to create an AWS ELB or an Azure Load Balancer&lt;br&gt;
&lt;strong&gt;NOTE:&lt;/strong&gt;If you are running Kubernetes "On Premises"(on your server not in cloud) this component is not required.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  That's it! I hope you understand each component of Kubernetes. Thank you. 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>architecture</category>
      <category>beginners</category>
      <category>devops</category>
      <category>kubernetes</category>
    </item>
  </channel>
</rss>
