Skip to content

support to deploy Milvus in ACP#124

Open
SuJinpei wants to merge 4 commits intomainfrom
feat/support-to-deploy-milvus
Open

support to deploy Milvus in ACP#124
SuJinpei wants to merge 4 commits intomainfrom
feat/support-to-deploy-milvus

Conversation

@SuJinpei
Copy link
Contributor

@SuJinpei SuJinpei commented Feb 6, 2026

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive Milvus vector-database guide covering background, prerequisites, installation and deployment options (standalone & cluster), storage and message-queue choices, configuration reference, pre-deployment checks, verification workflow, troubleshooting/diagnostics, operational best practices for scaling, performance, security and backups, and guidance for production-ready integration with ML frameworks and RAG workflows.

@SuJinpei SuJinpei requested a review from a team February 6, 2026 09:10
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 6, 2026

Walkthrough

Added a new comprehensive documentation guide docs/en/solutions/How_to_Use_Milvus.md describing Milvus background, prerequisites, deployment options (standalone, cluster, in-cluster/external storage), messaging choices, configuration, diagnostics, troubleshooting, backup strategies, and production recommendations. (33 words)

Changes

Cohort / File(s) Summary
Milvus Documentation
docs/en/solutions/How_to_Use_Milvus.md
New comprehensive guide (+~1275 lines) covering Milvus overview, environment prerequisites, core concepts, installation and deployment options (StandAlone, Cluster, in-cluster/external S3 storage), message queue options (Woodpecker/Kafka/Pulsar), manifests, pre-deployment checks, configuration reference, diagnostics, troubleshooting, backups, and production guidelines.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 I hopped through docs to plant a seed,
Vectors, indexes, configs all I heed,
Manifests and checks in tidy rows,
Backups snug where data grows,
🥕📗 — Milvus maps the searcher's seed.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and accurately describes the main change: adding documentation and support for deploying Milvus in ACP, which aligns with the 1,275 lines added to the comprehensive deployment guide.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/support-to-deploy-milvus

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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@docs/en/solutions/How_to_Use_Milvus.md`:
- Line 211: Replace the outdated Kafka link in the "Deploy Kafka following the
[Kafka installation guide]" sentence so it points to the ACP 4.2 Kafka docs;
change the URL from the 4.1 link to
https://docs.alauda.io/container_platform/4.2/en/appservice/kafka/kafka.html in
the How_to_Use_Milvus.md content.
- Around line 703-708: Replace the incorrect ACP Kafka link
'https://docs.alauda.io/kafka/4.2/' with the correct ACP 4.2 path
'https://docs.alauda.io/container_platform/4.2/appservice/kafka/' in the list of
references (the entry currently labeled "ACP Kafka Documentation") so the
prerequisite link matches ACP 4.2 documentation referenced earlier in the doc.
🧹 Nitpick comments (2)
docs/en/solutions/How_to_Use_Milvus.md (2)

394-394: Consider more generic endpoint example.

The external storage endpoint example minio-service.minio.svc:9000 appears to be a specific in-cluster service reference. For external S3-compatible storage, consider using a more generic example like s3.example.com:9000 or explicitly noting this is for MinIO deployed in a separate namespace.


661-666: Consider adding TLS configuration examples.

The best practices section recommends enabling TLS and authentication for production (line 664), but the deployment examples don't demonstrate this configuration. Consider adding a section or example showing how to enable TLS for production deployments.

- **ACP Integration**: Supported as a service on ACP

**Setup:**
1. Deploy Kafka following the [Kafka installation guide](https://docs.alauda.io/kafka/4.1/)
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's examine the file around line 211 and find where prerequisites mention ACP version
cat -n docs/en/solutions/How_to_Use_Milvus.md | sed -n '1,230p'

Repository: alauda/knowledge

Length of output: 10648


🌐 Web query:

Kafka documentation ACP 4.2.0 alauda.io correct version

💡 Result:

For ACP 4.2.0, the correct Alauda Kafka documentation is under the ACP 4.2 doc set (not the older 4.0/4.1 paths), specifically:

  • Alauda Streaming Service for Kafka (ACP 4.2 docs): docs.alauda.cn/container_platform/4.2/en/appservice/kafka/kafka.html [2]
  • In ACP 4.2 Application Services, the supported Kafka version shown is Kafka 3.8 (recommended). [1]
  • ACP 4.2.0 release notes are also under the same 4.2 documentation tree. [3]

Sources: [1] (docs.alauda.cn) [2] (docs.alauda.cn) [3] (docs.alauda.cn)

Citations:


Update Kafka documentation link to match ACP 4.2.0.

Line 211 references Kafka 4.1 documentation, but the prerequisites specify ACP v4.2.0. Update the link to point to the ACP 4.2 Kafka documentation: https://docs.alauda.io/container_platform/4.2/en/appservice/kafka/kafka.html (or the equivalent path for your documentation domain).

🤖 Prompt for AI Agents
In `@docs/en/solutions/How_to_Use_Milvus.md` at line 211, Replace the outdated
Kafka link in the "Deploy Kafka following the [Kafka installation guide]"
sentence so it points to the ACP 4.2 Kafka docs; change the URL from the 4.1
link to
https://docs.alauda.io/container_platform/4.2/en/appservice/kafka/kafka.html in
the How_to_Use_Milvus.md content.

Comment on lines +703 to +708
- [Milvus Documentation](https://milvus.io/docs/) - Comprehensive usage guide and API reference
- [Milvus Woodpecker Guide](https://milvus.io/docs/use-woodpecker.md) - Woodpecker WAL documentation
- [Milvus Bootcamp](https://github.com/milvus-io/bootcamp) - Tutorial notebooks and examples
- [PyMilvus SDK](https://milvus.io/api-reference/pymilvus/v2.4.x/About.md) - Python client documentation
- [Milvus Operator GitHub](https://github.com/zilliztech/milvus-operator) - Operator source code
- [ACP Kafka Documentation](https://docs.alauda.io/kafka/4.2/) - Kafka installation on ACP
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

Milvus documentation milvus.io/docs/ accessibility current

💡 Result:

  • Current Milvus docs entry point: https://milvus.io/docs (currently defaults to the v2.6.x doc set, and the homepage highlights the June 2025 – Milvus 2.6.0 docs update). (milvus.io)
  • Versioned docs are available: e.g. https://milvus.io/docs/v2.4.x, https://milvus.io/docs/v2.5.x, etc. (milvus.io)
  • Accessibility (site availability): the documentation pages are publicly reachable over HTTPS and load without requiring an account/login. (milvus.io)
  • Alternate/mirrored docs host: there is also a docs site served under https://blog.milvus.io/docs that shows the same “What’s new in docs / June 2025 – Milvus 2.6.0 release” block. (blog.milvus.io)

Citations:


🌐 Web query:

Milvus PyMilvus v2.4.x API reference documentation

💡 Result:

Official PyMilvus v2.4.x API reference (Milvus docs):

About / landing page (v2.4.x):
https://milvus.io/api-reference/pymilvus/v2.4.x/About.md

MilvusClient class reference (v2.4.x):
https://milvus.io/api-reference/pymilvus/v2.4.x/MilvusClient/Client/MilvusClient.md

Example method page (create_collection, v2.4.x):
https://milvus.io/api-reference/pymilvus/v2.4.x/MilvusClient/Collections/create_collection.md/

PyPI page (also points to the same v2.4.x docs and shows current 2.4.x release info):

https://pypi.org/project/pymilvus/

[1][2][3][4]

Sources: [1] (milvus.io) [2] (milvus.io) [3] (milvus.io) [4] (pypi.org)

Citations:


🌐 Web query:

site:github.com/milvus-io/bootcamp current

💡 Result:

  • The milvus-io/bootcamp repo’s current default branch is master. [1]
  • The Milvus GitHub org page shows bootcamp was last updated Dec 15, 2025. [2]
  • The “current” Bootcamp tutorial landing page (with the up-to-date list of tutorials like RAG, Multimodal RAG, Graph RAG, Hybrid Search, etc.) is on Milvus Bootcamp. [3]

Sources: [1] [2] [3]


🌐 Web query:

site:github.com/zilliztech/milvus-operator current

💡 Result:

  • Repo: zilliztech/milvus-operator (Milvus Kubernetes Operator). [1]
  • Current “latest” GitHub Release: v1.3.5 (released Dec 5, 2025). [2]
  • Newest tag on the repo (not marked as a GitHub Release): v1.3.4-hotfix4 (tagged Dec 30, 2025). [3]
  • Install/upgrade (from README):
    • Helm repo: helm repo add milvus-operator https://zilliztech.github.io/milvus-operator/ then helm -n milvus-operator upgrade --install --create-namespace milvus-operator milvus-operator/milvus-operator. [1]
    • Raw manifest example (v1.3.5): kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/v1.3.5/deploy/manifests/deployment.yaml. [1]

Sources: [1], [2], [3]


🌐 Web query:

ACP Kafka 4.2 documentation alauda.io accessibility

💡 Result:

  • ACP 4.2 “Kafka” documentation (Alauda Streaming Service for Kafka) is published under the Alauda Container Platform 4.2 → Application Services → Kafka section on docs.alauda.io, and appears to be publicly accessible (no login wall in the docs site itself). [1], [2]

    • Entry page: https://docs.alauda.io/container_platform/4.2/appservice/kafka/ [1]
    • “About” page: https://docs.alauda.io/container_platform/4.2/appservice/kafka/kafka.html [2]
  • The separate top-level Kafka docs path https://docs.alauda.io/kafka/ currently redirects to the Kafka 4.1 docs, not 4.2. [3]

If by “accessible” you mean external network access (blocked by firewall/VPN, SSO, etc.), tell me your environment (public internet vs. corporate network) and the exact error (HTTP status / screenshot), and I’ll help narrow it down.


Correct the ACP Kafka documentation link.

Most links are accessible and current. However, https://docs.alauda.io/kafka/4.2/ redirects to Kafka 4.1 documentation instead of 4.2. Use the correct ACP 4.2 path: https://docs.alauda.io/container_platform/4.2/appservice/kafka/ for consistency with the ACP 4.2 prerequisites mentioned earlier in the document.

🤖 Prompt for AI Agents
In `@docs/en/solutions/How_to_Use_Milvus.md` around lines 703 - 708, Replace the
incorrect ACP Kafka link 'https://docs.alauda.io/kafka/4.2/' with the correct
ACP 4.2 path 'https://docs.alauda.io/container_platform/4.2/appservice/kafka/'
in the list of references (the entry currently labeled "ACP Kafka
Documentation") so the prerequisite link matches ACP 4.2 documentation
referenced earlier in the doc.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@docs/en/solutions/How_to_Use_Milvus.md`:
- Around line 700-708: The fenced code block showing the PodSecurity error lacks
a language specifier (markdownlint warning); update the code fence around the
error message in the Milvus doc's example (the block starting with the
PodSecurity error) to include a language tag such as "text" (e.g., replace ```
with ```text) so the lexer and markdownlint recognize the block language.
- Around line 96-97: Remove the empty line inside the blockquote that starts
with "**Note**: ACP v4.2.0..." so the blockquote is contiguous (no blank line
between the "> **Note**: ..." line and its following content); edit the Markdown
in How_to_Use_Milvus.md to delete that stray blank line in the blockquote so
markdownlint no longer flags it.
- Around line 82-95: Remove the duplicated prerequisite bullet list and keep a
single copy: locate the repeated lines "ACP v4.2.0 or later", "Basic
understanding of vector embeddings and similarity search concepts", and "Access
to your cluster's container image registry (registry addresses vary by cluster)"
and delete the second occurrence; ensure the "⚠️ PodSecurity Policy Requirement"
block (the warning about Milvus v2.6.7 and the kubectl label command) remains
directly beneath the single prerequisite list so the doc contains only one clean
list followed by the PodSecurity warning.

Comment on lines +82 to +95
- ACP v4.2.0 or later
- Basic understanding of vector embeddings and similarity search concepts
- Access to your cluster's container image registry (registry addresses vary by cluster)

> **⚠️ PodSecurity Policy Requirement**: ACP clusters enforce PodSecurity policies by default. Milvus v2.6.7 standalone mode has known compatibility issues with PodSecurity "restricted" policy. For testing/development, you may need to exempt your namespace:
> ```bash
> kubectl label namespace <namespace> pod-security.kubernetes.io/enforce=privileged
> ```
> See [Milvus Standalone Pod Crashes](#milvus-standalone-pod-crashes-exit-code-134) for details and workarounds.

- ACP v4.2.0 or later
- Basic understanding of vector embeddings and similarity search concepts
- Access to your cluster's container image registry (registry addresses vary by cluster)

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove the duplicated prerequisite list.
The bullet list is repeated verbatim, which can confuse readers and cause drift.

🧹 Suggested cleanup
- - ACP v4.2.0 or later
- - Basic understanding of vector embeddings and similarity search concepts
- - Access to your cluster's container image registry (registry addresses vary by cluster)
-
- > **⚠️ PodSecurity Policy Requirement**: ACP clusters enforce PodSecurity policies by default. Milvus v2.6.7 standalone mode has known compatibility issues with PodSecurity "restricted" policy. For testing/development, you may need to exempt your namespace:
- > ```bash
- > kubectl label namespace <namespace> pod-security.kubernetes.io/enforce=privileged
- > ```
- > See [Milvus Standalone Pod Crashes](`#milvus-standalone-pod-crashes-exit-code-134`) for details and workarounds.
-
- - ACP v4.2.0 or later
- - Basic understanding of vector embeddings and similarity search concepts
- - Access to your cluster's container image registry (registry addresses vary by cluster)
+ - ACP v4.2.0 or later
+ - Basic understanding of vector embeddings and similarity search concepts
+ - Access to your cluster's container image registry (registry addresses vary by cluster)
+
+ > **⚠️ PodSecurity Policy Requirement**: ACP clusters enforce PodSecurity policies by default. Milvus v2.6.7 standalone mode has known compatibility issues with PodSecurity "restricted" policy. For testing/development, you may need to exempt your namespace:
+ > ```bash
+ > kubectl label namespace <namespace> pod-security.kubernetes.io/enforce=privileged
+ > ```
+ > See [Milvus Standalone Pod Crashes](`#milvus-standalone-pod-crashes-exit-code-134`) for details and workarounds.
🤖 Prompt for AI Agents
In `@docs/en/solutions/How_to_Use_Milvus.md` around lines 82 - 95, Remove the
duplicated prerequisite bullet list and keep a single copy: locate the repeated
lines "ACP v4.2.0 or later", "Basic understanding of vector embeddings and
similarity search concepts", and "Access to your cluster's container image
registry (registry addresses vary by cluster)" and delete the second occurrence;
ensure the "⚠️ PodSecurity Policy Requirement" block (the warning about Milvus
v2.6.7 and the kubectl label command) remains directly beneath the single
prerequisite list so the doc contains only one clean list followed by the
PodSecurity warning.

Comment on lines +96 to +97
> **Note**: ACP v4.2.0 and later supports in-cluster MinIO and etcd deployment through the Milvus Operator. External storage (S3-compatible) and external message queue (Kafka) are optional.

Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove the blank line inside the blockquote.
markdownlint flags the empty line inside the blockquote near Line 97.

🧹 Suggested fix
-> **Note**: ACP v4.2.0 and later supports in-cluster MinIO and etcd deployment through the Milvus Operator. External storage (S3-compatible) and external message queue (Kafka) are optional.
-
-> **Important**: Different ACP clusters may use different container registry addresses. The documentation uses `build-harbor.alauda.cn` as an example, but you may need to replace this with your cluster's registry (e.g., `registry.alauda.cn:60070`). See the [Troubleshooting section](`#image-pull-authentication-errors`) for details.
+> **Note**: ACP v4.2.0 and later supports in-cluster MinIO and etcd deployment through the Milvus Operator. External storage (S3-compatible) and external message queue (Kafka) are optional.
+> **Important**: Different ACP clusters may use different container registry addresses. The documentation uses `build-harbor.alauda.cn` as an example, but you may need to replace this with your cluster's registry (e.g., `registry.alauda.cn:60070`). See the [Troubleshooting section](`#image-pull-authentication-errors`) for details.
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 97-97: Blank line inside blockquote

(MD028, no-blanks-blockquote)

🤖 Prompt for AI Agents
In `@docs/en/solutions/How_to_Use_Milvus.md` around lines 96 - 97, Remove the
empty line inside the blockquote that starts with "**Note**: ACP v4.2.0..." so
the blockquote is contiguous (no blank line between the "> **Note**: ..." line
and its following content); edit the Markdown in How_to_Use_Milvus.md to delete
that stray blank line in the blockquote so markdownlint no longer flags it.

Comment on lines +700 to +708
**Symptoms**: All Milvus components (operator, etcd, MinIO, Milvus) fail to create with PodSecurity errors:

```
Error creating: pods is forbidden: violates PodSecurity "restricted:latest":
- unrestricted capabilities (container must set securityContext.capabilities.drop=["ALL"])
- seccompProfile (pod or container must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
- allowPrivilegeEscalation != false (container must set securityContext.allowPrivilegeEscalation=false)
- runAsNonRoot != true (pod or container must set securityContext.runAsNonRoot=true)
```
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add a language to fenced code blocks.
markdownlint flags these fences without a language specifier.

💡 Example fix
-```
+```text
 Error creating: pods is forbidden: violates PodSecurity "restricted:latest":
 - unrestricted capabilities (container must set securityContext.capabilities.drop=["ALL"])
 - seccompProfile (pod or container must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")
 - allowPrivilegeEscalation != false (container must set securityContext.allowPrivilegeEscalation=false)
 - runAsNonRoot != true (pod or container must set securityContext.runAsNonRoot=true)
</details>

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.20.0)</summary>

[warning] 702-702: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

In @docs/en/solutions/How_to_Use_Milvus.md around lines 700 - 708, The fenced
code block showing the PodSecurity error lacks a language specifier
(markdownlint warning); update the code fence around the error message in the
Milvus doc's example (the block starting with the PodSecurity error) to include
a language tag such as "text" (e.g., replace withtext) so the lexer and
markdownlint recognize the block language.


</details>

<!-- fingerprinting:phantom:triton:eagle -->

<!-- This is an auto-generated comment by CodeRabbit -->

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