Presto cluster on Kubernetes error worker bind port 8080

1/20/2020

I'm setting up a Presto cluster with 1 coordinator and 1 worker. I have used the same own images only with Docker and it worked.

However, when I pass to Kubernetes I get an error in the worker node when initialising Presto:

ERROR main com.facebook.presto.server.PrestoServer

Unable to create injector, see the following errors:

1) Error in custom provider, java.lang.NullPointerException at com.facebook.airlift.discovery.client.DiscoveryBinder.bindServiceAnnouncement(DiscoveryBinder.java:79)

while locating com.facebook.airlift.discovery.client.ServiceAnnouncement annotated with @com.google.inject.internal.Element(setName=,uniqueId=146, type=MULTIBINDER, keyType=) while locating java.util.Set

3) Error injecting constructor, java.io.UncheckedIOException: Failed to bind to /0.0.0.0:8080 at com.facebook.airlift.http.server.HttpServerInfo.(HttpServerInfo.java:48)

deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: presto-cluster
  namespace: presto-clu2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: presto-c
  template:
    metadata:
      labels:
        app: presto-c
    spec:
      containers:
      - name: presto-co
        image: x/openjdk-presto-k:1.0
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
      - name: presto-wo
        image: x/openjdk-prestoworker-k:1.0
        imagePullPolicy: Always
        ports:
        - containerPort: 8181

service

apiVersion: v1
kind: Service
metadata:
  name: presto-cluster
  namespace: presto-clu2
spec:
  selector:
    app: presto-c
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080
  type: NodePort

When going up with namespace, service and deployment only the coordinator gets operative.

It seems something related to the worker not being able to bind in port 8080 for the discovery of the coordinator. I know that inside a pod, all containers share ports and that could be the issue here, but I don't know well enough the technologies to check it and potentially change the port in the worker.

Do you have any idea of the issue?

-- user2728349
docker
kubernetes
minikube
presto

0 Answers