Rolling upgrade de Elasticsearch (minor de 8.x o 8.19 → 9.x)
ElasticsearchNivel: AvanzadoDuración: 15–30 min por nodoNo es una instalación: lleva un cluster Elasticsearch en funcionamiento a una versión nueva sin interrupción, actualizando los nodos uno a uno (minor dentro de 8.x o la versión principal 8.19 → 9.x). Paso a paso: comprobaciones previas (versión, estado, deprecation API, system feature migration), snapshot previo a la actualización, limitación del shard allocation a primaries y flush, actualización de versión y plugins en cada nodo, reactivación del allocation y espera del estado, actualización de Kibana y, si hace falta, vuelta atrás desde el snapshot. Al final todos los nodos y Kibana están en la versión de destino y el cluster en green. Si va a pasar a 9.x desde una 8.x anterior a 8.19, aplique primero esta guía con la opción 'dentro de la misma versión principal' para llegar a 8.19; si no hay snapshot repository, abra antes la guía de snapshot.
Topología: Cluster existente de 3+ nodos (+ Kibana)
Escenarios
- Dentro de la misma versión principal (p. ej. 8.18 → 8.19, 9.1 → 9.2) — Dentro de la misma versión principal (8.18 → 8.19, 9.1 → 9.2): el repositorio no cambia; la comprobación de deprecation se hace igualmente. Se admite saltar versiones minor intermedias.
- Versión principal: 8.19.x → 9.x — El cluster de origen debe estar antes en 8.19.x (último patch). Las comprobaciones previas incluyen los pasos de Upgrade Assistant / deprecation API y system feature migration.
Antes de empezar
- Todos los nodos están en la misma versión: …. …Para pasar a 9.x la versión de origen debe ser 8.19.x (salvo 8.18 → 9.0); si no, aplique antes esta guía con la opción "Dentro de la misma versión principal" para llegar a 8.19.…La versión de destino … debe ser más nueva que la actual; se admite saltar versiones minor intermedias (8.17 → 8.19).…
- Cluster en green; sin shards relocating/initializing; ocupación de disco por debajo del 75% en todos los nodos (durante la actualización se reconstruyen shards).
- Los clientes de las aplicaciones, Logstash, Beats/Elastic Agent y APM son compatibles con la versión de destino. …9.x requiere las bibliotecas cliente 9.x (o 8.x con cabeceras de compatibilidad); lea los breaking changes de las notas de la versión.…
- El snapshot repository … está registrado y verificado y tiene espacio libre suficiente para el snapshot. Un nodo actualizado no puede volver a la versión antigua; este snapshot es la única vía de vuelta atrás.
- Los servidores llegan a artifacts.elastic.co (o a un mirror interno) y … está disponible en el repositorio.
- La ventana de mantenimiento está aprobada; si es posible, se reduce la carga de escritura durante la actualización (no es obligatorio). …Se han resuelto todos los avisos críticos de Kibana en Stack Management → Upgrade Assistant.…
Fases de la guía
- Preparación — Crear un archivo temporal de credenciales para acceder a la API · Hacer copia de la configuración · Listar los plugins instalados
- Comprobaciones previas — Comprobar versiones y roles · Comprobar el estado del cluster · Hacer la comprobación de deprecation (API de Upgrade Assistant) · Ejecutar la system feature migration · Listar las versiones de destino instalables
- Cambiar el repositorio a 9.x — Definir el repositorio de Elastic 9.x · Definir el repositorio de Elastic 9.x · Comprobar la versión de destino
- Punto de vuelta atrás: snapshot — Tomar un snapshot previo a la actualización · Activar el ML upgrade mode
- Verificación — Verificar que todos los nodos están en la versión de destino · Comprobar que el ajuste de allocation se ha eliminado de forma permanente · Desactivar el ML upgrade mode · Revisar los logs en busca de errores
- Actualizar Kibana — Detener Kibana · Actualizar Kibana a la versión … · Iniciar Kibana y comprobar su estado
- Después de la instalación — Tomar un snapshot tras la actualización · Borrar el archivo temporal de credenciales
- Vuelta atrás (solo si la actualización falla) — Detener el servicio en todos los nodos · Instalar la versión antigua · Apartar el directorio de datos y crear uno vacío · Escribir el ajuste initial_master_nodes para el cluster nuevo · Iniciar los servicios · Establecer una contraseña temporal para elastic …