mirror of
https://github.com/outbackdingo/cozystack.git
synced 2026-01-27 18:18:41 +00:00
This patch removes the loophole to leave resource requests and limits unspecified in managed apps. Any of cpu, memory, and ephemeral storage are now filled in from the resource preset (default or user-specified) if not explicitly specified in .Values.resources. "none" is no longer an accepted value in resourcePresets and the primary resources now always have some explicit value for proper billing and isolation. Signed-off-by: Timofei Larkin <lllamnyp@gmail.com>
Managed Nginx Caching Service
The Nginx Caching Service is designed to optimize web traffic and enhance web application performance. This service combines custom-built Nginx instances with HAproxy for efficient caching and load balancing.
Deployment infromation
The Nginx instances include the following modules and features:
- VTS module for statistics
- Integration with ip2location
- Integration with ip2proxy
- Support for 51Degrees
- Cache purge functionality
HAproxy plays a vital role in this setup by directing incoming traffic to specific Nginx instances based on a consistent hash calculated from the URL. Each Nginx instance includes a Persistent Volume Claim (PVC) for storing cached content, ensuring fast and reliable access to frequently used resources.
Deployment Details
The deployment architecture is illustrated in the diagram below:
┌─────────┐
│ metallb │ arp announce
└────┬────┘
│
│
┌───────▼───────────────────────────┐
│ kubernetes service │ node
│ (externalTrafficPolicy: Local) │ level
└──────────┬────────────────────────┘
│
│
┌────▼────┐ ┌─────────┐
│ haproxy │ │ haproxy │ loadbalancer
│ (active)│ │ (backup)│ layer
└────┬────┘ └─────────┘
│
│ balance uri whole
│ hash-type consistent
┌──────┴──────┬──────────────┐
┌───▼───┐ ┌───▼───┐ ┌───▼───┐ caching
│ nginx │ │ nginx │ │ nginx │ layer
└───┬───┘ └───┬───┘ └───┬───┘
│ │ │
┌────┴───────┬─────┴────┬─────────┴──┐
│ │ │ │
┌───▼────┐ ┌────▼───┐ ┌───▼────┐ ┌────▼───┐
│ origin │ │ origin │ │ origin │ │ origin │
└────────┘ └────────┘ └────────┘ └────────┘
Known issues
VTS module shows wrong upstream resonse time
Parameters
Common parameters
| Name | Description | Value |
|---|---|---|
external |
Enable external access from outside the cluster | false |
size |
Persistent Volume size | 10Gi |
storageClass |
StorageClass used to store the data | "" |
haproxy.replicas |
Number of HAProxy replicas | 2 |
nginx.replicas |
Number of Nginx replicas | 2 |
haproxy.resources |
{} |
|
haproxy.resourcesPreset |
Use a common resources preset when resources is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) |
nano |
nginx.resources |
Resources | {} |
nginx.resourcesPreset |
Use a common resources preset when resources is not set explicitly. (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge) |
nano |
Configuration parameters
| Name | Description | Value |
|---|---|---|
endpoints |
Endpoints configuration | [] |