6.3. Overview of Presto on Kubernetes
Releases & Software
Starburst Presto on Kubernetes is based on version 312e. 312e includes many additional features and patches to the prestosql/presto version 312. Notably, Presto 312e, includes the state of the art cost based optimizer for fast query results.
For more information on Presto 312e, refer to our documentation.
Google Kubernetes Engine is certified by Starburst to work with Presto on Kubernetes, for more information on running Presto on Google Kubernetes Engine, refer to Presto on Google Kubernetes Engine. Additionally Starburst Presto on Kubernetes can be used on any modern Kubernetes cluster implementations (both on-prem and in the cloud). It is also possible to run Presto Kubernetes on Minikube for testing or development purposes.
Presto Cloud Architecture
General Components and Descriptions
Starburst Presto on Kubernetes consists of various components and Kubernetes resources that form a Presto Kubernetes cluster. The following terms describe each component of the Presto Kubernetes architecture in more detail:
Presto Kubernetes Custom Resource Definition
Presto Kubernetes Custom Resource Definition (CRD) defines resources of Presto type within a Kubernetes namespace. For more information on Kubernetes Custom Resources, refer to Custom Resources.
Presto Kubernetes resources
Presto Kubernetes resources are instances of Presto Kubernetes Custom Resource. Each instance of a Presto Kubernetes resource represents a Presto cluster. Presto Kubernetes resource contains various parameters that specify Presto, connector and Kubernetes properties. For more information on Presto Kubernetes resource, refer to Presto Kubernetes resource.
Presto Operator is a Kubernetes Operator pod that orchestrates Presto clusters. Presto Operator continuously monitors Presto Kubernetes resources. Presto Operator will create or remove Presto clusters when Presto Kubernetes resource is created or removed. Any changes to existing Presto Kubernetes resource will be picked up by the Presto Operator which will update the corresponding Presto cluster accordingly. For more information on Kubernetes Operators, refer to Kubernetes Operators.
Presto service account
The account used by Presto Operator to make Kubernetes API calls.
Presto service role
The role that is bound to Presto service account. The role must have enough privileges to manage Presto clusters.
A Presto pod that is responsible for parsing the SQL queries as well as analyzing, planning, and scheduling their execution. Presto Coordinator pods are part of Kubernetes Deployment that keeps at most a single Presto Coordinator pod running at the same time. Presto Coordinator pod will be automatically recreated on Presto Coordinator failure or unresponsiveness thus providing basic Presto high availability.
Presto pods that are responsible for performing particular query tasks. Number of
Presto workers can be adjusted statically by specifying the
worker.count property (see Presto Kubernetes resource)
or automatically via Kubernetes Horizontal scaling of a Presto cluster.
Presto Coordinator Service
A Kubernetes Service that delegates requests to the Presto Coordinator pod. Presto Coordinator Service is the frontend of a Presto cluster which accepts queries and exposes the Presto Coordinator GUI.
Presto Network Policy
A Kubernetes Network Policy that only allows inbound traffic to Presto Worker pods from the Presto Coordinator pod. Support for Kubernetes Network Policies might need to be enabled in your Kubernetes cluster.
A Hive Metastore pod that is running when Presto cluster is configured to use an internal Metastore.
A PostgreSQL pod that is running when Presto cluster is configured to use an internal Metastore with an internal ephemeral Metastore database.
All Presto Kubernetes components are labelled so that it’s easy to write selectors in order to match them. Those labels are:
CLUSTER_NAME_UUIDis the cluster name with a unique suffix.
CLUSTER_NAME_UUIDcan be overridden via the
nameOverridePresto Kubernetes resource property.
ROLE_NAMEcan be one of:
catalogs– specifies catalogs ConfigMap
configuration– specifies configuration ConfigMap
coordinator– specifies Presto Coordinator related components
worker– specifies Presto Worker related components
hive-metastore– specifies Hive Metastore related components
hive-postgresql– specifies PostgreSQL (for Hive Metastore) related components
prometheus-coordinator– specifies Prometheus metrics endpoint for Presto Coordinator
prometheus-worker– specifies Prometheus metrics endpoint for Presto Workers
The following features require a valid Starburst Enterprise license:
- Graceful worker scale-down
- Presto pods with more than 8 cores
- Presto pods with more than 64GB of RAM
Presto Support Options
At Starburst, the Presto company, we pride ourselves on being the Presto experts. Need support for your organization’s production and development environments for Presto? We have got you covered with 24x7 support as part of our Enterprise Subscription.