Recommended Resource Configuration
The following guidelines help ensure optimal performance for a standard Prisme.ai deployment:Component | CPU Requests | CPU Limits | Memory Requests | Memory Limits |
---|---|---|---|---|
API Gateway | 500m | 1000m | 512Mi | 1Gi |
Runtime | 1000m | 2000m | 1Gi | 2Gi |
Console (Studio) | 250m | 500m | 256Mi | 512Mi |
Pages | 250m | 500m | 256Mi | 512Mi |
Events | 500m | 1000m | 512Mi | 1Gi |
MongoDB (per node) | 1000m | 2000m | 2Gi | 4Gi |
Elasticsearch (per node) | 1000m | 2000m | 4Gi | 8Gi |
Redis (per node) | 500m | 1000m | 1Gi | 2Gi |
Best Practices for Resource Management
Implement these best practices to optimize Kubernetes resource usage:Resource Requests and Limits
- Set accurate resource requests to inform Kubernetes scheduler for optimal pod placement.
- Configure resource limits to prevent resource starvation.
Autoscaling
- Use Horizontal Pod Autoscaler (HPA) based on CPU/Memory utilization.
- Set minimum and maximum replica counts for critical components like API Gateway and Runtime.
Node Pool Optimization
- Configure separate node pools for CPU-intensive (Runtime) and memory-intensive (Elasticsearch, MongoDB) workloads.
- Regularly monitor resource usage and scale node pools accordingly.
Monitoring & Alerts
- Integrate resource monitoring with Prometheus/Grafana.
- Configure alerts to notify resource constraints or spikes in utilization.
Resource Quotas & Limit Ranges
Apply resource quotas and limit ranges to manage resource consumption within Kubernetes namespaces effectively.Resource Quota Example
Resource Quota Example
Set resource quotas at namespace level to prevent overconsumption:
LimitRange Example
LimitRange Example
Define limit ranges to enforce default limits for all pods:
Persistent Storage Recommendations
Ensure reliability and durability by properly configuring persistent volumes (PVs):- Use Persistent Volume Claims (PVCs) with dynamically provisioned storage classes.
- Recommended storage classes: SSD-backed storage (e.g., AWS EBS GP3, Azure Premium SSD, Google Persistent Disk SSD).
- Regular backups and snapshotting via cloud provider capabilities or dedicated backup solutions.
Monitoring Kubernetes Resources
Use Prometheus and Grafana to continuously monitor resources:- CPU and memory utilization dashboards.
- Persistent storage performance metrics.
- Alerting rules for resource exhaustion.
Troubleshooting Resource Issues
Common issues and resolutions:Pod Scheduling Issues
Pod Scheduling Issues
- Verify sufficient cluster resources available:
- Adjust resource requests if necessary.
High CPU or Memory Usage
High CPU or Memory Usage
- Inspect pod-level resource usage:
- Scale horizontally or vertically as needed.
Persistent Storage Issues
Persistent Storage Issues
- Check PVC and PV status:
- Ensure proper storage class configuration and available storage space.