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.
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.
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.
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
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
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.