Kubernetes is an open source container orchestration engine for automating deployment, scaling, and management of containerized applications. Operators are software extensions to Kubernetes that make use of custom resources to manage applications and their components. Operators follow Kubernetes principles, notably the control loop.
SteerD Presto Operator is a Kubernetes Operator for Presto to manage Presto clusters which are deployed as custom resources. In short, the task of configuring, creating, managing, automatically scaling up and scaling-in of Presto cluster(s) in a Kubernetes environment has been made simple, easy and quick.
SteerD Presto Operator supports both PrestoDB and PrestoSQL forks.
Step 1: Enable metrics server for k8s, if not already enabled. See this. This is needed for horizontal pod autoscaling.
Step 2: Build the operator
$ go build -o steerd-presto-operator cmd/manager/main.go
Step 3: Deploy the CRD
$ kubectl apply -f deploy/crds/falarica.io_prestos_crd.yaml
Step 4: Start the controller with the right credentials
$ ./steerd-presto-operator -kubeconfig /home/hemant/.kube/config
Step 1: Enable metrics server for GKE, if not already enabled. See this. This is needed for horizontal pod autoscaling.
Step 2: Create Operator Image Using Google CloudBuild
$ docker/gcloudDockerBuild.sh
Step 3: Deploy the CRD
$ kubectl apply -f deploy/crds/falarica.io_prestos_crd.yaml
Step 4: Update the Operator yaml with image name
# Here gcr.io/fluid-tangent-249303/steerd-presto-operator is the name of image.
# Replace it with your image name
$ sed -i 's/REPLACE_IMAGE/gcr.io\/fluid-tangent-249303\/steerd-presto-operator/g' deploy/operator.yaml
Step 5: Launch the operator
$ kubectl apply -f deploy/operator.yaml
Deploy the presto cluster
$ ## Deploy Presto SQL. For PrestoDB, refer deploy/crds/falarica_prestodb.yaml
$ kubectl apply -f deploy/crds/falarica.io_v1alpha1_presto_cr.yaml