6.4. Prerequisites

Kubernetes cluster

Running Starburst Presto on Kubernetes requires Kubernetes Cluster version 1.8 or higher.

Support for Network Policies

Network policies are implemented by the network plugin, you must be using a networking solution which supports Kubernetes NetworkPolicy. For more information, refer to Kubernetes Network Policies.

Nodes

Presto Worker and Coordinator pods require significant amount of memory and CPU to work efficiently.

By default, Presto Worker pod requires 100GB of memory and 16 CPU cores which provide good overall performance. Those requirements can be changed via worker.cpuLimit, worker.cpuRequest, worker.memoryAllocation properties (see Presto Kubernetes resource for more information on properties).

By default, Presto Coordinator pod requires 60GB of memory and 16 CPU cores. Those requirements can be changed via coordinator.cpuLimit, coordinator.cpuRequest, coordinator.memoryAllocation properties.

The minimal production requirements for Presto Worker pod would be 64GB of memory and 8 CPU cores. The minimal production requirements for Presto Coordinator would be 48GB of memory and 8 CPU cores.

Using lower memory and CPU settings is recommended only for testing and development purposes.

Internal Metastore

Starburst Presto on Kubernetes can use a built-in Hive Metastore to keep schema and table metadata. In such a case a Metastore pod is launched which requires 8GB of memory and 2 CPU cores.

Additionally, Metastore requires a MySQL or PostgreSQL database to store its data. It is possible to use a built-in ephemeral PostgreSQL instance for that purpose, however it is not recommended for production use.

S3 access

Presto can use S3 for data storage. In such cases you need to create a Kubernetes secret with AWS credentials and pass it to the Presto Cluster via hive.awsSecretName property. For more information on AWS secret, please refer to Using AWS credentials.

Google Storage access

Presto can use Google Storage for data storage. In such cases you need to create a Kubernetes secret with Google Service Account Key and pass it to the Presto Cluster via hive.googleServiceAccountKeySecretName property. For more information on Google Service Account Key secret, please refer to Using Google Service Account key.

Internal PostgreSQL (testing purposes only)

Presto cluster can use an internal Metastore that is backed by internal ephemeral PostgreSQL. In such cases PostgreSQL pod requires 8GB of memory and 2 CPU cores. Additionally, a Persistent Storage is required with at least 10GB of disk space. For more information on internal PostgreSQL, please refer to Customizing internal PostgreSQL Docker pod.