Proper Kubernetes resource configuration ensures optimal performance, reliability, and cost-efficiency for your Prisme.ai deployment. This guide details best practices and recommended configurations.


The following guidelines help ensure optimal performance for a standard Prisme.ai deployment:

ComponentCPU RequestsCPU LimitsMemory RequestsMemory Limits
API Gateway500m1000m512Mi1Gi
Runtime1000m2000m1Gi2Gi
Console (Studio)250m500m256Mi512Mi
Pages250m500m256Mi512Mi
Events500m1000m512Mi1Gi
MongoDB (per node)1000m2000m2Gi4Gi
Elasticsearch (per node)1000m2000m4Gi8Gi
Redis (per node)500m1000m1Gi2Gi

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.


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.

Example Prometheus alert:

groups:
- name: resource-alerts
  rules:
  - alert: HighCpuUsage
    expr: sum(rate(container_cpu_usage_seconds_total[5m])) by (pod) > 0.9
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: High CPU usage detected

Troubleshooting Resource Issues

Common issues and resolutions:


Next Steps