Evose
Private

Private · Kubernetes Deployment

K8s + Helm deployment · Resource planning · Horizontal scaling

The recommended production deployment. Wrapped as a Helm chart, declaratively managed.

Prerequisites

ItemRequirement
K8s1.24+
Helm3.x
Ingress Controllernginx-ingress / Traefik
Cert ManagerAuto-cert (optional)
StorageClassSupports RWO / RWX (depending on the use case)

Topology

                           ┌──→ evose-api (3+ replicas)
[Ingress] → [Web]  ────────┼──→ ...
                           └──→ evose-worker (2+ replicas, queue consumers)

           [MySQL] ←─────── primary-replica
           [PostgreSQL] ←── primary-replica
           [Redis] ←─────── cluster / sentinel
           [Object storage] ←── S3 / OSS / MinIO

Deployment

1 · Add the Helm Repo

helm repo add evose <repo-url>
helm repo update

2 · Prepare values.yaml

Minimum:

global:
  domain: evose.example.com
  storageClass: standard
 
ingress:
  enabled: true
  className: nginx
  tls:
    enabled: true
    secretName: evose-tls
 
mysql:
  replicaCount: 1                # Production recommended: 3
  persistence:
    size: 100Gi
 
postgres:
  replicaCount: 1
  persistence:
    size: 200Gi
  config:
    shared_buffers: 8GB
 
redis:
  architecture: replication
  replicaCount: 3
 
evose:
  api:
    replicaCount: 3
    resources:
      requests:
        cpu: 1
        memory: 2Gi
      limits:
        cpu: 4
        memory: 8Gi
 
  worker:
    replicaCount: 2
 
secrets:
  secretKey: <openssl rand -hex 32>
  adminEmail: admin@example.com
  adminPassword: <strong password>
 
llm:
  provider: openai
  apiKey: <key>
  baseUrl: https://api.openai.com/v1

3 · Install

# Create namespace
kubectl create ns evose
 
# Install Cert Manager (optional, for Let's Encrypt)
# ...
 
# Deploy Evose
helm install evose evose/evose -n evose -f values.yaml
 
# Watch
kubectl -n evose get pods -w

4 · Verify

# Check ingress
kubectl -n evose get ingress
 
# Check health
curl https://evose.example.com/health

Horizontal Scaling

# API instances
kubectl -n evose scale deploy evose-api --replicas=5
 
# Worker queue consumers
kubectl -n evose scale deploy evose-worker --replicas=4

Or HPA (autoscaling):

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: evose-api
spec:
  scaleTargetRef:
    kind: Deployment
    name: evose-api
  minReplicas: 3
  maxReplicas: 20
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70

Resource Planning

ComponentrequestslimitsNotes
evose-api1 cpu / 2Gi4 cpu / 8GiUser load
evose-worker1 cpu / 2Gi4 cpu / 8GiAsync tasks
mysql4 cpu / 16Gi8 cpu / 32GiBusiness core
postgres4 cpu / 16Gi8 cpu / 32GiKB vectors
redis1 cpu / 2Gi2 cpu / 4GiCache / queue

Backup (K8s)

ObjectTool
MySQL / PostgreSQLVelero + scheduled snapshot / logical-backup CronJob
FilesObject storage versioning / cross-region replication
K8s resourcesVelero

Upgrade

helm upgrade evose evose/evose -n evose -f values.yaml

Detailed upgrade procedure

Next Steps

On this page