StackLight requirements for an MKE attached cluster

General requirements

While planning the attachment of an existing Mirantis Kubernetes Engine (MKE) cluster that is not deployed by Container Cloud, consider the following general requirements for StackLight:

Note

Attachment of MKE clusters is tested on the following operating systems:

  • Ubuntu 20.04

  • RHEL 7.9

  • CentOS 7.9

StackLight limitations on CentOS-based attached MKE clusters

Since Container Cloud 2.22.0, the following limitations apply to StackLight on CentOS-based attached MKE clusters:

  • The KubeContainersCPUThrottlingHigh alert does not raise since metrics for this alert are unavailable

  • The following Grafana dashboards have missing data:

    • Kubernetes Namespaces (several panels)

    • Kubernetes Pods (several panels)

    • Kubernetes Containers (all panels)

Requirements for cluster size

While planning the attachment of an existing Mirantis Kubernetes Engine (MKE) cluster that is not deployed by Container Cloud, consider the following cluster size requirements for StackLight. Depending on the following specific StackLight HA and logging settings, use the example size guidelines below:

  • The non-HA mode - StackLight services are installed on a minimum of one node with the StackLight label (StackLight nodes) with no redundancy using Persistent Volumes (PVs) from the default storage class to store data. Metric collection agents are installed on each node (Other nodes).

  • The HA mode - StackLight services are installed on a minimum of three nodes with the StackLight label (StackLight nodes) with redundancy using PVs provided by Local Volume Provisioner to store data. Metric collection agents are installed on each node (Other nodes).

  • Logging enabled - the Enable logging option is turned on, which enables the OpenSearch cluster to store infrastructure logs.

  • Logging disabled - the Enable logging option is turned off. In this case, StackLight will not install OpenSearch and will not collect infrastructure logs.

LoadBalancer (LB) Services support is required to provide external access to StackLight web UIs.

StackLight requirements for an attached MKE cluster, with logging enabled:

StackLight nodes 1

Other nodes

Storage (PVs)

LBs

Non-HA (1-node example)

  • RAM requests: 11 GB

  • RAM limits: 33 GB

  • CPU requests: 4.5 cores

  • CPU limits: 12 cores

  • RAM requests: 0.25 GB

  • RAM limits: 1 GB

  • CPU requests: 0.5 cores

  • CPU limits: 1 core

  • 1 PV for Prometheus (size is configurable; 1x total)

  • 2 PVs for Alertmanager (2 Gi/volume; 4 Gi total)

  • 1 PV for Patroni (10 G; 10 G total)

  • 1 PV for OpenSearch (size is configurable; 1x total)

5

HA (3-nodes example)

  • RAM requests: 10 GB

  • RAM limits: 25 GB

  • CPU requests: 2.8 cores

  • CPU limits: 7.5 cores

  • RAM requests: 0.25 GB

  • RAM limits: 1 GB

  • CPU requests: 0.5 cores

  • CPU limits: 1 core

  • 2 PVs (1 per StackLight node) for Prometheus (size is configurable; 2x total)

  • 2 PVs (1 per StackLight node) for Alertmanager (2 Gi/volume; 4 Gi total)

  • 3 PVs (1 per StackLight node) for Patroni (10 G/volume; 30 G total)

  • 3 PVs (1 per StackLight node) for OpenSearch (size is configurable; 3x total)

5

StackLight requirements for an attached MKE cluster, with logging disabled

StackLight nodes 1

Other nodes

Storage (PVs)

LBs

Non-HA (1-node example)

  • RAM requests: 4 GB

  • RAM limits: 23 GB

  • CPU requests: 3 cores

  • CPU limits: 9 cores

  • RAM requests: 0.05 GB

  • RAM limits: 0.1 GB

  • CPU requests: 0.01 cores

  • CPU limits: 0 cores

  • 1 PV for Prometheus (size is configurable; 1x total)

  • 2 PVs for Alertmanager (2 Gi/volume; 4Gi total)

  • 1 PV for Patroni (10 G; 10 G total)

4

HA (3-nodes example)

  • RAM requests: 3 GB

  • RAM limits: 15 GB

  • CPU requests: 1.6 cores

  • CPU limits: 4.2 cores

  • RAM requests: 0.05 GB

  • RAM limits: 0.1 GB

  • CPU requests: 0.01 cores

  • CPU limits: 0 core

  • 2 PVs (1 per StackLight node) for Prometheus (size is configurable; 2x total)

  • 2 PVs (1 per StackLight node) for Alertmanager (2 Gi/volume; 4 Gi total)

  • 3 PVs (1 per StackLight node) for Patroni (10 G/volume; 30 G total)

4

1(1,2)

In the non-HA mode, StackLight components are bound to the nodes labeled with the StackLight label. If there are no nodes labeled, StackLight components will be scheduled to all schedulable worker nodes until the StackLight label(s) are added. The requirements presented in the table for the non-HA mode are summarized requirements for all StackLight nodes.