docs(opensearch): add sizing and capacity planning guide#803
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
source × (1 + replicas) × 1.45rule, with worked examples.nodePoolsYAML plus an end-to-end 2 TiB worked example.release-2.8: no default pod anti-affinity (topology spread must be configured explicitly),smartScalerrequired before scale-down, anddiskSizeis grow-only.Notes
release-2.8.🤖 Generated with Claude Code