AWS + Kubernetes Deployment Portfolio

A live containerized application deployed on AWS using EC2, ECR, K3s, Kubernetes Deployments, Services, and Ingress.

View GitHub
Click "Live API Check"

Live System Status

K3s Cluster
Running
Frontend
Nginx container
Backend API
Flask service
Container Registry
Amazon ECR

Architecture Overview

Browser ↓ Route 53 Domain ↓ EC2 Public Instance ↓ K3s + Traefik Ingress ↓ Frontend Service / Backend Service ↓ Pods (Docker containers from ECR)

What This Project Demonstrates

AWS Infrastructure
EC2, ECR, Route 53, networking
Kubernetes
Deployments, Services, Ingress, imagePullSecrets
Containers
Docker, Buildx, amd64 builds
Troubleshooting
Real-world debugging across stack layers

Troubleshooting Wins

Deployment Automation Workflow

Created a repeatable deployment script that authenticates to AWS, rebuilds and pushes the frontend image to Amazon ECR, refreshes Kubernetes registry credentials, restarts the deployment, and verifies the live container content.

HTTP to HTTPS Security Upgrade

Upgraded the live site from unsecured HTTP to HTTPS using Traefik and Let’s Encrypt, improving transport security and creating a more production-ready deployment.

Private ECR Pull Authentication

Resolved 403 Forbidden and ImagePullBackOff errors by recreating Kubernetes image pull secrets and validating ECR authentication.

Cross Platform Container Builds

Fixed platform mismatch from Apple Silicon by rebuilding linux/amd64 images using Docker Buildx.

Kubernetes Image Reference Issues

Resolved InvalidImageName errors by correcting ECR image references in deployment manifests.

K3s Kubeconfig Permissions

Resolved permission issues accessing cluster config by correctly handling K3s kubeconfig permissions.