Skip to content

Lightweight Deployment Trimming Plan Verification

Considering that in some scenarios, especially in the military industry, cloud software deployment faces stringent resource constraints, this document introduces a lightweight trimming and verification plan for deploying DCE 5.0 Community Edition, aiming to meet customers' requirements for lightweight deployment.

This trimming plan is verified step by step through four phases, detailed as follows:

Verification Environment

  • Operating System: Kylin Linux Advanced Server V10 (Halberd) for ARM
  • CPU: 10C
  • Memory: 17Gi

Installed Components and Resource Statistics

The installation components, trimming plan, and phased trimming approach for DCE 5.0 are as follows:

Full view of Phase 1 lightweight trimming:

Optimization Measures

  1. Under the premise of maintaining normal monitoring capabilities, the following Pods of Insight can be stopped:

    Pod name Mem Size
    insight-agent-fluent-bit-5x2rn 99.62 MiB
    insight-agent-otel-kubernetes-collector-69f67cc745-xt5hj 74.94 MiB
    insight-agent-tailing-sidecar-operator-6f85f7bb75-67xc8 46.81 MiB
    insight-elastic-alert-64bbb468dc-l4mk5 30.38 MiB
    insight-jaeger-collector-5cd5b94dcc-mwgcl 32.50 MiB
    insight-jaeger-query-5495c59bbd-fk287 28.88 MiB
    insight-opentelemetry-collector-5d47dd6c6b-nk54t 62.12 MiB
    Optimizable memory 375.25 MiB
  2. Remove the Istio sidecar via the script clean_istio_proxy.sh

  3. Disable the Seed kind-cluster and elasticsearch components

    1. Before installer deployment, disable the elasticSearch component in manifest.yaml

      [Not feasible] insight-server has a strong dependency on ES

    2. After installer deployment, shut down the kind-cluster container

      [Feasible] There is a hidden issue in the image pull policy; it needs to be changed to IfNotPresent

  4. Deploy registry in Global, managed via kangaroo [Feasible]

  5. Deploy single-instance MySQL, using an external MySQL instance managed outside the container [Feasible]

Phase Optimizations

Phase1 Optimization

Phase1 trims non-essential components in infrastructure & components.

  1. Resource usage within Seed

  2. Resource usage of Global + kind Seed

According to the script statistics, total memory consumption: 13.6 GiB

Theoretical memory usage of removable components:

Note

The calculated statistics may differ from actual deployment usage, as dynamic cache generated during system operation also affects real memory consumption.

Component Usage
elasticsearch 2460.38 MiB (2.40 GiB)
kind-cluster 1005.62 MiB (0.98 GiB)
insight 2655.17 MiB (2.59 GiB)
kangaroo 277.25 MiB (0.27 GiB)
Total 6.24 GiB

If these four types of components are not installed, the memory consumption is expected to be 7.36 GiB. However, previous community version trimming (without these four components) showed that 8G memory can barely run it, but it is unstable.

Phase2 Optimization

In Phase2, MySQL is consolidated from dual instances to a single instance, while trimming and optimizing some Insight components.

Phase3 Optimization

Optimization item: Remove ES (replica = 0), according to issue 2268

Phase4 Optimization

Conclusion

This lightweight plan is derived by progressively trimming and scaling down a full K8s + DCE5 Community Edition environment under sufficient memory, reaching an idle state. Based on the memory statistics, the total memory just meets the requirements.

In actual real-world scenarios, with an 8Gi memory environment, installation proceeds sequentially (adaptive trimming). However, since some steps at the end require manually executing scripts, it triggers deploy rolling updates, causing a temporary surge in memory demand. Additionally, the operating system itself consumes part of the dynamic memory resources.

Therefore, in summary, running the DCE5 lightweight trimmed environment in an 8G memory setup still lacks sufficient resources.

That is, installation memory requirement ≠ idle state memory usage

Using Phase 4 as the final trimming goal, at least 10G+ memory is required. Using Phase 3 as the final trimming goal (including observability components), at least 12G+ memory is required.

For how to achieve lightweight deployment through the installer, refer to Installer Lightweight Deployment Plan.

Comments