Solución de problemas
Esta página enumera los problemas comunes que pueden ocurrir cuando se ejecuta Milvus, así como posibles consejos para solucionarlos. Los problemas de esta página se clasifican en las siguientes categorías:
- Problemas de arranque
- Problemas de tiempo de ejecución
- Problemas de API
- Problemas de bloqueo de etcd
Problemas de arranque
Los errores de arranque suelen ser fatales. Ejecute el siguiente comando para ver los detalles del error:
$ docker logs <your milvus container id>
Problemas en tiempo de ejecución
Los errores que se producen durante el tiempo de ejecución pueden causar la interrupción del servicio. Para solucionar este problema, compruebe la compatibilidad entre el servidor y su cliente antes de seguir adelante.
Problemas de API
Estos problemas se producen durante las llamadas a métodos API entre el servidor Milvus y su cliente. Se devolverán al cliente de forma sincrónica o asincrónica.
Problemas de bloqueo de etcd
1. pod etcd pendiente
El cluster etcd utiliza pvc por defecto. StorageClass necesita ser preconfigurado para el cluster Kubernetes.
2. etcd pod crash
Cuando un pod etcd se bloquea con Error: bad member ID arg (strconv.ParseUint: parsing "": invalid syntax), expecting ID in Hex
, puede iniciar sesión en este pod y eliminar el archivo /bitnami/etcd/data/member_id
.
3. Múltiples pods siguen fallando mientras etcd-0
sigue ejecutándose
Puede ejecutar el siguiente código si varios pods siguen fallando mientras etcd-0
sigue ejecutándose.
kubectl scale sts <etcd-sts> --replicas=1
# delete the pvc for etcd-1 and etcd-2
kubectl scale sts <etcd-sts> --replicas=3
4. Todos los pods se bloquean
Si se bloquean todos los pods, intente copiar el archivo /bitnami/etcd/data/member/snap/db
. Utilice https://github.com/etcd-io/bbolt
para modificar los datos de la base de datos.
Todos los metadatos de Milvus se guardan en el cubo key
. Haga una copia de seguridad de los datos en este cubo y ejecute los siguientes comandos. Tenga en cuenta que los datos del prefijo en el archivo by-dev/meta/session
no requieren una copia de seguridad.
kubectl kubectl scale sts <etcd-sts> --replicas=0
# delete the pvc for etcd-0, etcd-1, etcd-2
kubectl kubectl scale sts <etcd-sts> --replicas=1
# restore the backup data
Si necesitas ayuda para resolver un problema, no dudes en hacerlo:
- Únase a nuestro canal de Slack y solicite ayuda al equipo de Milvus.
- Presentar una incidencia en GitHub que incluya detalles sobre su problema.