Simplifying Presto on Kubernetes – Introducing the Presto Helm Chart
By:
Ali LeClerc, Chair, Presto Community Team and Product Manager at IBM
Let’s explore how to run Presto on Kubernetes. At PrestoCon Day 2023, Denis Krivenko of Platform24 shared his work on the Presto Helm Chart and why Presto on Kubernetes helps make for an efficient deployment. He also demoed a step-by-step process of deploying Presto on a Kubernetes cluster using the Helm package manager.
Below we’ll explain why Kubernetes might be useful for Presto and a step-by-step tutorial on how to install Presto on Kubernetes using Helm.
Why Kubernetes?
To understand the significance of Kubernetes, we first need to compare different application deployment options. The traditional environment and virtual machine deployments offer limited scalability and isolation between applications, leading to version conflicts and time-consuming deployments.
On the other hand, container environments provide rapid application deployment and enhanced isolation, but they lack built-in scalability. Kubernetes addresses these challenges by providing a comprehensive orchestration infrastructure that enables horizontal scaling, high availability, and simplified container usage through its abstractions.
Understanding Kubernetes Deployments
Kubernetes introduces several abstractions to simplify container usage within a cluster. These abstractions include Pods, Deployments, and Services. A Pod is the smallest unit in Kubernetes and represents one or more containers running on the same host, sharing an IP address and volumes. Deployments are used to manage multiple Pods, defining the number of replicas and their configurations. Services act as load balancers and provide a single entry point for accessing distributed applications running on multiple Pods.
Deploying Presto on Kubernetes
To deploy and manage complex applications like Presto on Kubernetes, we can leverage Helm, a package manager specifically designed for Kubernetes. Helm operates with charts, which are collections of Kubernetes resource templates and default values.
The official Helm chart for Presto simplifies the deployment process by providing predefined resource definitions and customizable configurations for different environments. By using Helm, we can adhere to the DRY (Don’t Repeat Yourself) principle and maintain consistency across multiple deployments.
Installation and Deployment Modes
The Presto Helm chart supports three deployment modes: single, cluster, and highly available cluster. Each mode caters to specific requirements and can be easily configured using Helm values.
In the single mode, Presto is deployed with one instance acting as both a coordinator and a worker. This mode is suitable for testing or environments with limited resources.
The cluster mode deploys Presto in a production environment with one coordinator and multiple workers.