Scaling and Performance¶
This guide provides detailed guidance on scaling and optimizing performance for the Secure CINC Auditor Kubernetes Container Scanning solution.
Overview¶
As the number of containers to scan increases, proper scaling and resource allocation become critical for maintaining performance and reliability. This guide covers strategies for scaling the scanner to handle large Kubernetes environments.
Parallel Scanning¶
Distribute scanning load across multiple scanner instances to increase throughput:
Key Parallelism Parameters¶
- maxConcurrent: Maximum number of concurrent scans
- queueSize: Size of the scan request queue
- processingStrategy: Choose between
parallel
orsequential
processing
Parallelism Considerations¶
- Increase maxConcurrent for faster processing but watch resource usage
- Use larger queueSize for bursty workloads
- Consider worker pods for distributing scanning workloads
Resource Allocation¶
Properly allocate CPU and memory resources based on your environment size:
Environment Size | Containers | CPU Request | Memory Request | CPU Limit | Memory Limit |
---|---|---|---|---|---|
Small | <50 | 250m | 256Mi | 500m | 512Mi |
Medium | 50-200 | 500m | 512Mi | 1000m | 1Gi |
Large | 200-1000 | 1000m | 1Gi | 2000m | 2Gi |
Enterprise | >1000 | 2000m | 2Gi | 4000m | 4Gi |
Tuning Resource Allocations¶
For optimal resource utilization:
Result Storage¶
Implement centralized storage for scan results to handle large volumes of data:
Storage Considerations¶
- Use ReadWriteMany access mode for multi-scanner deployments
- Implement appropriate retention policies
- Consider cloud-based storage for enterprise deployments
Storage Provider Options¶
Horizontal Pod Autoscaling¶
Configure Horizontal Pod Autoscaling (HPA) for dynamic scaling based on workload:
Advanced HPA Configuration¶
For more precise control over scaling behavior:
Distribution and Scheduling¶
Optimize pod distribution across nodes:
Performance Tuning¶
Fine-tune scanner performance for specific environments:
Scanner Performance Parameters¶
- concurrency: Number of concurrent scans per scanner pod
- memoryOptimization: Enable memory usage optimizations
- scanTimeout: Maximum time for a scan to complete
- batchSize: Number of containers processed in a single batch
- workerPoolSize: Size of the worker pool for processing
Scaling Across Multiple Clusters¶
For large enterprises with multiple Kubernetes clusters:
Performance Benchmarks¶
Use these benchmarks as a reference for sizing your deployment:
Environment | Scanner Pods | Concurrent Scans | Containers Scanned | Time to Complete |
---|---|---|---|---|
Small | 1 | 5 | 50 | ~10 minutes |
Medium | 2 | 10 | 200 | ~25 minutes |
Large | 5 | 20 | 1000 | ~60 minutes |
Enterprise | 10+ | 50+ | 5000+ | ~3 hours |