Deploy enterprise-scale data infrastructure on Amazon EKS with CNCF-native patterns, battle-tested configurations, and day-1 operational readiness.
Data on EKS (DoEKS) is an opinionated infrastructure framework that combines the power of Cloud Native Computing Foundation (CNCF) projects with deep AWS integration to deliver production-ready data platforms on Amazon EKS.
CNCF Ecosystem
AWS Integration
Infrastructure as Code
Production Patterns
Pre-configured with sane defaults for 80% use cases. Fully customizable via Terraform variables and Helm values. Modular architecture - adopt incrementally.
IAM Roles for Service Accounts (IRSA) for pod-level permissions. Private VPC with NAT gateways, security groups. Encryption at rest (EBS/EFS with KMS).
Karpenter for intelligent node provisioning (Spot + On-Demand). Right-sized instance recommendations. Auto-scaling with predictive capacity planning.
Prometheus + Grafana with pre-built dashboards. Application-specific metrics (Spark, Flink, Kafka). CloudWatch integration for AWS-native tooling.
Spark, Kafka, Airflow configurations • Custom Helm values • Job examples and blueprints
Terraform modules (/infra/terraform/) • EKS, VPC, IAM, Karpenter • ArgoCD addon deployment
Amazon EKS managed control plane • EC2, VPC, S3, CloudWatch • IAM, KMS, Secrets Manager
Production-ready data platforms with complete deployment guides, examples, and best practices
Required Tools:
# Verify installations
aws --version # AWS CLI v2.x
terraform --version # Terraform >= 1.0
kubectl version # kubectl >= 1.28
helm version # Helm >= 3.0
AWS Setup:
AdministratorAccess or custom policy for VPC/EKS/IAM creationaws configure or AWS_PROFILE environment variableus-west-2, us-east-1, eu-west-1)# Clone repository
git clone https://github.com/awslabs/data-on-eks.git
cd data-on-eks/data-stacks/spark-on-eks
# Review configuration
cat terraform/data-stack.tfvars
Key Configuration Options:
# terraform/data-stack.tfvars
# Required
region = "us-west-2" # AWS region
name = "spark-on-eks" # Cluster name (must be unique)
# Core addons (recommended for all stacks)
enable_karpenter = true # Node autoscaling
enable_aws_load_balancer_controller = true # ALB/NLB support
enable_kube_prometheus_stack = true # Monitoring
# Spark-specific addons
enable_spark_operator = true # Spark Operator (Kubeflow)
enable_spark_history_server = true # Spark UI persistence
enable_yunikorn = true # Advanced scheduling
# Automated deployment (validates prerequisites)
./deploy.sh
# Manual deployment (for advanced users)
cd terraform
terraform init
terraform plan -var-file=data-stack.tfvars
terraform apply -var-file=data-stack.tfvars -auto-approve
Deployment Timeline:
# Configure kubectl
export CLUSTER_NAME=spark-on-eks
export AWS_REGION=us-west-2
aws eks update-kubeconfig --region $AWS_REGION --name $CLUSTER_NAME
# Verify nodes (Karpenter-managed)
kubectl get nodes
# Check addon deployments
kubectl get pods -A
# Verify Spark Operator
kubectl get crd sparkapplications.sparkoperator.k8s.io
kubectl get pods -n spark-operator
# Submit Spark Pi calculation job
kubectl apply -f examples/pyspark-pi-job.yaml
# Watch job progress
kubectl get sparkapplications -w
# View driver logs
kubectl logs spark-pi-driver
# Check Spark History Server (if enabled)
kubectl port-forward -n spark-operator svc/spark-history-server 18080:80
# Open: http://localhost:18080
Data on EKS is CNCF-native, using cloud-native patterns while optimizing for AWS:
Portability
Run anywhere Kubernetes runs (on-prem, multi-cloud)
Community Innovation
Benefit from thousands of contributors
AWS Optimization
Tight integration with EKS, S3, IAM, CloudWatch
Hybrid Workloads
Mix open-source (Spark) + managed (EMR on EKS)
Development
Staging
Production
Karpenter Best Practices:
Savings Realized:
Tutorials
Step-by-step guides for deploying data platforms
Deep Dives
Advanced topics for production optimization
Benchmarks
Real-world performance testing results
Join thousands of data engineers using Data on EKS to run production workloads on Amazon EKS. Deploy your first stack in 15 minutes.
Documentation
Comprehensive guides, tutorials, and API reference
GitHub Issues
Bug reports, feature requests, and discussions
Discussions
Q&A, show-and-tell, and community ideas
Built with ❤️ by AWS Solutions Architects and Community Contributors
Data on EKS is an open-source project maintained by AWS community. Support is provided on a best-effort basis. This is not an official AWS service.
License: Apache 2.0 | Version: 2.0 (Current) | Last Updated: January 2025