• Sobre a Milvus
  • Começar
  • Conceitos
  • Guia do Utilizador
  • Importação de dados
  • Ferramentas de IA
  • Guia de Administração
  • Ferramentas
  • Integrações
  • Tutoriais
  • Perguntas frequentes
  • API Reference

Configurar o armazenamento de mensagens com o Milvus Operator

No Milvus 3.x, o Woodpecker é a fila de mensagens predefinida (consulte Woodpecker). Com o Milvus Operator, também é possível configurar o RocksMQ, o Pulsar ou o Kafka para gerir registos de alterações recentes, gerar registos de fluxo e disponibilizar subscrições de registos. Este tópico apresenta como configurar as dependências de armazenamento de mensagens ao instalar o Milvus com o Milvus Operator. Para mais detalhes, consulte «Configurar o armazenamento de mensagens com o Milvus Operator » no repositório do Milvus Operator.

Este tópico pressupõe que já tenha implementado o Milvus Operator.

Consulte «Implementar o Milvus Operator » para mais informações.

É necessário especificar um ficheiro de configuração para utilizar o Milvus Operator e iniciar um cluster Milvus.

kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml

Basta editar o modelo de código em « milvus_cluster_default.yaml » para configurar as dependências de terceiros. As secções seguintes explicam como configurar o armazenamento de objetos, o etcd e o Pulsar, respetivamente.

Antes de começar

A tabela abaixo indica se o RocksMQ, o Pulsar, o Kafka e o Woodpecker são suportados no Milvus nos modos autónomo e em cluster.

RocksMQPulsarKafkaWoodpecker
Modo autónomo✔️✔️✔️✔️
Modo de cluster✖️✔️✔️✔️

Existem também outras limitações quanto à especificação do armazenamento de mensagens:

  • É suportado apenas um armazenamento de mensagens por instância do Milvus. No entanto, mantemos a compatibilidade retroativa com a configuração de vários armazenamentos de mensagens para uma única instância. A prioridade é a seguinte:
    • modo autónomo: Woodpecker (predefinição) > RocksMQ > Pulsar > Kafka
    • modo de cluster: Woodpecker (padrão) > Pulsar > Kafka
  • O armazenamento de mensagens não pode ser alterado enquanto o sistema Milvus estiver em execução.
  • Apenas são suportadas as versões 2.x ou 3.x do Kafka.
  • Limitações da atualização: Limitações da fila de mensagens: Ao atualizar para o Milvus v3.0.1, deve manter a sua escolha atual de fila de mensagens. A alternância entre diferentes sistemas de filas de mensagens durante a atualização não é suportada. O suporte à alteração de sistemas de filas de mensagens estará disponível em versões futuras.

Configurar o RocksMQ

O RocksMQ era o armazenamento de mensagens predefinido no Milvus autónomo até à versão 2.5.x (substituído pelo Woodpecker a partir da versão 2.6.x).

Atualmente, só é possível configurar o RocksMQ como armazenamento de mensagens para o Milvus autónomo com o Milvus Operator.

Exemplo

O exemplo seguinte configura um serviço RocksMQ.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: milvus
spec:
  mode: standalone
  dependencies:
    msgStreamType: rocksmq
    rocksmq:
      persistence:
        enabled: true
        pvcDeletion: true
        persistentVolumeClaim:
          spec:
            accessModes: ["ReadWriteOnce"]
            storageClassName: "local-path"  # Specify your storage class
            resources:
              requests:
                storage: 10Gi  # Specify your desired storage size
  components: {}
  config: {}
Opções-chave de configuração:
  • msgStreamType: rocksmq: Define explicitamente o RocksMQ como a fila de mensagens
  • persistence.enabled: Ativa o armazenamento persistente para os dados do RocksMQ
  • persistence.pvcDeletion: Quando definido como «true», o PVC será eliminado quando a instância do Milvus for eliminada
  • persistentVolumeClaim.spec: Especificação padrão do PVC do Kubernetes
  • accessModes: Normalmente, « ReadWriteOnce » para armazenamento em bloco
  • storageClassName: A classe de armazenamento do seu cluster
  • storage: Tamanho do volume persistente

Configurar o Woodpecker

O Woodpecker é um Write-Ahead Log (WAL) nativo da nuvem, concebido para armazenamento de objetos. Oferece elevado débito, baixa sobrecarga operacional e escalabilidade sem interrupções. Para mais detalhes, consulte Woodpecker.

Configurar o Pulsar

O Pulsar gere registos de alterações recentes, gera registos de fluxo e disponibiliza subscrições de registos. A configuração do Pulsar para armazenamento de mensagens é suportada tanto no Milvus autónomo como no cluster Milvus. No entanto, com o Milvus Operator, só é possível configurar o Pulsar como armazenamento de mensagens para o cluster Milvus. Preencha os campos obrigatórios em « spec.dependencies.pulsar » para configurar o Pulsar.

pulsar Suporta external e inCluster.

Pulsar externo

external indica a utilização de um serviço Pulsar externo. Os campos utilizados para configurar um serviço Pulsar externo incluem:

  • external: Um valor de « true » indica que o Milvus utiliza um serviço Pulsar externo.
  • endpoints: Os endpoints do Pulsar.

Exemplo

O exemplo seguinte configura um serviço Pulsar externo.

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies: # Optional
    pulsar: # Optional
      # Whether (=true) to use an existed external pulsar as specified in the field endpoints or 
      # (=false) create a new pulsar inside the same kubernetes cluster for milvus.
      external: true # Optional default=false
      # The external pulsar endpoints if external=true
      endpoints:
      - 192.168.1.1:6650
  components: {}
  config: {}           

Pulsar interno

inCluster indica que, quando um cluster do Milvus é iniciado, um serviço do Pulsar é iniciado automaticamente nesse cluster.

Exemplo

O exemplo seguinte configura um serviço Pulsar interno.

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
            resoureces:
              limit:
                cpu: '4'
              memory: 8Gi
            requests:
              cpu: 200m
              memory: 512Mi
          broker:
            replicaCount: 1
            configData:
              ## Enable `autoSkipNonRecoverableData` since bookkeeper is running
              ## without persistence
              autoSkipNonRecoverableData: "true"
              managedLedgerDefaultEnsembleSize: "1"
              managedLedgerDefaultWriteQuorum: "1"
              managedLedgerDefaultAckQuorum: "1"
          proxy:
            replicaCount: 1
  components: {}
  config: {}            
Este exemplo especifica o número de réplicas de cada componente do Pulsar, os recursos de computação do Pulsar BookKeeper e outras configurações.
Encontre os itens de configuração completos para configurar um serviço Pulsar interno no ficheiro values.yaml. Adicione itens de configuração conforme necessário em « pulsar.inCluster.values », tal como mostrado no exemplo anterior.

Partindo do princípio de que o ficheiro de configuração se chama « milvuscluster.yaml », execute o comando seguinte para aplicar a configuração.

kubectl apply -f milvuscluster.yaml

Configurar o Kafka

O Pulsar era o armazenamento de mensagens predefinido num cluster Milvus até à versão 2.5.x (substituído pelo Woodpecker a partir da versão 2.6.x). Se pretender utilizar o Kafka, adicione o campo opcional « msgStreamType » para configurar o Kafka.

kafka Suporta external e inCluster.

Kafka externo

external indica a utilização de um serviço Kafka externo.

Os campos utilizados para configurar um serviço Kafka externo incluem:

  • external: Um valor « true » indica que o Milvus utiliza um serviço Kafka externo.
  • brokerList: A lista de brokers para os quais as mensagens devem ser enviadas.

Exemplo

O exemplo seguinte configura um serviço Kafka externo.

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: ""
  # Omit other fields ...
  dependencies:
    # Omit other fields ...
    msgStreamType: "kafka"
    kafka:
      external: true
      brokerList: 
        - "kafkaBrokerAddr1:9092"
        - "kafkaBrokerAddr2:9092"
        # ...

As configurações SASL são suportadas na versão v0.8.5 ou superior do operador.

Kafka interno

inCluster indica que, quando um cluster Milvus é iniciado, um serviço Kafka é iniciado automaticamente nesse cluster.

Exemplo

O exemplo seguinte configura um serviço Kafka interno.

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

Consulte aqui os itens de configuração completos para configurar um serviço Kafka interno. Adicione os itens de configuração necessários em « kafka.inCluster.values ».

Partindo do princípio de que o ficheiro de configuração se chama « milvuscluster.yaml », execute o comando seguinte para aplicar a configuração.

kubectl apply -f milvuscluster.yaml

Próximos passos

Saiba como configurar outras dependências do Milvus com o Milvus Operator:

Traduzido porDeepL

Experimente o Milvus gerenciado gratuitamente

O Zilliz Cloud é descomplicado, powered by Milvus e 10x mais rápido.

Começar
Feedback

Esta página foi útil?