AWS Load Balancer Controller - External DNS & Service for PeakPulse Retail
AMJ Cloud Technologies deployed External DNS with a Kubernetes LoadBalancer Service on EKS for PeakPulse Retail, enabling automated Route 53 DNS records for a secure e-commerce microservice.
Technologies
Challenges
Solutions
Key Results
Handled high traffic for e-commerce microservice
scalability achievement
Fully automated DNS and LoadBalancer Service setup
automation level
Enhanced access with health checks and secure DNS
security improvement
Deploying External DNS and LoadBalancer Service for PeakPulse Retail
AMJ Cloud Technologies partnered with PeakPulse Retail, an e-commerce company, to enhance their AWS Elastic Kubernetes Service (EKS) cluster by deploying a Kubernetes LoadBalancer Service integrated with External DNS. This project automated Route 53 DNS record creation for a single DNS name (externaldns-k8s-service-demo.peakpulseretail.com) to expose PeakPulse’s frontend microservice using an Application Load Balancer (ALB). The solution replaced manual DNS management, improved scalability, and ensured secure access for their e-commerce platform.
Situation
PeakPulse Retail needed to expose their frontend microservice with a custom DNS name to handle growing customer traffic. Their existing setup relied on manual Route 53 DNS configurations, which were error-prone and time-consuming. AMJ was tasked with automating DNS registration using External DNS and a Kubernetes LoadBalancer Service, ensuring seamless integration with the AWS Load Balancer Controller for secure, scalable access to their e-commerce application.
Task
The objectives were to:
- Create a Kubernetes Service of type LoadBalancer for the frontend microservice.
- Annotate the Service with an External DNS hostname (
externaldns-k8s-service-demo.peakpulseretail.com) for Route 53 integration. - Deploy and verify Kubernetes manifests.
- Automate Route 53 DNS record creation using External DNS.
- Test application access via the registered DNS name.
- Complete the project within one month.
Action
Our team executed the following steps, adhering to AWS and Kubernetes best practices:
Prerequisites
- Used PeakPulse’s EKS cluster (
ecommerce-cluster, version 1.31) with the AWS Load Balancer Controller (v2.8.0) installed:helm install load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=ecommerce-cluster --set image.tag=v2.8.0 - Installed External DNS on the EKS cluster:
helm install external-dns external-dns/external-dns -n kube-system --set provider=aws --set aws.region=us-east-1
Deploy Frontend Microservice
- Deployed PeakPulse’s frontend microservice with a ClusterIP Service and Deployment:
apiVersion: apps/v1 kind: Deployment metadata: name: frontend-deployment spec: replicas: 1 selector: matchLabels: app: frontend template: metadata: labels: app: frontend spec: containers: - name: frontend image: nginx:latest ports: - containerPort: 80 - Configured a LoadBalancer Service with External DNS annotations:
apiVersion: v1 kind: Service metadata: name: frontend-loadbalancer-service annotations: external-dns.alpha.kubernetes.io/hostname: externaldns-k8s-service-demo.peakpulseretail.com service.beta.kubernetes.io/aws-load-balancer-type: external service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing alb.ingress.kubernetes.io/healthcheck-path: /frontend/index.html spec: type: LoadBalancer selector: app: frontend ports: - port: 80 targetPort: 80 - Applied manifests:
kubectl apply -f manifests/
Deploy and Verify
- Verified Kubernetes resources:
kubectl get deploy,pods,svc - Checked External DNS logs for Route 53 record creation:
kubectl logs -f $(kubectl get po -n kube-system | egrep -o 'external-dns[A-Za-z0-9-]+') - Confirmed Route 53 record set for
externaldns-k8s-service-demo.peakpulseretail.comin the AWS Console. - Verified ALB settings in the AWS Console (EC2 > Load Balancers).
Test Application Access
- Performed DNS resolution test:
nslookup externaldns-k8s-service-demo.peakpulseretail.com - Verified HTTP access to the frontend microservice:
http://externaldns-k8s-service-demo.peakpulseretail.com/frontend/index.html
Result
The project delivered an automated, scalable solution for PeakPulse Retail:
- Scalability Achievement: Handled high traffic for PeakPulse’s frontend microservice with an ALB-backed LoadBalancer Service.
- Automation Level: Fully automated DNS and LoadBalancer Service setup via External DNS and Kubernetes manifests.
- Security Improvement: Enhanced access with health checks and secure DNS registration.
Technologies Used
- AWS EKS
- AWS Load Balancer Controller
- Kubernetes Service
- External DNS
- Application Load Balancer
- AWS Route 53
Key Takeaways
This case study highlights AMJ Cloud Technologies’ expertise in automating DNS management for PeakPulse Retail’s e-commerce platform. The External DNS integration with a Kubernetes LoadBalancer Service streamlined Route 53 record creation, ensuring scalable and secure access, offering a model for similar industries.
Need a Similar Solution?
I can help you design and implement similar cloud infrastructure and DevOps solutions for your organization.