Skip to main content
Deploy Greptile on Kubernetes for enterprise environments requiring high availability, scalability, and advanced orchestration capabilities.

Architecture

Kubernetes Architecture Diagram
The Kubernetes deployment includes:
  • Greptile Application Pods: Horizontally scalable API and web services
  • Ingress Controller: Traffic routing and SSL termination
  • External Dependencies: Managed PostgreSQL and Redis services
  • ConfigMaps and Secrets: Configuration and credential management
  • Persistent Volumes: File storage and caching
  • Service Mesh: Advanced networking and security (optional)

Prerequisites

System Requirements

  • Kubernetes Cluster: Version 1.21 or later
  • Cluster Resources:
    • Minimum: 8 CPU cores, 16GB RAM across nodes
    • Recommended: 16+ CPU cores, 32GB+ RAM
    • Storage: 500GB+ persistent storage available

Required Tools

  • kubectl: Kubernetes command-line tool
  • helm: Helm package manager (version 3.0+)
  • terraform: Infrastructure as Code (for AWS deployment)
  • awscli: AWS CLI (for AWS deployments)

Infrastructure Dependencies

  • PostgreSQL Database: RDS, Cloud SQL, or equivalent managed service
  • Redis Cache: ElastiCache, Memorystore, or equivalent
  • Load Balancer: ALB, GLB, or cluster ingress controller
  • DNS: Managed DNS service for domain routing

Installation Steps

1. Download Repository

2. Infrastructure Setup (AWS Example)

If deploying on AWS, first set up the infrastructure:
Edit terraform.tfvars:
Deploy the infrastructure:

3. Helm Chart Configuration

Navigate to the Helm chart directory:
Create and customize your values file:
Edit values-prod.yaml:

4. Create Kubernetes Secrets

Create secrets for sensitive configuration:

5. Deploy with Helm

6. Verify Deployment

Advanced Configuration

High Availability Setup

Configure for multi-zone deployment:

Monitoring and Observability

Set up comprehensive monitoring:

Security Hardening

Implement security best practices:

Operations

Scaling

Scale the deployment based on load:

Updates and Rollbacks

Manage application updates:

Backup and Recovery

Implement backup strategies:

Troubleshooting

Common Issues

Pods not starting
Database connectivity issues
Ingress not working

Performance Optimization

Optimize resource usage:

Migration from Docker Compose

To migrate from Docker Compose to Kubernetes:
  1. Export data from existing deployment
  2. Deploy Kubernetes infrastructure
  3. Import data to new database
  4. Update DNS to point to new ingress
  5. Verify functionality and performance
  6. Decommission old deployment

Support

For Kubernetes deployment issues:
  1. Check pod logs: kubectl logs -n greptile deployment/greptile-api
  2. Review cluster events: kubectl get events -n greptile --sort-by='.lastTimestamp'
  3. Monitor resource usage: kubectl top pods -n greptile
  4. Contact support with cluster information and deployment configuration
Kubernetes deployments require expertise in container orchestration, networking, and cloud infrastructure. Consider professional services for production deployments.