¿Todavía no conoces Elasticsearch? Únete a nuestro webinar de los Primeros pasos con Elasticsearch. También puedes iniciar una prueba gratuita en el cloud o prueba Elastic en tu máquina ahora mismo.
En este artículo, vamos a aprender cómo desplegar Elasticsearch en Google Cloud Kubernetes (GKE) usando Autopilot.
Para Elasticsearch, vamos a emplear Elastic Cloud on Kubernetes (ECK), que es el operador oficial de Elasticsearch Kubernetes que simplifica la orquestación de despliegues de Kubernetes de todos los componentes de Elastic Stack.
Para obtener más información sobre cómo desplegar clústeres de Elasticsearch en diferentes infraestructuras de GCP, puedes leer nuestros artículos de introducción sobre Google Cloud Compute y Google Cloud Marketplace.
Esfuerzo de despliegue de Elasticsearch

¿Qué es GKE Autopilot?
Google Kubernetes Engine (GKE) Autopilot ofrece una experiencia Kubernetes totalmente gestionada donde Google se encarga de la configuración del clúster, la gestión de nodos, la seguridad y el escalado, mientras los desarrolladores se centran en desplegar aplicaciones, lo que les permite a los equipos pasar del código a la producción en minutos con las mejores prácticas integradas.
¿Cuándo usar el ECK en Google Cloud?
Elastic Cloud on Kubernetes (ECK) es el más adecuado para organizaciones con infraestructura existente de Kubernetes que buscan desplegar Elasticsearch con características avanzadas como roles de nodo dedicados, alta disponibilidad y automatización.
¿Cómo configurar ECK en Google Cloud?
1. Inicia sesión en Google Cloud Console.
2. En la parte superior derecha haz clic en el botón Cloud Shell para acceder a la consola y desplegar el clúster de GKE desde allí. Alternativamente, puedes usar la CLI de gcloud.
Recuerda actualizar el identificador del proyecto con el tuyo durante el tutorial.

3. Habilita la API de Google Kubernetes Engine.

Haz clic en Siguiente.
Ahora, la API de Kubernetes Engine debería mostrarse habilitada al buscar la API de Kubernetes Engine.

4. En Cloud Shell, crea un clúster de Autopilot. Lo llamaremos autopilot-cluster-1, y también reemplazaremos autopilot-test por el id de tu proyecto.
5. Espera hasta que esté listo. Tarda unos 10 minutos en crearse.

Aparecerá un mensaje de confirmación después de configurar correctamente el clúster.
6. Configura el acceso a la línea de comandos de kubectl.
Deberías ver:

Entrada de kubeconfig generada para autopilot-cluster-1.
7. Instala el operador Elastic Cloud on Kubernetes (ECK).
8. Creemos una instancia de Elasticsearch de un solo nodo con los valores por defecto.
Si deseas consultar algunas recetas para diferentes configuraciones, puedes visitar este enlace.
Ten en cuenta que si no especificas un storageClass, ECK usará el que se configura por defecto, que para GKE es standard-rwo y usa el controlador CSI de disco persistente de Compute Engine, y creará un volumen de 1GB con él.
Deshabilitamos nmap porque la máquina GKE predeterminada tiene un valor vm.max_map_count demasiado bajo. No se recomienda desactivarlo para la producción, pero sí aumentar el valor de vm.max_map_count. Puedes leer más sobre cómo hacerlo aquí.
9. También despleguemos un clúster de un solo nodo Kibana. Para Kibana, agregaremos un LoadBalancer que nos dará una IP externa que podemos usar para acceder a Kibana desde nuestro dispositivo.
Nota la anotación:
cloud.google.com/l4-rbs: "enabled"
Es muy importante porque le indica a Autopilot que proporcione un LoadBalancer orientado al público. Si no se configura, el LoadBalancer será interno.
10. Verifica que tus pods estén en ejecución

11. También puedes run kubectl get elasticsearch y kubectl get kibana para obtener estadísticas más específicas como la versión de Elasticsearch, nodos y salud.


12. Accede a tus servicios.

Esto te mostrará la URL externa de Kibana bajo EXTERNAL-IP. Puede que el LoadBalancer tarde unos minutos en provisionar. Copia el valor de EXTERNAL-IP.
13 Obtén la contraseña de Elasticsearch para el usuario ‘elastic’:

14. Accede a Kibana desde tu navegador:
- URL:<EXTERNAL_IP> https://:5601
- Nombre de usuario: elastic
- Contraseña: 28Pao50lr2GpyguX470L2uj5 (del paso anterior)

15. Al acceder desde tu navegador, verás la pantalla de bienvenida.

Si quieres cambiar las especificaciones del clúster de Elasticsearch, como cambiar o redimensionar nodos, puedes volver a aplicar el manifesto yml con los nuevos ajustes:
En este ejemplo, vamos a agregar un nodo más y modificar la RAM y la CPU. Como puedes ver, ahora kubectl get elasticsearch muestra 2 nodos:

Lo mismo aplica para Kibana:
Podemos ajustar la CPU/RAM del contenedor y también el uso de memoria de Node.js (max-old-space-size).
Ten en cuenta que las solicitudes de volumen existentes no pueden reducirse. Después de aplicar la actualización, el operador realizará los cambios con el mínimo tiempo de interrupción.
Recuerda eliminar el clúster cuando termines de probar para evitar costos innecesarios.
Pasos siguientes
Si quieres saber más sobre Kubernetes y el motor de Google Kubernetes, consulta estos artículos:





