Start Simple
Startups don’t need a multi-cluster service mesh on day one. Start with a single managed Kubernetes cluster (EKS, GKE, AKS) and grow incrementally.
Essential Components
Resource Limits
Always set CPU and memory limits. Without them, one bad deployment can take down your entire cluster:
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
Health Checks
Configure liveness and readiness probes for every pod:
livenessProbe:
httpGet:
path: /healthz
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
readinessProbe:
httpGet:
path: /ready
port: 8080
initialDelaySeconds: 3
periodSeconds: 5
Namespace Isolation
Use namespaces to separate environments and teams.
Cost Optimization
- Use cluster autoscaler with spot instances for worker nodes
- Right-size your requests based on actual usage
- Use Karpenter for dynamic node provisioning
- Enable HPA (Horizontal Pod Autoscaler) for all stateless services
Monitoring Stack
A minimal but effective stack:
- Metrics: Prometheus + Grafana
- Logging: Loki + Promtail
- Alerting: Alertmanager
- Tracing: OpenTelemetry (start with a sampling rate of 10%)
Conclusion
Kubernetes can be simple. Start with the essentials, add complexity only when you need it.