Configure platform resources
Astro Private Cloud (APC) runs on Kubernetes and requires careful resource planning for both control plane and data plane components. This guide covers resource configuration for all platform components.
Architecture overview
APC uses a control plane/data plane architecture:
- Control Plane: Houston API, Astro UI, Registry, Config Syncer.
- Data Plane: Commander, Registry, Airflow deployments.
- Unified Mode: All components in a single cluster.
Control plane components
Houston API
Houston is the GraphQL API that manages platform operations.
Scaling recommendations
Houston worker
Background job processor for asynchronous operations. The worker uses the same houston.resources as the Houston API.
Astro UI
Web interface for platform management.
Data plane components
Commander
Manages Airflow deployment provisioning and Kubernetes operations.
Registry
Docker image registry for Airflow deployments.
Storage backend options
- Local PersistentVolume (default)
- Google Cloud Storage (GCS)
- Azure Blob Storage
- Amazon S3
Ingress and networking
NGINX ingress controller
Database
PostgreSQL
Houston metadata database.
Production configuration
Resource sizing examples
Development environment
Production environment
High availability configuration
Node affinity and tolerations
Dedicated platform nodes
Spread across zones
Monitor resource usage
Troubleshooting
Out of memory (OOMKilled)
Symptom: Pods restart with OOMKilled status.
Solution: Increase memory limits:
CPU throttling
Symptom: Slow response times, high latency.
Solution: Increase CPU limits or add replicas:
Pending pods
Symptom: Pods stuck in Pending state.
Solution:
- Check node resources:
kubectl describe nodes. - Reduce resource requests or add nodes.
- Check for taints/tolerations mismatches.
Best practices
- Set both requests and limits for predictable scheduling.
- Use Pod Disruption Budgets for high availability.
- Monitor resource usage before scaling.
- Size based on workload not just component count.
- Plan for growth with 20-30% headroom.
- Use separate node pools for platform components.