Posts

AWS Load Balancer Controller Upgrade Guide: v2.x to v3.3

Image
AWS Load Balancer Controller Upgrade Guide: v2.x to v3.3 What is AWS Load Balancer Controller? AWS Load Balancer Controller is a Kubernetes controller that integrates Amazon EKS with AWS Elastic Load Balancing services. It watches Kubernetes resources and automatically creates or updates AWS load balancing resources based on the desired state defined inside the cluster. Instead of manually creating load balancers, listeners, target groups, and security group rules in AWS, teams can define Kubernetes resources such as Ingresses and Services. The controller then reconciles those resources with AWS. What Does It Manage? AWS Load Balancer Controller commonly manages: Application Load Balancers (ALB) Network Load Balancers (NLB) Listeners and listener rules Target groups Target registration and deregistration Security group rules Ingress resources TargetGroupBinding resources Beca...

How HTTP and HTTPS Traffic Flows Through an AWS ALB to EKS

Image
How HTTP and HTTPS Traffic Flows Through an AWS ALB to EKS When an application runs in Amazon EKS , users normally don’t connect directly to Kubernetes Pods. An AWS Application Load Balancer (ALB) sits in front of the application and receives incoming traffic. But where exactly are HTTP and HTTPS used? And if the user connects over HTTPS, does that mean the traffic stays HTTPS all the way to the Pod? Let’s follow one request from the browser to an application running in EKS. Imagine an application running with multiple Pods: The Basic Traffic Flow The ALB provides the entry point for traffic coming from outside the Kubernetes cluster. Before looking deeper into this flow, let's understand HTTP and HTTPS. What Is HTTP? HTTP Hypertext Transfer Protocol  is a protocol used by clients and servers to communicate. For example : http://app.example.com HTTP traffic is not encrypted. That means we generally don't want sensitive information such as passwords, authentication tokens,...

HTTP vs HTTPS : What’s the Difference?

Image
HTTP vs HTTPS : What’s the Difference?   Every time you open a website, use a mobile app, or call an API, a client and a server need a way to communicate. One of the most common ways they communicate is through HTTP. But when we browse the web today, we usually see HTTPS instead. So what is the difference?     What is HTTP?  HTTP stands for HyperText Transfer Protocol. Simply put, HTTP defines how a client sends a request to a server and how the server sends a response back. For example, imagine opening a restaurant menu online. Your browser might ask:  GET /menu The server receives the request and responds:  200 OK  The communication looks like this:  HTTP is the conversation happening between the client and server. By default, HTTP commonly uses port 80 .   The problem with HTTP HTTP by itself does not encrypt the communication .Think of it like sending a postcard. The message gets to its destination, but the contents aren't protected ...

☸️ Kubernetes Deployments vs. Argo Rollouts: How Traffic Really Switches Between Old and New Versions

Kubernetes Deployments vs. Argo Rollouts: How Traffic Really Switches Between Old and New Versions When I first started learning Kubernetes deployments, I understood the concepts of Rolling Update , Blue-Green , and Canary . But one question kept bothering me: How does Kubernetes actually switch users from the old version to the new version? Does it change the Service? Does it move traffic? Does it kill old pods first? After digging into Kubernetes and Argo Rollouts, I realized that understanding ReplicaSets, Services, and readiness probes makes everything much easier. Let's walk through it step by step. Standard Kubernetes Deployment A normal Kubernetes deployment uses a Deployment resource.  kind: Deployment The Deployment controller is responsible for updating your application. Suppose your application is currently running Version 1. Users │ Kubernetes Service │ ReplicaSet (Version 1) ├── ...

☸️ Understanding Kubernetes Service Account Tokens in EKS

Understanding Kubernetes Service Account Tokens in EKS When a Kubernetes pod starts, it usually needs a way to securely communicate with the Kubernetes API Server. To make this possible, Kubernetes automatically creates and mounts a temporary authentication token into the pod. What Is kube-api-access? Inside every pod, Kubernetes creates a special volume like: kube-api-access-xxxxx This volume contains: Service Account Token (JWT) Cluster CA Certificate Namespace Information These files are mounted inside the container at: /var/run/secrets/kubernetes.io/serviceaccount/ How Pod Authentication Works Pod Starts ↓ Kubelet prepares pod ↓ Kubelet requests token from API Server ↓ API Server signs JWT token ↓ Token mounted into pod ↓ Container starts successfully What Is the Token? The token is a JWT (JSON Web Token) used for Kubernetes authentication. It identifies the pod and its service account. Example: { "na...

☁️ Amazon S3 Explained: More Than Just Object Storage

Amazon S3 Explained: More Than Just Object Storage When people hear Amazon S3 , they usually think it is only used to store files like images, logs, backups, or documents. That is true, but S3 has grown into much more than simple object storage. Today, S3 can be used for object storage, file-like access, immutable backups, lifecycle management, static websites, event-driven workflows, analytics, and data lake storage. In this post, let us understand what S3 is and how it is used in real-world AWS environments. 1. What is Amazon S3? Amazon S3 stands for Simple Storage Service . It is mainly an object storage service . In S3, data is stored as objects inside buckets. Bucket → Object Each object usually contains: The actual data Metadata A unique object key Example: Bucket name: my-app-logs Object key: logs/2026/app.log Even though this looks like a folder path, S3 does not work like a traditional filesystem internally. The folder-like str...

☸️ CoreDNS and AWS VPC CNI in EKS

CoreDNS vs AWS VPC CNI in EKS: What Each Component Actually Does When working with Amazon EKS , two important components help your Kubernetes cluster communicate properly: CoreDNS and AWS VPC CNI . Both are part of the networking story, but they do very different jobs. CoreDNS helps pods find services by name, while AWS VPC CNI gives pods network connectivity using IP addresses from your AWS VPC. In simple words: CoreDNS answers: “What IP address belongs to this service name?” AWS VPC CNI answers: “How does traffic reach that pod over the network?” 1. What is CoreDNS? CoreDNS is the DNS server used inside Kubernetes. Its main job is to resolve Kubernetes service names into IP addresses. For example, if one pod wants to call another service using a name like: user-service.default.svc.cluster.local CoreDNS resolves that service name into the correct Kubernetes service IP. What CoreDNS Does Resolves Kubernetes service names Supports pod-to...

☸️ Understanding Kubernetes Probes

Understanding Kubernetes Probes Understanding Kubernetes Probes Kubernetes doesn’t just run your application — it constantly checks if your app is healthy and ready. This is done using Probes . Probes tell Kubernetes: Is the app alive? Is the app ready to receive traffic? Has the app finished starting? There are 3 Types of Probes Startup Probe → “Has the app started?” Readiness Probe → “Can it receive traffic?” Liveness Probe → “Is it still alive?” 1. Startup Probe Startup probe is used when your application takes time to boot. While startup probe is running, Kubernetes will NOT run readiness or liveness probes. Pod starts ↓ startupProbe runs ↓ If success → move to readiness If failure → keep retrying startupProbe: httpGet: path: /healthz/ port: 8000 failureThreshold: 20 periodSeconds: 15 Best for slow-starting apps (DB connections, migrations, etc.) 2. Readiness Probe Readiness probe determines...

🌐 What Happens When You Type a URL in the Browser?

What Happens When You Type a URL in the Browser? When you type a website like xxxxggg.com in your browser, a lot of steps happen behind the scenes in milliseconds. Your browser does not directly understand domain names. It needs to convert the domain into an IP address and then communicate with the server. Step 1: Browser Checks Cache The browser first checks if it already knows the IP address. Browser cache OS cache If found → skip DNS lookup Step 2: DNS Resolution If the IP is not cached: Browser → /etc/resolv.conf → DNS server The DNS server returns: xxxxggg.com → 142.x.x.x Step 3: TCP Connection Now the browser connects to the server using the IP address. Browser → Server IP (Port 80 or 443) This uses TCP (a reliable connection). Step 4: TLS Handshake (HTTPS only) If the site uses HTTPS: Browser verifies SSL certificate Secure connection is established This step ensures the communication is encrypted and safe...

🌐 What is HTTP and HTTPS?

What is HTTP and HTTPS? What Is HTTP and HTTPS? When you open a website, your browser needs a way to talk to the server. That communication happens using a protocol. Two common ones are HTTP and HTTPS . Simple idea: HTTP is the normal way a browser talks to a website. HTTPS is the secure version of that communication. What Is HTTP? HTTP stands for HyperText Transfer Protocol . It is a set of rules used by browsers and servers to exchange data. Example: http://example.com With HTTP, the browser sends a request to the server, and the server sends back a response. Browser → Request → Server Browser ← Response ← Server What Is the Problem with HTTP? HTTP is not secure because the data is sent in plain text. That means someone in the middle could potentially read the data. username=rekha password=1234 With HTTP, sensitive information can be ex...

☸️ How /etc/resolv.conf Works in Kubernetes

How This Works in Kubernetes Now that we understand /etc/resolv.conf on a laptop, let’s see how the same concept works inside Kubernetes. Even inside a Kubernetes Pod, the system still uses /etc/resolv.conf . But instead of pointing to Google DNS or your router, it points to an internal DNS service. Example Inside a Pod Run this inside a Pod: kubectl exec -it <pod> -- cat /etc/resolv.conf You might see: nameserver 1xx.xx.0.10 search default.svc.cluster.local svc.cluster.local cluster.local options ndots:5 What Changed? nameserver → now points to CoreDNS search → helps resolve internal service names What is CoreDNS? CoreDNS is the DNS server inside Kubernetes. It knows how to resolve service names like user-service . --- Real Example in Kubernetes App inside Pod ↓ Checks /etc/resolv.conf ↓ Finds nameserver (CoreDNS) ↓ Asks: "What is user-service?" ↓ CoreDNS responds: user-service.default.svc.cl...

Why Do We Need /etc/resolv.conf?

Why Do We Need /etc/resolv.conf ? When we use a website name like google.com , our computer cannot use that name directly. A computer really wants an IP address, something like 142.250.x.x . So the real question becomes: How does the computer know where to ask for that IP address? The Problem Humans like names such as: google.com github.com amazon.com But computers work with IP addresses. That means every time you use a domain name, your system has to convert that name into an IP address. The Role of /etc/resolv.conf The file /etc/resolv.conf tells your system which DNS server it should ask. It usually looks something like this: nameserver 8.8.8.8 nameserver 1.1.1.1 This means: “If I do not know the IP address for a website, ask 8.8.8.8 first. If that does not work, ask 1.1.1.1 .” A Real Example Let’s say you open: github....