Skip to content

docs(opensearch): add sizing and capacity planning guide#803

Merged
luohua13 merged 5 commits into
mainfrom
docs/opensearch-sizing-guide
Jul 6, 2026
Merged

docs(opensearch): add sizing and capacity planning guide#803
luohua13 merged 5 commits into
mainfrom
docs/opensearch-sizing-guide

Conversation

@luohua13

@luohua13 luohua13 commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

What

Adds an English OpenSearch Sizing and Capacity Planning Guide under docs/en/solutions/ecosystem/opensearch/, intended as a customer-facing document for evaluating OpenSearch cluster scale on the OpenSearch Kubernetes Operator (Alauda Container Platform).

Contents

  • Storage estimation — full overhead formula and the simplified source × (1 + replicas) × 1.45 rule, with worked examples.
  • Shard sizing — target shard sizes (10–30 GiB search / 30–50 GiB logs), primary-shard formula, and the ≤ 25 shards per GiB of JVM heap guideline.
  • Node & resource sizing — minimum node counts, cluster-manager quorum, JVM heap rules, and CPU/memory ratios per 100 GiB.
  • Reference profiles — small / medium / large nodePools YAML plus an end-to-end 2 TiB worked example.
  • Production notes — verified against the operator release-2.8: no default pod anti-affinity (topology spread must be configured explicitly), smartScaler required before scale-down, and diskSize is grow-only.

Notes

  • English only, per request.
  • Field names and behaviors were cross-checked against the operator CRD and reconcilers on release-2.8.

🤖 Generated with Claude Code

Add an English OpenSearch sizing and capacity planning guide for clusters
created with the OpenSearch Kubernetes Operator on Alauda Container Platform.

Covers the storage formula (x1.45), shard sizing (10-50 GiB, <=25 shards
per GiB heap), node/CPU/memory ratios, and small/medium/large reference
nodePool profiles with a worked example. Includes operator-specific
production notes verified against release-2.8: default has no pod
anti-affinity, smartScaler must be enabled before scale-down, and diskSize
is grow-only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The example labelSelector used `opensearch.role`, which the operator only
applies to master/cluster_manager pods (builders/cluster.go:142-147 on
release-2.8). On data/ingest/coordinator pools it matched zero pods, so the
spread constraint was a silent no-op — the exact HA gap the note warns about.

Select by `opster.io/opensearch-nodepool` (set on every pod, cluster.go:130-133)
instead, optionally scoped by `opster.io/opensearch-cluster`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- JVM heap: clarify the operator auto-calculates heap as memory request ÷ 2
  (helpers.go:446,454 on release-2.8), valid as "half of limit" only when
  request == limit.
- Add CPU CFS-throttling tip for latency-sensitive pods (limit == request).
- Health check: read the admin password from the <cluster>-admin-password
  secret instead of hardcoding it.
- Note vm.max_map_count=262144 host prerequisite (handled by the operator's
  init container by default).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- The topology-spread NOTE closed its ```yaml fence after the explanatory
  sentence, rendering that prose as code. Close the fence right after the
  YAML so the guidance renders as text.
- Storage formula: replace the managed-service-specific "20% overhead,
  capped at 20 GiB per node" with the self-managed mechanism — the disk
  low watermark (default 85%) plus segment-merge headroom. Same ~20% math.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Small profile said "~180 GiB" but its YAML provisions 3 × 90 GiB = 270 GiB;
  state the actual provisioned disk to match the other profiles.
- Health-check pod name: use <cluster>-<component>-0 (StsName is built from
  the node pool's component), not <pool>.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@luohua13 luohua13 merged commit 6f5177b into main Jul 6, 2026
1 check passed
@luohua13 luohua13 deleted the docs/opensearch-sizing-guide branch July 6, 2026 10:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant