1. User Sends a Request
The user initiates the process by accessing the application URL, e.g. https://myapp.example.com. This request traverses the internet towards the Kubernetes cluster entry point.
2. DNS Resolves the Domain
The DNS server resolves the domain name myapp.example.com into the public IP of the Load Balancer. Common DNS services used include Azure DNS, Route 53, and Google Cloud DNS.
3. Load Balancer
A Layer 4 (L4) Load Balancer forwards traffic based on IP and port to the Ingress Controller inside the Kubernetes cluster. Examples include Azure Load Balancer and AWS ELB.
4. Ingress Controller
The Ingress Controller performs Layer 7 (HTTP/HTTPS) routing based on rules regarding hostnames and paths. It also handles SSL/TLS termination for secure traffic. Popular ingress controllers include NGINX Ingress, Traefik, and Istio Gateway.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: myapp-ingress
spec:
rules:
- host: myapp.example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: backend-service
port:
number: 8080
5. Kubernetes Service
Kubernetes Services route incoming requests to the appropriate Pods via labels and selectors. They provide load balancing and stable IP/port access. Common Service types include ClusterIP, NodePort, and LoadBalancer.
apiVersion: v1
kind: Service
metadata:
name: backend-service
spec:
selector:
app: backend
ports:
- protocol: TCP
port: 8080
targetPort: 8080
6. Pods Process the Request
Pods host the actual application containers which fulfill the incoming requests. They run the business logic and manage state as needed.
7. Backend Communication
Pods may communicate internally with other microservices, databases, or caching layers using internal DNS and service mesh technologies like Istio or Linkerd for security, retries, and traffic shaping.
8. Response to the User
The response generated by the Pods flows back through the Service → Ingress Controller → Load Balancer → User, completing the request lifecycle visibly and securely.