Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
9c566de
improve switch mq user docs
tinswzy Jun 8, 2026
36a62ca
docs: state Woodpecker + local FS as the Docker standalone default
tinswzy Jun 8, 2026
3374613
docs: document Compose default deployment, version MQ defaults, and 2…
tinswzy Jun 8, 2026
4607d46
docs: remove stale Pulsar references from the Milvus Operator install…
tinswzy Jun 9, 2026
6b4254c
docs: add dedicated Pulsar page and stand up the Data Infrastructure …
tinswzy Jun 9, 2026
79f952d
docs: switch Helm cluster install to Woodpecker service mode and clea…
tinswzy Jun 10, 2026
5f7bd00
docs: clarify Woodpecker service mode is distributed/cluster only (st…
tinswzy Jun 10, 2026
8c6b263
docs: mark Woodpecker as the default bundled MQ and Pulsar as optiona…
tinswzy Jun 10, 2026
312dbe2
docs: note Woodpecker as the default message queue in the deployment …
tinswzy Jun 10, 2026
0ab6d2d
docs: fix Windows page title and note Woodpecker default on Windows/R…
tinswzy Jun 10, 2026
78e04d6
docs: migrate Use Woodpecker into the new chapter as woodpecker.md
tinswzy Jun 10, 2026
318af60
docs: build out the mqType section with a message queue overview and …
tinswzy Jun 11, 2026
40a8397
docs: add Data Infrastructure & Integration overview, etcd, and objec…
tinswzy Jun 11, 2026
66271b6
docs: restructure Switch MQ Type into Woodpecker-paired pages
tinswzy Jun 11, 2026
ef4b4f6
docs: cleanup pass — link text, version variables, stale default-MQ w…
tinswzy Jun 11, 2026
5f260cf
docs: fix message-queue doc bugs — anchors, stale dependency links, h…
tinswzy Jun 12, 2026
093cd26
docs: revert stray edit to chapter overview, keep 'Woodpecker (default)'
tinswzy Jun 12, 2026
14dddad
docs: select MQ explicitly in per-MQ Helm commands, standardize on Mi…
tinswzy Jun 12, 2026
d5a5c87
docs: WP-default follow-ups for MQ install pages
tinswzy Jun 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions site/en/adminGuide/data-infra-integration-overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
id: data-infra-integration-overview.md
title: Data Infrastructure & Integration
summary: Overview of the third-party infrastructure Milvus integrates with — metadata, object storage, and message queues.
---

# Data Infrastructure & Integration

Milvus builds on open data infrastructure for its core dependencies. This chapter covers the components you can plug in and configure:

- **[Metadata](etcd.md)** — Milvus stores metadata (collection schemas, node status, consumption checkpoints) in etcd.
- **[Object Storage](object-storage.md)** — Milvus stores index files and binary logs in MinIO, AWS S3, or other S3-compatible / cloud object storage.
- **[Message Queue](mqtype-overview.md)** — Milvus uses a write-ahead log (WAL): Woodpecker (default), Pulsar, Kafka, or RocksMQ.

By default, a new Milvus 3.x deployment runs with **Woodpecker** as the message queue, **etcd** for metadata, and **MinIO** for object storage — no extra messaging infrastructure required.
8 changes: 4 additions & 4 deletions site/en/adminGuide/deploy_pulsar.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ summary: Learn how to configure message storage with Docker Compose or Helm.

# Configure Message Storage with Docker Compose or Helm

Milvus uses Pulsar or Kafka for managing logs of recent changes, outputting stream logs, and providing log subscriptions. Pulsar is the default message storage system. This topic introduces how to configure message storage with Docker Compose or Helm.
Milvus uses a message queue for managing logs of recent changes, outputting stream logs, and providing log subscriptions. Starting from Milvus 3.0.x, Woodpecker is the default recommended message queue; this topic introduces how to configure Pulsar or Kafka with Docker Compose or Helm.

You can configure Pulsar with [Docker Compose](https://docs.docker.com/get-started/overview/) or on K8s and configure Kafka on K8s.

Expand Down Expand Up @@ -75,7 +75,7 @@ helm install <your_release_name> milvus/milvus -f values.yaml

For Milvus clusters on K8s, you can configure Woodpecker in the same command that starts Milvus. Alternatively, you can configure Woodpecker using the <code>values.yml</code> file on the /charts/milvus path in the [milvus-helm](https://github.com/milvus-io/milvus-helm) repository before you start Milvus.

For details on how to configure Milvus using Helm, refer to [Configure Milvus with Helm Charts](configure-helm.md). For details on Woodpecker-related configuration items, refer to [woodpecker-related configurations](use-woodpecker.md).
For details on how to configure Milvus using Helm, refer to [Configure Milvus with Helm Charts](configure-helm.md). For details on Woodpecker-related configuration items, refer to [woodpecker-related configurations](woodpecker.md).
|
### Using the YAML file

Expand Down Expand Up @@ -104,7 +104,7 @@ extraConfigFiles:
maxIntervalForLocalStorage: 10ms # Maximum interval between two sync operations local storage backend, default is 10 milliseconds.
maxBytes: 256M # Maximum size of write buffer in bytes.
maxEntries: 10000 # Maximum entries number of write buffer.
maxFlushRetries: 5 # Maximum size of write buffer in bytes.
maxFlushRetries: 5 # Maximum number of flush retries.
retryInterval: 1000ms # Maximum interval between two retries. default is 1000 milliseconds.
maxFlushSize: 2M # Maximum size of a fragment in bytes to flush.
maxFlushThreads: 32 # Maximum number of threads to flush data
Expand Down Expand Up @@ -156,7 +156,7 @@ helm install <your_release_name> milvus/milvus -f values.yaml

## Configure RocksMQ with Helm

Milvus standalone uses RocksMQ as the default message storage. For detailed steps on how to configure Milvus with Helm, refer to [Configure Milvus with Helm Charts](configure-helm.md). For details on RocksMQ-related configuration items, refer to [RocksMQ-related configurations](configure_rocksmq.md).
RocksMQ was the default message storage in Milvus standalone up to 2.5.x; from 2.6.x the default is Woodpecker. For detailed steps on how to configure Milvus with Helm, refer to [Configure Milvus with Helm Charts](configure-helm.md). For details on RocksMQ-related configuration items, refer to [RocksMQ-related configurations](configure_rocksmq.md).

- If you start Milvus with RocksMQ and want to change its settings, you can run `helm upgrade -f ` with the changed settings in the following YAML file.

Expand Down
24 changes: 24 additions & 0 deletions site/en/adminGuide/etcd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
id: etcd.md
title: etcd
---

# etcd (Metadata)

Milvus uses **etcd** to store metadata such as collection schemas, node status, and message-consumption checkpoints.

## Version

Milvus is validated against **etcd 3.5.x**. When you install Milvus with Helm, the bundled etcd image is `milvusdb/etcd:3.5.25-r1` by default.

## Change the etcd image with Helm

To pin or replace the etcd image version, override `etcd.image.tag` (and, if needed, `etcd.image.repository`) when installing or upgrading with Helm:

```bash
helm install my-release zilliztech/milvus \
--set etcd.image.repository=milvusdb/etcd \
--set etcd.image.tag=3.5.25-r1
```

For external etcd, or for detailed Docker Compose / Helm / Milvus Operator configuration, see [Configure Meta Storage with Docker Compose or Helm](deploy_etcd.md) and [Configure Meta Storage with Milvus Operator](meta_storage_operator.md).
12 changes: 6 additions & 6 deletions site/en/adminGuide/message_storage_operator.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ summary: Learn how to configure message storage with Milvus Operator.

# Configure Message Storage with Milvus Operator

Milvus uses RocksMQ, Pulsar or Kafka for managing logs of recent changes, outputting stream logs, and providing log subscriptions. This topic introduces how to configure message storage dependencies when you install Milvus with Milvus Operator. For more details, refer to [Configure Message Storage with Milvus Operator](https://github.com/zilliztech/milvus-operator/blob/main/docs/administration/manage-dependencies/message-storage.md) in the Milvus Operator repository.
In Milvus 3.x, Woodpecker is the default message queue (see [Woodpecker](woodpecker.md)). With Milvus Operator, you can also configure RocksMQ, Pulsar, or Kafka for managing logs of recent changes, outputting stream logs, and providing log subscriptions. This topic introduces how to configure message storage dependencies when you install Milvus with Milvus Operator. For more details, refer to [Configure Message Storage with Milvus Operator](https://github.com/zilliztech/milvus-operator/blob/main/docs/administration/manage-dependencies/message-storage.md) in the Milvus Operator repository.

This topic assumes that you have deployed Milvus Operator.

Expand All @@ -31,14 +31,14 @@ The table below shows whether RocksMQ, Pulsar, Kafka, and Woodpecker are support

There are also other limitations for specifying the message storage:
- Only one message storage for one Milvus instance is supported. However we still have backward compatibility with multiple message storages set for one instance. The priority is as follows:
- standalone mode: RocksMQ (default) > Pulsar > Kafka
- cluster mode: Pulsar (default) > Kafka
- standalone mode: Woodpecker (default) > RocksMQ > Pulsar > Kafka
- cluster mode: Woodpecker (default) > Pulsar > Kafka
- The message storage cannot be changed while the Milvus system is running.
- Only Kafka 2.x or 3.x verison is supported.
- **Upgrade limitations**: {{fragments/mq_upgrade_limitation.md}}

## Configure RocksMQ
RocksMQ is the default message storage in Milvus standalone.
RocksMQ was the default message storage in Milvus standalone up to 2.5.x (superseded by Woodpecker from 2.6.x).

<div class="alert note">

Expand Down Expand Up @@ -85,7 +85,7 @@ spec:

## Configure Woodpecker

Woodpecker is a cloud-native Write-Ahead Log (WAL) designed for object storage. It offers high throughput, low operational overhead, and seamless scalability. For more details, see [Use Woodpecker](use-woodpecker.md).
Woodpecker is a cloud-native Write-Ahead Log (WAL) designed for object storage. It offers high throughput, low operational overhead, and seamless scalability. For more details, see [Woodpecker](woodpecker.md).

## Configure Pulsar

Expand Down Expand Up @@ -185,7 +185,7 @@ kubectl apply -f milvuscluster.yaml

## Configure Kafka

Pulsar is the default message storage in a Milvus cluster. If you want to use Kafka, add the optional field `msgStreamType` to configure Kafka.
Pulsar was the default message storage in a Milvus cluster up to 2.5.x (superseded by Woodpecker from 2.6.x). If you want to use Kafka, add the optional field `msgStreamType` to configure Kafka.

`kafka` supports `external` and `inCluster`.

Expand Down
123 changes: 123 additions & 0 deletions site/en/adminGuide/mq_kafka.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
---
id: mq_kafka.md
title: Kafka
---

# Use Kafka as the Milvus Message Queue

Apache Kafka is one of the message-queue (WAL) backends Milvus supports. In Milvus 3.x, [Woodpecker](woodpecker.md) is the default message queue; Kafka remains fully supported for users who prefer it. Kafka is primarily used with Milvus Distributed (cluster); standalone deployments typically use embedded Woodpecker or [RocksMQ](mq_rocksmq.md).

## Version compatibility

- Milvus supports **Kafka 2.x and 3.x** only.
- Kafka is configured for Milvus Distributed (cluster) via Helm or Milvus Operator.

## Deploy a Milvus cluster with Kafka using Helm

### Install and configure

To use an external Kafka service, disable the bundled Pulsar and enable `externalKafka` in a `values.yaml` override, then install Milvus with it:

```yaml
pulsarv3:
enabled: false
externalKafka:
enabled: true
brokerList: <your_kafka_address>:<your_kafka_port>
securityProtocol: SASL_SSL
sasl:
mechanisms: PLAIN
username: ""
password: ""
```

```bash
helm install my-release zilliztech/milvus -f values.yaml
```

For SASL/SSL authentication details, see [Connect to Kafka with SASL/SSL](connect_kafka_ssl.md).

### Uninstall

```bash
helm uninstall my-release
```

## Deploy a Milvus cluster with Kafka using Milvus Operator

With Milvus Operator, set `spec.dependencies.msgStreamType: "kafka"` and configure Kafka under `spec.dependencies.kafka` (cluster only). `kafka` supports `external` and `inCluster`.

### External Kafka

```yaml
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
config:
kafka:
# securityProtocol supports: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
securityProtocol: PLAINTEXT
# saslMechanisms supports: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512
saslMechanisms: PLAIN
saslUsername: ""
saslPassword: ""
dependencies:
msgStreamType: "kafka"
kafka:
external: true
brokerList:
- "kafkaBrokerAddr1:9092"
- "kafkaBrokerAddr2:9092"
```

<div class="alert note">

SASL configurations are supported in Milvus Operator v0.8.5 or later.

</div>

### Internal (in-cluster) Kafka

```yaml
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
msgStreamType: "kafka"
kafka:
inCluster:
values: {} # see https://artifacthub.io/packages/helm/bitnami/kafka
components: {}
config: {}
```

Apply the configuration (assuming the file is `milvuscluster.yaml`):

```bash
kubectl apply -f milvuscluster.yaml
```

### Uninstall

```bash
kubectl delete milvus my-release
```

## Notes

- **Upgrading from 2.5.x to 2.6.x:** {{fragments/mq_upgrade_limitation.md}} If you run Kafka and want to keep it, do not change the message queue during the upgrade.
- Only **Kafka 2.x and 3.x** are supported.
- For SASL/SSL connectivity, see [Connect to Kafka with SASL/SSL](connect_kafka_ssl.md).

## What's next

- [Woodpecker (default message queue)](woodpecker.md)
- [Switch between Kafka and Woodpecker](switch-kafka-woodpecker.md)
153 changes: 153 additions & 0 deletions site/en/adminGuide/mq_pulsar.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
---
id: mq_pulsar.md
title: Pulsar
---

# Use Pulsar as the Milvus Message Queue

Apache Pulsar is one of the message-queue (WAL) backends Milvus supports. In Milvus 3.x, [Woodpecker](woodpecker.md) is the default message queue; Pulsar remains fully supported for users who prefer it. Pulsar is primarily used with Milvus Distributed (cluster); standalone deployments typically use embedded Woodpecker or [RocksMQ](mq_rocksmq.md).

## Version compatibility

| Milvus version | Supported Pulsar version | Default |
| --- | --- | --- |
| 2.5.x and later | Pulsar v3 (recommended) or Pulsar v2 | Pulsar v3 (via Helm / Milvus Operator) |
| 2.4.x and earlier | Pulsar v2 | Pulsar v2 |

Since Milvus 2.5, the Milvus Helm chart and Milvus Operator deploy **Pulsar v3** by default; Pulsar v2 remains compatible. See [Upgrade Pulsar from v2 to v3](upgrade-pulsar-v3.md) and [Continue Using Pulsar v2](use-pulsar-v2.md).

## Deploy a Milvus cluster with Pulsar using Helm

### Install

To deploy a Milvus cluster that uses the bundled Pulsar (instead of Woodpecker), install the Helm chart with the Streaming Node enabled:

```bash
helm install my-release zilliztech/milvus \
--set image.all.tag=v{{var.milvus_release_version}} \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
--set indexNode.enabled=false
```

On Kubernetes v1.25 and later, if you hit PodDisruptionBudget API issues from the bundled Pulsar sub-chart, disable the Pulsar PDB policies:

```bash
helm install my-release zilliztech/milvus \
--set pulsar.bookkeeper.pdb.usePolicy=false \
--set pulsar.broker.pdb.usePolicy=false \
--set pulsar.proxy.pdb.usePolicy=false \
--set pulsar.zookeeper.pdb.usePolicy=false
```

### Configure

To connect Milvus to an **external** Pulsar service, disable the bundled Pulsar and enable `externalPulsar` in a `values.yaml` override:

```yaml
pulsarv3:
enabled: false
externalPulsar:
enabled: true
host: <your_pulsar_host>
port: 6650
maxMessageSize: "5242880" # 5 MB, maximum size of each message
tenant: public
namespace: default
```

```bash
helm install my-release zilliztech/milvus -f values.yaml
```

### Uninstall

```bash
helm uninstall my-release
```

If you used the bundled Pulsar and want to remove its persisted data, delete the Pulsar PVCs (named `my-release-pulsarv3-*`):

```bash
kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...
```

## Deploy a Milvus cluster with Pulsar using Milvus Operator

With Milvus Operator, configure Pulsar under `spec.dependencies.pulsar` (supported for Milvus cluster only). `pulsar` supports `external` and `inCluster`.

### External Pulsar

```yaml
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
external: true
endpoints:
- 192.168.1.1:6650
components: {}
config: {}
```

### Internal (in-cluster) Pulsar

```yaml
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
inCluster:
values:
components:
autorecovery: false
zookeeper:
replicaCount: 1
bookkeeper:
replicaCount: 1
broker:
replicaCount: 1
configData:
autoSkipNonRecoverableData: "true"
managedLedgerDefaultEnsembleSize: "1"
managedLedgerDefaultWriteQuorum: "1"
managedLedgerDefaultAckQuorum: "1"
proxy:
replicaCount: 1
components: {}
config: {}
```

Apply the configuration (assuming the file is `milvuscluster.yaml`):

```bash
kubectl apply -f milvuscluster.yaml
```

### Uninstall

```bash
kubectl delete milvus my-release
```

## Notes

- **Upgrading from 2.5.x to 2.6.x:** {{fragments/mq_upgrade_limitation.md}} If you run Pulsar and want to keep it, do not change the message queue during the upgrade.
- **Pulsar v2 → v3:** see [Upgrade Pulsar from v2 to v3](upgrade-pulsar-v3.md); to stay on v2, see [Continue Using Pulsar v2](use-pulsar-v2.md).

## What's next

- [Woodpecker (default message queue)](woodpecker.md)
- [Switch between Pulsar and Woodpecker](switch-pulsar-woodpecker.md)
Loading