Kubernetes Deployment
Complete Kubernetes deployment guide for Elsa Workflows including Helm charts, deployment configurations, ingress setup, autoscaling, monitoring, service mesh integration, and production best practice
Overview
Table of Contents
Prerequisites
Required Tools
Cluster Requirements
Knowledge Requirements
Architecture Overview
Components
Helm Chart Deployment
Step 1: Create Helm Chart Structure
Step 2: Configure Values
Step 3: Create Secrets
Step 4: Install with Helm
Step 5: Verify Deployment
Upgrading
Uninstalling
Kubernetes Manifest Deployment
Directory Structure
Namespace
ConfigMap
Secrets
Elsa Server Deployment
Elsa Server Service
Elsa Studio Deployment
Elsa Studio Service
Deploy All Manifests
Database Configuration
PostgreSQL StatefulSet
PostgreSQL Service
Database Backup Configuration
Connection Pooling
Persistent Storage
Storage Classes
Persistent Volume Claims
Volume Snapshots
Ingress Setup
NGINX Ingress Controller
Installation
Ingress Configuration
Traefik Ingress Controller
Installation
IngressRoute Configuration
SSL/TLS with cert-manager
Install cert-manager
ClusterIssuer Configuration
Horizontal Pod Autoscaling
Metrics Server Installation
HPA for Elsa Server
HPA for Elsa Studio
Vertical Pod Autoscaling (Optional)
Pod Disruption Budget
Testing Autoscaling
Monitoring with Prometheus & Grafana
Install Prometheus Stack
ServiceMonitor for Elsa Server
PrometheusRule for Alerts
Grafana Dashboard
Custom Metrics in Elsa
Accessing Grafana
Key Metrics to Monitor
Metric
Description
Alert Threshold
Service Mesh Integration
Istio Integration
Prerequisites
Gateway Configuration
VirtualService Configuration
DestinationRule for Circuit Breaking
PeerAuthentication for mTLS
AuthorizationPolicy
Linkerd Integration
Installation
Mesh Elsa Workflows Namespace
Traffic Split for Canary Deployments
ServiceProfile for Advanced Metrics
Rate Limiting with Linkerd
Observability with Service Mesh
Istio Dashboard
Linkerd Dashboard
Comparison: Istio vs Linkerd
Feature
Istio
Linkerd
Service Mesh Best Practices
Distributed Configuration
Distributed Runtime Configuration
Environment-Based Configuration
Redis Configuration for Caching
Troubleshooting
Pod Issues
Pods Not Starting
Pods Crashing (CrashLoopBackOff)
Database Issues
Migration Failures
Connection Pool Exhaustion
Network Issues
Service Not Accessible
Ingress Not Working
Performance Issues
High Latency
Memory Leaks
Distributed Configuration Issues
Lock Acquisition Failures
Cache Invalidation Issues
Debugging Commands
Production Best Practices
Security
1. Use Non-Root Containers
2. Network Policies
3. Secrets Management
4. RBAC Configuration
High Availability
1. Multi-Zone Deployment
2. Pod Disruption Budgets
3. Health Checks
Resource Management
1. Set Resource Requests and Limits
2. Quality of Service Classes
3. Limit Ranges
Backup and Disaster Recovery
1. Regular Backups
2. Velero for Cluster Backups
Monitoring and Alerting
1. Define SLIs/SLOs
Service
SLI
SLO
2. Alert on SLO Violations
Cost Optimization
1. Right-Size Resources
2. Use Spot/Preemptible Instances
3. Enable Cluster Autoscaler
CI/CD Integration
1. GitOps with ArgoCD
2. CI Pipeline Example
Next Steps
Related Resources
Community and Support
Version Information
Last updated