Kubernetes Deployment: Rolling Updates, Rollbacks, and Real Examples
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 # Kubernetes Deployment: Rolling Updates, Rollbacks, and Real Examples A **Kubernetes Deployment** is one of the most essential and widely used resources in the Kubernetes ecosystem. It simplifies the management of your application lifecycle — from deploying and scaling to updating and rolling back. In this post, you’ll learn: * What a Deployment is * How it differs from ReplicaSet * How to define and apply a Deployment using YAML * How Kubernetes performs rolling updates and supports rollbacks * Real-world `kubectl` commands and use cases --- ## Table of Contents {% toc %} --- ## 1. What Is a Kubernetes Deployment? A Deployment is a **higher-level controller** that manages a ReplicaSet for you. It lets you: * Run multiple identical Pods (replicas) * Update your app version automatically * Roll back if something goes wrong * Ensure your app stays available during changes In short, it’s your go-to tool for **production-grade app delivery**. --- ## 2. Deployment vs ReplicaSet | Feature | ReplicaSet | Deployment | | -------------- | --------------------- | -------------------------------------- | | Manages Pods | Yes | Yes (via ReplicaSet) | | Rolling Update | No | Yes | | Rollback | No | Yes (previous ReplicaSet is preserved) | | Use Case | Manual pod management | Declarative, versioned app management | --- ## 3. Deployment YAML Example Here’s a minimal Deployment definition: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.21 ports: - containerPort: 80 Key fields explained: replicas: Number of desired Pods selector: How the Deployment finds Pods to manage template: The actual Pod configuration 4. Creating and Managing a Deployment Create: 1 kubectl apply -f nginx-deployment.yaml View status: 1 2 3 kubectl get deployments kubectl get rs kubectl get pods 5. Performing a Rolling Update To update the container image: ...
Kubernetes Resources: Understanding ReplicaSet
Kubernetes Resources: Understanding ReplicaSet Question: “How can I ensure a specific number of Pods always run in my Kubernetes cluster?” A ReplicaSet ensures that a defined number of identical Pods are running at all times. If a Pod fails or a node crashes, the ReplicaSet automatically creates a replacement, guaranteeing application availability. Table of Contents {% toc %} 1. What Is a ReplicaSet? A ReplicaSet is a Kubernetes resource that maintains a stable set of running Pods. Its primary goal is to ensure the specified number of Pod replicas (replicas) are always available. ...
Kubernetes Networking: Understanding the Network Model
Kubernetes Networking: Understanding the Network Model Question: “How do Pods, nodes, and Services communicate within a Kubernetes cluster?” Kubernetes networking is built on the network model, which defines how Pod-to-Pod, Pod-to-Service, and external-to-internal communication works. This model involves components like CNI plugins (Flannel, Calico), CoreDNS, and service discovery mechanisms. In this post, you’ll learn: The core concepts of the Kubernetes network model How Pods communicate with each other Node-to-node networking and the role of CNI plugins How Services and DNS interact with Pods Table of Contents What Is the Kubernetes Network Model? Pod-to-Pod Communication Node-to-Node Networking What Is CNI (Container Network Interface)? Services and DNS Integration Hands-On: Testing Pod Communication FAQ (Answer Engine Optimization) Key Takeaways Final Thoughts 1. What Is the Kubernetes Network Model? Kubernetes follows a simple but powerful rule: ...
Kubernetes Networking: Service Types Summary
Kubernetes Networking: Service Types Summary Question: “Which Kubernetes Service type should I use for my application?” In this post, we summarize the four main Service types — ClusterIP, NodePort, LoadBalancer, and ExternalName — and explain their key features, use cases, and differences. We’ll also provide a quick decision guide for choosing the right Service type. Table of Contents {% toc %} 1. Service Types Overview Type Access Scope Typical Use Case ClusterIP Internal cluster Service-to-service traffic NodePort External via Node IP Development & testing LoadBalancer External via LB Cloud-based production apps ExternalName DNS mapping External API integration 2. ClusterIP Summary Default Service type in Kubernetes. Accessible only within the cluster. Ideal for backend microservices and internal APIs. Example: ...
Kubernetes Networking: Exploring Service Resources
Kubernetes Networking: Exploring Service Resources Question: “How do you expose Pods to stable network endpoints in Kubernetes?” Pods in Kubernetes have dynamic IP addresses, which can change when a Pod restarts. To ensure consistent access and load balancing, Kubernetes provides a Service resource. In this post, you will learn: What a Kubernetes Service is and why it’s needed How Services communicate with Pods Service types: ClusterIP, NodePort, and LoadBalancer YAML configuration examples 1. What Is a Kubernetes Service? A Service is a stable networking abstraction that provides a fixed endpoint for a group of Pods, even if Pod IP addresses change. ...
Kubernetes ConfigMap and Secret: How to Pass Data to Pods
Kubernetes ConfigMap and Secret: How to Pass Data to Pods Question: “How do I pass environment variables or sensitive data to a Kubernetes Pod?” Hardcoding configuration values or secrets inside container images is a bad practice. It complicates updates, poses security risks, and reduces flexibility. Kubernetes solves this problem with ConfigMaps and Secrets, which allow you to manage application configuration and sensitive data securely. Table of Contents 1. What Is a ConfigMap? A ConfigMap stores non-sensitive configuration data as key-value pairs. ...
Kubernetes Pod Resource Management: Requests, Limits, and QoS
Kubernetes Pod Resource Management: Requests, Limits, and QoS Question: “How do I control CPU and memory usage for Pods in Kubernetes?” If resource limits are not set, a single Pod can consume excessive CPU or memory, causing instability across the cluster. Kubernetes provides Requests and Limits to manage resources effectively.
Kubernetes Volumes Explained: How Pods Store and Share Data
Kubernetes Volumes Explained: How Pods Store and Share Data Question: “How do Pods keep their data persistent in Kubernetes?” Containers are ephemeral by design — when a container restarts, its data is lost. To solve this, Kubernetes provides Volumes, a mechanism for Pods to store and share data reliably. In this post, you will learn: What Volumes are and why they’re needed Different types of Kubernetes Volumes How to configure PersistentVolumes (PV) and PersistentVolumeClaims (PVC) Practical YAML examples for Pod storage Table of Contents 1. What Is a Volume in Kubernetes? A Volume is a storage abstraction that can be mounted to one or more containers inside a Pod. ...
Kubernetes Multi-Container Pods: Why One Container Isn’t Enough
Kubernetes Multi-Container Pods: Why One Container Isn’t Enough Question: “Why would I need multiple containers inside a single Pod?” While most Pods have just one container, real-world applications often require additional helper containers for logging, monitoring, proxying, or data transformation. Kubernetes supports this pattern with multi-container Pods. 1. What Are Multi-Container Pods? A multi-container Pod contains two or more containers running together. These containers share: Same network namespace (localhost) Shared storage volumes Lifecycle (start/stop together) 2. Why Use Multi-Container Pods? Multi-container Pods are useful when: ...
Kubernetes Pod Labels: A Complete Guide with Selectors and Examples
Kubernetes Pod Labels: A Complete Guide with Selectors and Examples What are labels in Kubernetes and why are they so important? Labels are not just decorative tags — they are the foundation for resource selection, grouping, and service routing. In this post, you’ll learn: What Kubernetes labels are and why they matter How to add, update, and query labels How selectors work with labels Best practices for designing labels FAQs for common real-world scenarios Table of Contents 1. What Are Kubernetes Labels? A label is a key-value pair attached to Kubernetes resources (Pods, Services, Deployments, etc.). Labels allow you to: ...