Para implementar QueryGrid en Presto en Kubernetes en Google Cloud (GKE) o Azure (AKS), cree el conector de destino de Presto en Viewpoint. Utilice una dirección IP externa estática reservada en la nube en la propiedad Server. Consulte la documentación de Google Cloud o Azure para obtener información sobre cómo reservar una dirección IP estática si aún no tiene una. La dirección IP estática de Google Cloud debe ser una IP estática premium.
- Si aún no lo ha adquirido, descargue el paquete tdqg-presto-k8s-deploy; consulte Descargar paquetes requeridos para obtener más información.
- Descomprima el paquete tdqg-presto-k8s-deploy y recupere los siguientes archivos:
- tdqg-node docker image.zip
- tdqg-init-presto docker image.zip
- tdqg-presto-node.zip.zip
- Cree el conector de destino de Presto mediante una IP externa estática reservada en la nube.
- Si utilizó anteriormente el script install_tdqg_node_pod.py para Implementar automáticamente QueryGrid en Presto en Kubernetes (GKE o AKS), puede usar el mismo script para crear el conector de destino de Presto. Agregue los detalles del tejido y el conector al archivo tdqg_input.yaml. Especifique la IP externa estática reservada en la nube en la propiedad Server y ejecute el script.
- Si no utilizó el script, cree el conector de Presto en Viewpoint y utilice la IP externa estática reservada en la nube en la propiedad Server.
- Cree el archivo values.yaml de Presto para implementar Presto mediante un gráfico Helm.Al modificar una implementación de Presto existente, debe actualizar la versión del archivo values.yaml de Presto para incluir las secciones QueryGrid. Hay dos opciones para realizar la modificación: manualmente o con un script de instalación.
Acción Descripción Agregar una nueva implementación de Presto Al agregar una nueva implementación de Presto, el presto_values.yaml en tdqg-presto-node se puede usar como el archivo values.yaml. - Realice tareas de configuración estándar de Presto, como el número de nodos, cpu, memoria y catálogos para apuntar a bases de datos.
- Reemplace la Versión de software de nodo y la Versión del conector de Presto en initFile con las versiones reales.
Modificar una implementación existente de Presto Agregue las secciones siguientes desde el archivo presto_values.yaml al archivo de configuración de Presto values.yaml existente: - initFile.sh: reemplace la versión de software del nodo y la versión del conector de Presto por las versiones reales.
- additionalVolumes: volúmenes hostPaths que permiten que el pod de nodo tdqg y los pods de Presto intercambien archivos.
- coordinator: affinity y worker: affinity: los coordinadores y trabajadores de Presto no deben compartir el mismo host.
- catalogs: añada el catálogo qgremote.
- Implemente Presto mediante Helm agregando el repositorio de Starburst Presto con el comando helm repo add.Consulte https://docs.starburstdata.com/latest/k8s/requirements.html#helm-chart-repository para obtener más información.
- Después de agregar el repositorio de Helm, implemente Presto mediante los siguientes comandos:
helm upgrade my-presto starburstdata/starburst-enterprise \ --install \ --version <Presto_version> \ #e.g. 380.0.1 --values <path to Presto values.yaml file>
- Compruebe que la operación se haya realizado correctamente:kubectl get pods -o wideLa operación se realiza correctamente cuando está visible lo siguiente:
- Un pod tdqg-node en estado de ejecución para cada host de Kubernetes
- Un pod de coordinador de Presto
- El número de pods de trabajadores de Presto que se especificaron anteriormente
Si los pods se inician y se detienen, compruebe los registros de contenedor para solucionar los problemas.
- Exponga el servidor de Presto fuera de la red de pods de Kubernetes.Esto se puede lograr creando un equilibrador de carga con la IP estática. Consulte la documentación de Starburst Enterprise Presto y Google Cloud/Azure sobre cómo crear un equilibrador de carga. Vuelva a implementar los pods de Presto si es necesario.
- Espere aproximadamente 30 segundos antes de ejecutar kubectl get services para confirmar que la IP externa se haya asignado al coordinador de Presto.Al actualizar un nodo o el software del conector de QueryGrid, la Versión de software de nodo y la Versión del conector de Presto deben actualizarse en el archivo yaml de configuración de Presto y volver a aplicarse, lo que desencadena un reinicio de todos los pods de Presto.