Setting Up Resource Sizing for Release
Starting with Digital.ai Release version 24.1.4, you can efficiently manage Kubernetes resources (CPU & Memory) during installation through xl-cli. This guide explains how to configure container resources for each pod using requests and limits specifications, focusing primarily on CPU and Memory allocation.
Ways to Specify Resources
You can configure resources in three different ways:
- Custom Resources: For production environments, specify resource requirements using YAML input with precise values (recommended).
- Resource Presets: Choose from predefined resource configurations that best match your needs.
- Manual CR File Modification: While not recommended, this approach can be used when:
- No resource allocation option is selected during installation
- Existing resource specifications need modification
Installation Options
During installation, you'll be prompted with these resource-related questions:
The resource sizing configuration affects how your pods will perform in the Kubernetes cluster. Choose values appropriate for your environment.
Select source of the resource values (CPU and memory):
[preset, editor, none]
Your selection determines the subsequent configuration steps:
Using Resource Presets
If you select 'preset', choose from these predefined configurations:
[micro, small, medium, large, xlarge, 2xlarge]
Each preset includes predefined requests and limits for CPU and Memory. For detailed resource values, see the Installation Options Reference.
Using Custom Resource Editor
If you select 'editor', you'll be prompted to specify custom resource values:
resources:
requests:
cpu: 1
memory: 2Gi
limits:
cpu: 2
memory: 4Gi
Manual Resource Configuration
If you select 'none', you'll need to manually specify resources in these sections of the CR YAML:
.spec.resources
.spec.nginx-ingress-controller.resources
.spec.haproxy-ingress.resources
.spec.postgresql.resources
.spec.rabbitmq.resources
Upgrade Considerations
When upgrading, resource configurations are handled as follows:
It's recommended to specify resources for production environments to ensure predictable performance.
- Existing Resource Configurations: If you previously specified resources (preset or custom), these values are preserved during upgrade.
- No Previous Resource Configuration: If upgrading from a version without resource sizing support:
- No default resources are set after upgrade
- Manual specification through CR YAML is required
- Manual Resource Specifications: Any resources manually specified in the CR YAML are preserved during upgrade.
- The 'nano' preset is suitable for testing environments only, not for production use.
- When using the 'haproxy-ingress' controller, you must define custom resource values as presets are not available.