Implantação do Milvus no Kubernetes: Um guia passo-a-passo para utilizadores de Kubernetes
O Milvus é um banco de dados vetorial de código aberto projetado para armazenar, indexar e pesquisar grandes quantidades de dados não estruturados por meio de representações vetoriais, tornando-o perfeito para aplicativos orientados por IA, como pesquisa de similaridade, pesquisa semântica, geração aumentada de recuperação(RAG), mecanismos de recomendação e outras tarefas de aprendizado de máquina.
Mas o que torna o Milvus ainda mais poderoso é a sua integração perfeita com o Kubernetes. Se é um aficionado do Kubernetes, sabe que a plataforma é perfeita para orquestrar sistemas distribuídos e escaláveis. O Milvus tira o máximo partido das capacidades do Kubernetes, permitindo-lhe implementar, escalar e gerir facilmente clusters distribuídos do Milvus. Este guia fornecerá uma explicação clara e passo a passo para configurar o Milvus no Kubernetes usando o Milvus Operator.
Pré-requisitos
Antes de começarmos, certifique-se de ter os seguintes pré-requisitos em vigor:
Um cluster do Kubernetes instalado e em execução. Se você estiver testando localmente,
minikube
é uma ótima escolha.kubectl
O sistema operacional Kubernetes está instalado e configurado para interagir com seu cluster do Kubernetes.Familiaridade com os conceitos básicos do Kubernetes, como pods, serviços e implantações.
Etapa 1: Instalando o Minikube (para testes locais)
Se precisar de configurar um ambiente Kubernetes local, minikube
é a ferramenta ideal para si. As instruções oficiais de instalação estão na página de introdução do minikube.
1. Instalar o Minikube
Visite a página de lançamentos do minikube e descarregue a versão apropriada para o seu sistema operativo. Para macOS/Linux, pode utilizar o seguinte comando:
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
2. Iniciar o Minikube
$ minikube start
3. Interagir com o cluster
Agora, pode interagir com os seus clusters com o kubectl dentro do minikube. Se não tiver instalado o kubectl, o minikube baixará a versão apropriada por padrão.
$ minikube kubectl cluster-info
Como alternativa, é possível criar um link simbólico para o binário do minikube chamado kubectl
para facilitar o uso.
$ sudo ln -s $(which minikube) /usr/local/bin/kubectl
$ kubectl cluster-info
Etapa 2: Configurando a StorageClass
No Kubernetes, uma StorageClass define os tipos de armazenamento disponíveis para suas cargas de trabalho, fornecendo flexibilidade no gerenciamento de diferentes configurações de armazenamento. Antes de continuar, você deve garantir que uma StorageClass padrão esteja disponível no seu cluster. Veja como verificar e configurar uma, se necessário.
1. Verificar as StorageClasses instaladas
Para ver as StorageClasses disponíveis no seu cluster Kubernetes, execute o seguinte comando:
$ kubectl get sc
Isso exibirá a lista de classes de armazenamento instaladas no seu cluster. Se uma StorageClass padrão já estiver configurada, ela será marcada com (default)
.
2. Configurar uma StorageClass padrão (se necessário)
Se nenhuma StorageClass padrão estiver configurada, é possível criar uma definindo-a em um arquivo YAML. Use o exemplo a seguir para criar uma StorageClass padrão:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: default-storageclass
provisioner: k8s.io/minikube-hostpath
Esta configuração YAML define um StorageClass
chamado default-storageclass
que usa o provisionador minikube-hostpath
, normalmente usado em ambientes de desenvolvimento local.
3. Aplicar a StorageClass
Depois que o arquivo default-storageclass.yaml
for criado, aplique-o ao seu cluster usando o seguinte comando:
$ kubectl apply -f default-storageclass.yaml
Isso configurará a StorageClass padrão para seu cluster, garantindo que suas necessidades de armazenamento sejam gerenciadas adequadamente no futuro.
Etapa 3: Instalando o Milvus usando o Milvus Operator
O Milvus Operator simplifica a implantação do Milvus no Kubernetes, gerenciando a implantação, o dimensionamento e as atualizações. Antes de instalar o Milvus Operator, você precisará instalar o cert-manager, que fornece certificados para o servidor webhook usado pelo Milvus Operator.
1. Instalar o cert-manager
O Milvus Operator necessita de um cert-manager para gerir os certificados para uma comunicação segura. Certifique-se de que instala o cert-manager versão 1.1.3 ou posterior. Para o instalar, execute o seguinte comando:
$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
Após a instalação, verifique se os pods do cert-manager estão a funcionar, executando:
$ kubectl get pods -n cert-manager
2. Instalar o Operador Milvus
Assim que o cert-manager estiver a funcionar, pode instalar o Milvus Operator. Execute o seguinte comando para o implementar utilizando kubectl
:
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/deploy/manifests/deployment.yaml
Pode verificar se o pod do Milvus Operator está a funcionar utilizando o seguinte comando:
$ kubectl get pods -n milvus-operator
3. Implementar o Cluster Milvus
Quando o pod do Operador Milvus estiver a funcionar, pode implementar um cluster Milvus com o operador. O comando a seguir implanta um cluster do Milvus com seus componentes e dependências em pods separados usando as configurações padrão:
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
Para personalizar as definições do Milvus, terá de substituir o ficheiro YAML pelo seu próprio ficheiro YAML de configuração. Além de editar ou criar manualmente o ficheiro, pode utilizar a Milvus Sizing Tool para ajustar as configurações e, em seguida, transferir o ficheiro YAML correspondente.
Para personalizar as definições do Milvus, é necessário substituir o ficheiro YAML predefinido pela sua própria configuração. Pode editar ou criar manualmente este ficheiro, adaptando-o às suas necessidades específicas.
Em alternativa, pode utilizar a Milvus Sizing Tool para uma abordagem mais simplificada. Esta ferramenta permite-lhe ajustar várias definições, como a atribuição de recursos e as opções de armazenamento, e depois descarregar o ficheiro YAML correspondente com as configurações pretendidas. Isso garante que a implantação do Milvus seja otimizada para o seu caso de uso específico.
Figura: Ferramenta de dimensionamento do Milvus
Pode demorar algum tempo a concluir a implementação. Pode verificar o estado do seu cluster Milvus através do comando:
$ kubectl get milvus my-release
Quando o cluster do Milvus estiver pronto, todos os pods no cluster do Milvus deverão estar em execução ou concluídos:
$ kubectl get pods
Passo 4: Acessando seu cluster Milvus
Assim que o seu cluster Milvus for implantado, você precisa acessá-lo encaminhando uma porta local para a porta de serviço do Milvus. Siga estas etapas para recuperar a porta de serviço e configurar o encaminhamento de porta.
1. Obter a porta de serviço
Primeiro, identifique a porta de serviço usando o seguinte comando. Substitua <YOUR_MILVUS_PROXY_POD>
pelo nome do seu pod proxy Milvus, que normalmente começa com my-release-milvus-proxy-
:
$ kubectl get pod <YOUR_MILVUS_PROXY_POD> --template ='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
Este comando devolverá o número da porta que o seu serviço Milvus está a utilizar.
2. Encaminhar a porta
Para aceder ao seu cluster Milvus localmente, reencaminhe uma porta local para a porta de serviço utilizando o seguinte comando. Substitua <YOUR_LOCAL_PORT>
pela porta local que deseja usar e <YOUR_SERVICE_PORT>
pela porta de serviço recuperada na etapa anterior:
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus <YOUR_LOCAL_PORT>:<YOUR_SERVICE_PORT>
Esse comando permite que o encaminhamento de porta escute em todos os endereços IP da máquina host. Se você só precisa que o serviço escute em localhost
, você pode omitir a opção --address 0.0.0.0
.
Uma vez configurado o encaminhamento de porta, pode aceder ao seu cluster Milvus através da porta local especificada para outras operações ou integrações.
Passo 5: Ligar ao Milvus usando o Python SDK
Com o seu cluster Milvus instalado e a funcionar, pode agora interagir com ele utilizando qualquer SDK Milvus. Neste exemplo, usaremos o PyMilvus, o SDK Python do Milvus , para nos conectarmos ao cluster e realizar operações básicas.
1. Instalar o PyMilvus
Para interagir com o Milvus através de Python, é necessário instalar o pacote pymilvus
:
$ pip install pymilvus
2. Ligar ao Milvus
Segue-se um exemplo de script Python que se liga ao seu cluster Milvus e demonstra como executar operações básicas, como a criação de uma coleção.
from pymilvus import MilvusClient
# Connect to the Milvus server
client = MilvusClient(uri="http://localhost:<YOUR_LOCAL_PORT>")
# Create a collection
collection_name = "example_collection"
if client.has_collection(collection_name):
client.drop_collection(collection_name)
client.create_collection(
collection_name=collection_name,
dimension=768, # The vectors we will use in this demo has 768 dimensions
)
Explicação:
Ligar ao Milvus: O script liga-se ao servidor Milvus em execução em
localhost
utilizando a porta local que configurou no Passo 4.Criar uma coleção: Verifica se já existe uma coleção com o nome
example_collection
, elimina-a em caso afirmativo e cria uma nova coleção com vectores de 768 dimensões.
Este script estabelece uma conexão com o cluster Milvus e cria uma coleção, servindo como ponto de partida para operações mais complexas, como inserir vetores e realizar pesquisas de similaridade.
Conclusão
A implantação do Milvus em uma configuração distribuída no Kubernetes desbloqueia recursos poderosos para gerenciar dados vetoriais em grande escala, permitindo escalabilidade contínua e aplicativos orientados por IA de alto desempenho. Seguindo este guia, você aprendeu como configurar o Milvus usando o Milvus Operator, tornando o processo simplificado e eficiente.
À medida que você continua a explorar o Milvus, considere dimensionar seu cluster para atender às demandas crescentes ou implantá-lo em plataformas de nuvem, como Amazon EKS, Google Cloud ou Microsoft Azure. Para uma gestão e monitorização melhoradas, ferramentas como o Milvus Backup, Birdwatcher e Attu oferecem um suporte valioso para manter a saúde e o desempenho das suas implementações.
Agora você está pronto para aproveitar todo o potencial do Milvus no Kubernetes - feliz implantação! 🚀
Recursos adicionais
- Pré-requisitos
- Etapa 1: Instalando o Minikube (para testes locais)
- Etapa 2: Configurando a StorageClass
- Etapa 3: Instalando o Milvus usando o Milvus Operator
- Passo 4: Acessando seu cluster Milvus
- Passo 5: Ligar ao Milvus usando o Python SDK
- Conclusão
- Recursos adicionais
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word