milvus-logo
LFAI
Home
  • Começar a trabalhar

Executar o Milvus no Kubernetes com o Helm

Esta página ilustra como iniciar uma instância do Milvus no Kubernetes usando os gráficos do Milvus Helm.

Visão geral

O Helm usa um formato de empacotamento chamado gráficos. Um gráfico é uma coleção de arquivos que descrevem um conjunto relacionado de recursos do Kubernetes. O Milvus fornece um conjunto de gráficos para ajudá-lo a implantar dependências e componentes do Milvus.

Pré-requisitos

  • Instalar o Helm CLI.

  • Criar um cluster K8s.

  • Instalar uma StorageClass. Pode verificar a StorageClass instalada da seguinte forma.

    $ kubectl get sc
    
    NAME                  PROVISIONER                  RECLAIMPOLICY    VOLUMEBIINDINGMODE    ALLOWVOLUMEEXPANSION     AGE
    standard (default)    k8s.io/minikube-hostpath     Delete           Immediate             false 
    
  • Verifique os requisitos de hardware e software antes da instalação.

  • Antes de instalar o Milvus, é recomendável usar a Milvus Sizing Tool para estimar os requisitos de hardware com base no tamanho dos seus dados. Isso ajuda a garantir o desempenho ideal e a alocação de recursos para a instalação do Milvus.

Se encontrar algum problema ao puxar a imagem, contacte-nos em community@zilliz.com com detalhes sobre o problema, e nós forneceremos o suporte necessário.

Instalar o Milvus Helm Chart

Antes de instalar o Milvus Helm Charts, é necessário adicionar o repositório Milvus Helm.

$ helm repo add milvus https://zilliztech.github.io/milvus-helm/

O repositório do Milvus Helm Charts em https://milvus-io.github.io/milvus-helm/ foi arquivado e pode obter mais actualizações em https://zilliztech.github.io/milvus-helm/ da seguinte forma:

helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus

O repositório arquivado ainda está disponível para os gráficos até à versão 4.0.31. Para versões posteriores, utilize o novo repositório.

De seguida, obtenha os gráficos Milvus a partir do repositório da seguinte forma:

$ helm repo update

Pode sempre executar este comando para obter os gráficos mais recentes do Milvus Helm.

Instalação online

1. Implantar um cluster do Milvus

Depois de instalar o Helm chart, você pode iniciar o Milvus no Kubernetes. Esta secção irá guiá-lo através dos passos para iniciar o Milvus.

$ helm install my-release milvus/milvus

No comando acima, my-release é o nome da versão e milvus/milvus é o repositório de gráficos instalado localmente. Para usar um nome diferente, substitua my-release pelo que achar melhor.

O comando acima implementa um cluster Milvus com seus componentes e dependências usando configurações padrão. Para personalizar estas definições, recomendamos que utilize a Milvus Sizing Tool para ajustar as configurações com base no tamanho real dos seus dados e, em seguida, transfira o ficheiro YAML correspondente. Para saber mais sobre os parâmetros de configuração, consulte a Lista de verificação das configurações do sistema Milvus.

  • O nome da versão deve conter apenas letras, números e traços. Não são permitidos pontos no nome da versão.
  • A linha de comando padrão instala a versão de cluster do Milvus durante a instalação do Milvus com o Helm. São necessárias outras definições durante a instalação do Milvus autónomo.
  • De acordo com o guia de migração de API obsoleta do Kubernetes, a versão da API policy/v1beta1 do PodDisruptionBudget não é mais servida a partir da v1.25. Sugere-se que você migre manifestos e clientes de API para usar a versão de API policy/v1.
    Como solução alternativa para os usuários que ainda usam a versão da API policy/v1beta1 do PodDisruptionBudget no Kubernetes v1.25 e posterior, você pode executar o seguinte comando para instalar o Milvus:
    helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false
  • Consulte Gráfico de Helm do Milvus e Helm para obter mais informações.

2. Verificar o status do cluster do Milvus

Execute o seguinte comando para verificar o estado de todos os pods no seu cluster Milvus.

$ kubectl get pods

Quando todos os pods estiverem em execução, a saída do comando acima deve ser semelhante à seguinte:

NAME                                             READY  STATUS   RESTARTS  AGE
my-release-etcd-0                                1/1    Running   0        3m23s
my-release-etcd-1                                1/1    Running   0        3m23s
my-release-etcd-2                                1/1    Running   0        3m23s
my-release-milvus-datanode-68cb87dcbd-4khpm      1/1    Running   0        3m23s
my-release-milvus-indexnode-5c5f7b5bd9-l8hjg     1/1    Running   0        3m24s
my-release-milvus-mixcoord-7fb9488465-dmbbj      1/1    Running   0        3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv          1/1    Running   0        3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg     1/1    Running   0        3m24s
my-release-minio-0                               1/1    Running   0        3m23s
my-release-minio-1                               1/1    Running   0        3m23s
my-release-minio-2                               1/1    Running   0        3m23s
my-release-minio-3                               1/1    Running   0        3m23s
my-release-pulsar-autorecovery-86f5dbdf77-lchpc  1/1    Running   0        3m24s
my-release-pulsar-bookkeeper-0                   1/1    Running   0        3m23s
my-release-pulsar-bookkeeper-1                   1/1    Running   0        98s
my-release-pulsar-broker-556ff89d4c-2m29m        1/1    Running   0        3m23s
my-release-pulsar-proxy-6fbd75db75-nhg4v         1/1    Running   0        3m23s
my-release-pulsar-zookeeper-0                    1/1    Running   0        3m23s
my-release-pulsar-zookeeper-metadata-98zbr       0/1   Completed  0        3m24s

3. Encaminhar uma porta local para o Milvus

Execute o seguinte comando para obter a porta em que o seu cluster Milvus serve.

$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

A saída mostra que a instância do Milvus é servida na porta padrão 19530.

Se você implantou o Milvus no modo autônomo, altere o nome do pod de my-release-milvus-proxy-xxxxxxxxxx-xxxxx para my-release-milvus-xxxxxxxxxx-xxxxx.

Em seguida, execute o seguinte comando para encaminhar uma porta local para a porta em que o Milvus serve.

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

Opcionalmente, pode utilizar :19530 em vez de 27017:19530 no comando acima para permitir que kubectl atribua uma porta local para si, para que não tenha de gerir conflitos de portas.

Por predefinição, o encaminhamento de portas do kubectl apenas escuta em localhost. Use a flag address se quiser que o Milvus escute nos endereços IP selecionados ou em todos. O seguinte comando faz com que o port-forward escute em todos os endereços IP na máquina hospedeira.

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530

Instalação offline

Se estiver num ambiente com restrições de rede, siga o procedimento desta secção para iniciar um cluster Milvus.

1. Obter o manifesto do Milvus

Execute o seguinte comando para obter o manifesto do Milvus.

$ helm template my-release milvus/milvus > milvus_manifest.yaml

O comando acima renderiza modelos de gráficos para um cluster Milvus e salva a saída em um arquivo de manifesto chamado milvus_manifest.yaml. Usando esse manifesto, você pode instalar um cluster do Milvus com seus componentes e dependências em pods separados.

  • Para instalar uma instância do Milvus no modo autónomo, em que todos os componentes do Milvus estão contidos num único pod, deve executar helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsar.enabled=false milvus/milvus > milvus_manifest.yaml para renderizar modelos de gráficos para uma instância do Milvus num modo autónomo.
  • Para alterar as configurações do Milvus, descarregue o modelo value.yaml coloque as configurações desejadas nele e use helm template -f values.yaml my-release milvus/milvus > milvus_manifest.yaml para renderizar o manifesto de acordo.

2. Descarregar o script de extração de imagens

O script de extração de imagens é desenvolvido em Python. Deve descarregar o script juntamente com as suas dependências no ficheiro requirement.txt.

$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py

3. Extrair e guardar imagens

Execute o seguinte comando para extrair e guardar as imagens necessárias.

$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml

As imagens são puxadas para uma subpasta chamada images no diretório atual.

4. Carregar imagens

Pode agora carregar as imagens para os anfitriões no ambiente de rede restrita da seguinte forma:

$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done

5. Implantar o Milvus

$ kubectl apply -f milvus_manifest.yaml

Até agora, pode seguir os passos 2 e 3 da instalação online para verificar o estado do cluster e encaminhar uma porta local para o Milvus.

Atualizar o cluster do Milvus em execução

Execute o seguinte comando para atualizar o seu cluster Milvus em execução para a versão mais recente:

$ helm repo update
$ helm upgrade my-release zilliztech/milvus

Desinstalar o Milvus

Execute o seguinte comando para desinstalar o Milvus.

$ helm uninstall my-release

O que vem a seguir

Depois de instalar o Milvus no Docker, você pode:

Traduzido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?