Skip to content

docs: NUMA policies immutable-first + Pod-CIDR expansion + NodeLocal DNS persistence#904

Open
chinameok wants to merge 1 commit into
masterfrom
docs/machine-config-day2
Open

docs: NUMA policies immutable-first + Pod-CIDR expansion + NodeLocal DNS persistence#904
chinameok wants to merge 1 commit into
masterfrom
docs/machine-config-day2

Conversation

@chinameok

@chinameok chinameok commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Optimize Pod Performance with Manager Policies: restructured so Immutable Infrastructure (configure via Machine Configuration) is the primary path, with the traditional-OS procedure as a fallback. Cross-links to the immutable kubelet configuration guide.
  • About Machine Configuration (stub): surfaces a direct link to kubelet configuration.
  • Configure Subnets: day-2 guidance for expanding the default Pod subnet (out of Pod IPs), including the same-base-address constraint and the add-a-subnet alternative; notes the Service CIDR is fixed after install.
  • Configure NodeLocal DNSCache: clusterDNS persistence is split by node OS — Immutable Infrastructure via Machine Configuration (kubelet drop-in), traditional OS via the cluster-template kubeletExtraArgs.

Lints clean (yarn lint: 0 errors).

Notes for reviewers

  • Manager policies on immutable: changing cpuManagerPolicy/memoryManagerPolicy needs the kubelet manager state reset; until the Machine Configuration orchestration ships, the guide directs users to support for that step.
  • To be backported to release-4.3. Note: the doc tree is reorganized on 4.3 (these docs live at different paths there), so the backport is a per-file re-application.

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Four documentation files are updated: the Machine Configuration index adds a release-cadence note; the resource manager policies doc splits "Applying the Configuration" into immutable-infrastructure and traditional-OS subsections with updated Quick Start wording; the NodeLocal DNS doc replaces upgrade-rebuild guidance with OS-specific kubelet clusterDNS persistence instructions; and the subnet doc adds a Pod subnet expansion callout.

Changes

Documentation: Kubelet Config OS Pathways, Machine Config Cadence, and Subnet Expansion

Layer / File(s) Summary
Machine Configuration cadence note and kubelet config OS pathways
docs/en/configure/machine_config/index.mdx, docs/en/configure/scalability/resource_manager_policies.mdx
Machine Configuration index adds a sentence about its independent release cadence. Resource manager policies doc updates the Quick Start lead-in sentence and restructures "Applying the Configuration" into anchored "Immutable Infrastructure (recommended)" and "Traditional Operating Systems" subsections.
NodeLocal DNS kubelet clusterDNS persistence guidance
docs/en/networking/functions/configure_node_local_dns.mdx
Replaces the old "Cluster Upgrade via Rebuilding" kubeletExtraArgs instructions with new guidance explaining that kubelet changes are lost on node rebuilds, then providing an immutable-infra path (Machine Configuration drop-in) and a traditional-OS path (--cluster-dns in kubeadm templates).
Pod subnet expansion constraints callout
docs/en/networking/functions/configure_subnet.mdx
Adds a note under "Expanding Subnets by using the CLI" covering ovn-default subnet expansion to obtain more Pod IPs, existing/new Pod address behavior, constraints (no base address change, no shrinking), and the immutability of the Service CIDR post-installation.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • alauda/acp-docs#848: Directly related — also modifies docs/en/networking/functions/configure_node_local_dns.mdx to replace cluster-upgrade/rebuild wording with guidance on persisting clusterDNS/--cluster-dns via kubelet configuration or kubeletExtraArgs.

Suggested reviewers

  • fanzy618

Poem

🐇 Hop, hop through the docs we go,
Immutable paths now clearly show!
kubelet configs won't fade away,
Machine Config leads the way.
Subnets grow but keep their base—
This bunny loves a tidy place! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The pull request title accurately and specifically summarizes the three main documentation changes: NUMA policies with immutable-first positioning, Pod CIDR expansion guidance, and NodeLocal DNS persistence configuration.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/machine-config-day2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 16, 2026

Copy link
Copy Markdown

Deploying alauda-container-platform with  Cloudflare Pages  Cloudflare Pages

Latest commit: 1fa6f23
Status: ✅  Deploy successful!
Preview URL: https://cfb02a36.alauda-container-platform.pages.dev
Branch Preview URL: https://docs-machine-config-day2.alauda-container-platform.pages.dev

View logs

…eLocal DNS persistence

- resource_manager_policies: apply on Immutable Infrastructure (Machine
  Configuration) first; traditional OS as fallback.
- machine_config: surface the kubelet configuration link from the main site.
- configure_subnet: day-2 guidance for expanding the default Pod subnet.
- configure_node_local_dns: split clusterDNS persistence by OS — immutable via
  Machine Configuration (kubelet drop-in), traditional via cluster-template
  kubeletExtraArgs.
@chinameok chinameok force-pushed the docs/machine-config-day2 branch from cdd9b69 to 1fa6f23 Compare June 16, 2026 06:23

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (3)
docs/en/configure/scalability/resource_manager_policies.mdx (1)

101-103: ⚡ Quick win

Break up complex sentence for clarity.

Lines 101-103 form a 68-word sentence that interleaves three distinct concepts: (1) how to configure topology/reservation settings, (2) the additional requirement for static policies, and (3) a conditional workaround when orchestration is unavailable. Consider splitting into separate sentences.

📝 Suggested rewording
-On immutable nodes, kubelet settings are managed declaratively with Machine Configuration—you do not edit kubelet files on the node directly. Configure `topologyManagerPolicy`, `topologyManagerScope`, `reservedSystemCPUs`, and reserved resources by writing a kubelet configuration drop-in, as described in <ExternalSiteLink name="immutable-infra" href="/machine-configuration/kubelet_config.html" children="Configuring Kubelet" />.
-
-Changing `cpuManagerPolicy` or `memoryManagerPolicy` to a static policy additionally requires draining the node and resetting the kubelet CPU and memory manager state before the kubelet restarts. On immutable infrastructure this orchestration is delivered through Machine Configuration; if it is not yet available in your environment, configure static CPU and Memory Manager policies with assistance from your support team.
+On immutable nodes, kubelet settings are managed declaratively with Machine Configuration—you do not edit kubelet files on the node directly. Configure `topologyManagerPolicy`, `topologyManagerScope`, `reservedSystemCPUs`, and reserved resources by writing a kubelet configuration drop-in, as described in <ExternalSiteLink name="immutable-infra" href="/machine-configuration/kubelet_config.html" children="Configuring Kubelet" />.
+
+Changing `cpuManagerPolicy` or `memoryManagerPolicy` to a static policy additionally requires draining the node and resetting the kubelet CPU and memory manager state before the kubelet restarts. On immutable infrastructure this orchestration is delivered through Machine Configuration. If this orchestration is not yet available in your environment, configure static CPU and Memory Manager policies with assistance from your support team.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/configure/scalability/resource_manager_policies.mdx` around lines 101
- 103, The paragraph containing lines 101-103 contains a single 68-word sentence
that conflates three separate concepts: configuring topology and reservation
settings, additional requirements for static policies, and the conditional
workaround for when orchestration is unavailable. Break this long sentence into
three shorter sentences, each addressing one concept independently. The first
should explain how to configure topologyManagerPolicy, topologyManagerScope,
reservedSystemCPUs, and reserved resources on immutable nodes. The second should
describe the additional node draining and state reset requirements for static
CPU and Memory Manager policies. The third should address the conditional
workaround when Machine Configuration orchestration is not yet available. This
will improve clarity and readability without altering the technical content.
docs/en/networking/functions/configure_node_local_dns.mdx (1)

33-34: 💤 Low value

Consider simplifying the kubeletExtraArgs location description.

Lines 33-34 form a 48-word sentence that lists multiple nested YAML paths in prose. While technically accurate, readers may find it easier to parse if the locations were listed as bullet points or if the YAML example below included comments showing the full path context.

📝 Alternative presentation

Option 1: Use bullet points for clarity:

-   **Traditional operating systems**: add the `--cluster-dns` parameter to `kubeletExtraArgs` in the cluster template—in `KubeadmControlPlane` (under both `initConfiguration` and `joinConfiguration` → `nodeRegistration` → `kubeletExtraArgs`) and in `KubeadmConfigTemplate` (under `template` → `spec` → `joinConfiguration` → `nodeRegistration` → `kubeletExtraArgs`):
+   **Traditional operating systems**: add the `--cluster-dns` parameter to `kubeletExtraArgs` in the cluster template at the following locations:
+   - `KubeadmControlPlane` → `initConfiguration` → `nodeRegistration` → `kubeletExtraArgs`
+   - `KubeadmControlPlane` → `joinConfiguration` → `nodeRegistration` → `kubeletExtraArgs`
+   - `KubeadmConfigTemplate` → `template` → `spec` → `joinConfiguration` → `nodeRegistration` → `kubeletExtraArgs`

Option 2: Add inline YAML comments showing context (keep prose, enhance example):

# In KubeadmControlPlane:
# - initConfiguration.nodeRegistration.kubeletExtraArgs
# - joinConfiguration.nodeRegistration.kubeletExtraArgs
# In KubeadmConfigTemplate:
# - template.spec.joinConfiguration.nodeRegistration.kubeletExtraArgs
kubeletExtraArgs:
  cluster-dns: "<NodeLocal_DNS_IP>"  # e.g., 169.254.20.10
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/networking/functions/configure_node_local_dns.mdx` around lines 33 -
34, The prose sentence describing the locations of kubeletExtraArgs in
KubeadmControlPlane and KubeadmConfigTemplate is too long and complex to parse
easily. Simplify the presentation by either converting the nested path locations
into a bulleted list for clarity, or enhance the YAML code example below by
adding inline comments that show the full path context (e.g., comments
indicating KubeadmControlPlane initConfiguration and joinConfiguration paths,
and KubeadmConfigTemplate template.spec path) alongside the kubeletExtraArgs
configuration. Choose whichever approach makes the documentation easier for
readers to follow.
docs/en/configure/machine_config/index.mdx (1)

13-13: ⚡ Quick win

Break up long sentence for better readability.

This 76-word sentence packs multiple concepts (release cadence, installation, upgrade, operations, specific examples, and two links) into a single run-on structure. Consider splitting it into 2-3 sentences to improve comprehension.

📝 Suggested rewording
-Machine Configuration releases on a different cadence from <Term name="product" />. For installation, upgrade, and detailed operation procedures—including <ExternalSiteLink name="immutable-infra" href="/machine-configuration/kubelet_config.html" children="kubelet configuration" />, firewall ports, and time synchronization—use <ExternalSiteLink name="immutable-infra" href="/machine-configuration/index.html" children="Machine Configuration" />.
+Machine Configuration releases on a different cadence from <Term name="product" />. For installation, upgrade, and detailed operation procedures, refer to <ExternalSiteLink name="immutable-infra" href="/machine-configuration/index.html" children="Machine Configuration" />. This includes <ExternalSiteLink name="immutable-infra" href="/machine-configuration/kubelet_config.html" children="kubelet configuration" />, firewall ports, and time synchronization.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/en/configure/machine_config/index.mdx` at line 13, The sentence
beginning with "Machine Configuration releases on a different cadence..." is a
76-word run-on that combines multiple distinct concepts (release cadence
difference, installation/upgrade procedures, operational details like firewall
and time synchronization, and two ExternalSiteLink references) into a single
structure. Break this into 2-3 shorter sentences by first stating the release
cadence difference, then in separate sentence(s) explain the installation and
upgrade procedures with their associated links and operational details,
improving overall readability and making each concept clearer for readers.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@docs/en/configure/machine_config/index.mdx`:
- Line 13: The sentence beginning with "Machine Configuration releases on a
different cadence..." is a 76-word run-on that combines multiple distinct
concepts (release cadence difference, installation/upgrade procedures,
operational details like firewall and time synchronization, and two
ExternalSiteLink references) into a single structure. Break this into 2-3
shorter sentences by first stating the release cadence difference, then in
separate sentence(s) explain the installation and upgrade procedures with their
associated links and operational details, improving overall readability and
making each concept clearer for readers.

In `@docs/en/configure/scalability/resource_manager_policies.mdx`:
- Around line 101-103: The paragraph containing lines 101-103 contains a single
68-word sentence that conflates three separate concepts: configuring topology
and reservation settings, additional requirements for static policies, and the
conditional workaround for when orchestration is unavailable. Break this long
sentence into three shorter sentences, each addressing one concept
independently. The first should explain how to configure topologyManagerPolicy,
topologyManagerScope, reservedSystemCPUs, and reserved resources on immutable
nodes. The second should describe the additional node draining and state reset
requirements for static CPU and Memory Manager policies. The third should
address the conditional workaround when Machine Configuration orchestration is
not yet available. This will improve clarity and readability without altering
the technical content.

In `@docs/en/networking/functions/configure_node_local_dns.mdx`:
- Around line 33-34: The prose sentence describing the locations of
kubeletExtraArgs in KubeadmControlPlane and KubeadmConfigTemplate is too long
and complex to parse easily. Simplify the presentation by either converting the
nested path locations into a bulleted list for clarity, or enhance the YAML code
example below by adding inline comments that show the full path context (e.g.,
comments indicating KubeadmControlPlane initConfiguration and joinConfiguration
paths, and KubeadmConfigTemplate template.spec path) alongside the
kubeletExtraArgs configuration. Choose whichever approach makes the
documentation easier for readers to follow.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4e753157-c929-4792-b587-da045b5c3ef4

📥 Commits

Reviewing files that changed from the base of the PR and between e8ad851 and 1fa6f23.

📒 Files selected for processing (4)
  • docs/en/configure/machine_config/index.mdx
  • docs/en/configure/scalability/resource_manager_policies.mdx
  • docs/en/networking/functions/configure_node_local_dns.mdx
  • docs/en/networking/functions/configure_subnet.mdx

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