Skip to content

Milvus docs: GPU and SR-IOV, adopting a running cluster, logical backup - #1086

Open
Sabnaj-42 wants to merge 8 commits into
masterfrom
milvus-inplace-adoption
Open

Sabnaj-42 wants to merge 8 commits into
masterfrom
milvus-inplace-adoption

Conversation

@Sabnaj-42

Copy link
Copy Markdown

Three new Milvus guides, plus fixes to the adopt guide found by following it on a test cluster.

  • GPU and SR-IOV: running a GPU build, mixed GPU node pools with node groups and a PlacementPolicy, SR-IOV/Multus networking.
  • Adopting a running cluster: taking over a Milvus installed by a Helm chart in place (same etcd root path, object storage, credentials and client Service), and handing it back with kubedb.com/milvus-orphan-on-delete.
    • What happens to the client Service and its ports; keeping a different port or a LoadBalancer/NodePort; why the chart must not be removed with helm uninstall.
    • Keep the woodpecker section in the carried milvus.yaml (dropping it loses e.g. woodpecker.storage.rootPath); drop only etcd.
    • Keep the REST API on the gRPC port: set proxy.http.port: "", since KubeDB renders 8080.
    • Pre-flight checks: confirm the WAL really is Woodpecker (the upstream chart's cluster mode defaults to Pulsar), delete a non-headless chart Service on a governing-Service name, give a rehearsal Milvus its own auth Secret.
  • Logical backup and restore: KubeStash backup; full, collection-level, suffixed and in-place restore.

Related: kubedb/milvus#85, kubedb/apimachinery, kubedb/milvus-backup-plugin, kubedb/installer (milvus-inplace-adoption).

Add three Milvus guides:

- gpu-sriov: GPU builds and the gpu.supported rule, per-role gpu fields,
  spreading a role across GPU pools with a PetSet PlacementPolicy, the
  network.sriov fields (RDMA, GDS), what the operator renders (Multus
  annotation, advertise-IP init container, readiness probe), the
  SRIOVNetworkAttached and SRIOVAddressAdvertised conditions, IPC_LOCK.
- adopt: moving a Milvus that already runs (e.g. from a Helm chart) under
  KubeDB in place, the fields that must match the running cluster (meta etcd
  root path, object storage keys, root credentials, config), a role-by-role
  handover, rollback, and handing the cluster back with
  kubedb.com/milvus-orphan-on-delete.
- backup/logical: KubeStash logical backup and restore with the collections,
  inPlaceRestore, dropExistCollection and timeout parameters.

Signed-off-by: sabnaj <sabnaj@appscode.com>
Describe what happens to the existing client Service when a Milvus is named
after it (same name and IP, selector moved, KubeDB ports replaced by name or
number, other ports kept), how to keep a different port number or a
LoadBalancer/NodePort with the primary service template, and why the chart
must not be removed with helm uninstall.

Signed-off-by: sabnaj <sabnaj@appscode.com>
The guide said to drop the mq, woodpecker and etcd sections from the
milvus.yaml handed to KubeDB. KubeDB's WAL defaults replace the whole
woodpecker section, so dropping it loses settings such as
woodpecker.storage.rootPath (the upstream Helm chart sets it) and can move
where the write-ahead log is read from. Keep the woodpecker section; drop
only etcd, which the Milvus object owns.

Signed-off-by: sabnaj <sabnaj@appscode.com>
KubeDB renders proxy.http.port 8080, while Milvus by default serves its
RESTful API on the gRPC port 19530. Found by adopting a Helm-installed
Milvus: REST answered on 19530 before and would only answer on 8080 after.
Set proxy.http.port to "" in the carried milvus.yaml to keep it.

Signed-off-by: sabnaj <sabnaj@appscode.com>
From adopting a Helm-installed Milvus on a cluster:
- confirm the WAL really is Woodpecker (the upstream chart's cluster mode
  defaults to Pulsar unless woodpecker.enabled is set)
- delete a chart Service on a KubeDB governing Service name that is not
  headless; KubeDB now reports it
- give a rehearsal Milvus its own copy of the auth Secret
- the client Service now moves only once a KubeDB proxy is Ready

Signed-off-by: sabnaj <sabnaj@appscode.com>
Copilot AI balanced review requested due to automatic review settings October 30, 2026 08:47

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Visit the preview URL for this PR (updated for commit d08c053):

https://kubedb-v2-hugo--pr1086-milvus-inplace-adopt-cdkwxdtx.web.app

(expires Fri, 06 Nov 2026 18:32:26 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 0f29ae8ae0bd54a99bf2b223b6833be47acd5943

…mpact

- Lead with kubectl dba adopt milvus (plan, run, status, rollback); the
  manual steps stay as the contract the command follows.
- The overlap handover (KubeDB's pods of a role before the old ones stop) is
  supported and tested; the old text said two copies of a role must never
  run together.
- Manual rollback: delete the Milvus with orphan-on-delete first, so the
  operator no longer moves the client Service, and point the Service back
  at the old proxies with ports their pods define.
- Measured client impact of both methods and of a rollback.
- CLI reference pages for kubectl dba adopt.

Signed-off-by: sabnaj <sabnaj@appscode.com>
- kubectl dba adopt milvus -f adopt.yaml: a complete example for a chart
  without the upstream labels and QueryNodes on two GPU pools; plan
  --output-dir writes the file.
- A table of the options that are required or needed in some cases; the
  version comes from the running image and no Helm version is needed.
- kubectl dba runs on the admin's machine, not in the cluster.
- Leave the Helm release alone after the adoption (no upgrade, no
  uninstall).
- Regenerate the kubectl dba adopt reference pages for -f.

Signed-off-by: sabnaj <sabnaj@appscode.com>
Signed-off-by: sabnaj <sabnaj@appscode.com>
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.

2 participants