Escalar un clúster Milvus
Milvus soporta el escalado horizontal de sus componentes. Esto significa que puede aumentar o disminuir el número de nodos trabajadores de cada tipo según sus propias necesidades.
Este tema describe cómo escalar y reducir un cluster Milvus. Asumimos que ya ha instalado un cluster Milvus antes de escalar. Además, le recomendamos que se familiarice con la arquitectura de Milvus antes de empezar.
Este tutorial toma como ejemplo la ampliación de tres nodos de consulta. Para escalar otros tipos de nodos, sustituya queryNode
por el tipo de nodo correspondiente en la línea de comandos.
Para obtener información sobre cómo escalar un clúster con Milvus Operator, consulte Escalar un clúster con Milvus Operator.
¿Qué es el escalado horizontal?
El escalado horizontal incluye el escalado de salida y de entrada.
Ampliación
La ampliación horizontal consiste en aumentar el número de nodos de un clúster. A diferencia del escalado ascendente, el escalado descendente no requiere asignar más recursos a un nodo del clúster. En su lugar, el escalado expande el clúster horizontalmente añadiendo más nodos.
Ampliación
Ampliación
De acuerdo con la arquitectura Milvus, los nodos trabajadores sin estado incluyen el nodo de consulta, el nodo de datos, el nodo de índice y el proxy. Por lo tanto, puede ampliar este tipo de nodos para adaptarlos a sus necesidades empresariales y escenarios de aplicación. Puede escalar el cluster Milvus manual o automáticamente.
Generalmente, necesitará escalar el cluster Milvus que ha creado si está sobreutilizado. A continuación se detallan algunas situaciones típicas en las que puede necesitar escalar el cluster Milvus:
- La utilización de CPU y memoria es alta durante un período de tiempo.
- El rendimiento de las consultas es mayor.
- Se requiere una mayor velocidad de indexación.
- Es necesario procesar volúmenes masivos de grandes conjuntos de datos.
- Es necesario garantizar una alta disponibilidad del servicio Milvus.
Ampliación
La ampliación consiste en reducir el número de nodos de un clúster. Generalmente, necesitará escalar el cluster Milvus que ha creado si está infrautilizado. A continuación se indican algunas situaciones típicas en las que necesitará escalar el cluster Milvus:
- La utilización de CPU y memoria es baja durante un período de tiempo.
- El rendimiento de las consultas es menor.
- No se requiere una mayor velocidad de indexación.
- El tamaño del conjunto de datos a procesar es pequeño.
Requisitos previos
Ejecute kubectl get pods
para obtener una lista de los componentes y su estado de funcionamiento en el cluster Milvus que ha creado.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 1m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 1m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 1m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 1m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 1m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 1m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 1m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 1m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 1m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 1m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 1m
Escalar un cluster Milvus
Puede escalar su cluster Milvus manual o automáticamente. Si el autoescalado está activado, el cluster Milvus se reducirá o expandirá automáticamente cuando el consumo de recursos de CPU y memoria alcance el valor que usted haya establecido.
Actualmente, Milvus 2.1.0 sólo soporta el escalado manual.
Reducción
Ejecute helm upgrade my-release milvus/milvus --set queryNode.replicas=3 --reuse-values
para ampliar manualmente el nodo de consulta.
Si tiene éxito, se añaden tres pods en ejecución en el nodo de consulta como se muestra en el siguiente ejemplo.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-czq9f 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-jcdcn 1/1 Running 0 5s
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
Ampliación
Ejecute helm upgrade my-release milvus/milvus --set queryNode.replicas=1 --reuse-values
para ampliar el nodo de consulta.
Si tiene éxito, tres pods en ejecución en el nodo de consulta se reducen a uno como se muestra en el siguiente ejemplo.
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 2m
my-release-milvus-datacoord-7b5d84d8c6-rzjml 1/1 Running 0 2m
my-release-milvus-datanode-665d4586b9-525pm 1/1 Running 0 2m
my-release-milvus-indexcoord-9669d5989-kr5cm 1/1 Running 0 2m
my-release-milvus-indexnode-b89cc5756-xbpbn 1/1 Running 0 2m
my-release-milvus-proxy-7cbcc8ffbc-4jn8d 1/1 Running 0 2m
my-release-milvus-pulsar-6b9754c64d-4tg4m 1/1 Running 0 2m
my-release-milvus-querycoord-75f6c789f8-j28bg 1/1 Running 0 2m
my-release-milvus-querynode-7c7779c6f8-pnjzh 1/1 Running 0 2m
my-release-milvus-rootcoord-75585dc57b-cjh87 1/1 Running 0 2m
my-release-minio-5564fbbddc-9sbgv 1/1 Running 0 2m
Lo que sigue
Si desea aprender a supervisar los servicios Milvus y crear alertas:
Si está listo para desplegar su clúster en nubes:
Si está buscando instrucciones sobre cómo asignar recursos: