Я настраиваю кластер Presto с 1 координатором и 1 работником. Я использовал те же собственные изображения только с Docker, и это сработало.
Однако, когда я перехожу к Kubernetes, я получаю сообщение об ошибке в рабочем узле при инициализации Presto:
ОШИБКА main com.facebook.presto.server.PrestoServer
Невозможно создать инжектор, см. Следующие ошибки:
1) Ошибка в настраиваемом поставщике, java .lang.NullPointerException at com. facebook.airlift.discovery.client.DiscoveryBinder.bindServiceAnnouncement (DiscoveryBinder. java: 79)
при поиске com.facebook.airlift.discovery.client.ServiceAnnouncement, отмеченный @ com.google.inject.internal. Элемент (setName =, uniqueId = 146, type = MULTIBINDER, keyType =) при определении местоположения java .util.Set
3) Конструктор ошибок при внедрении, java .io.UncheckedIOException: Не удалось привязать к / 0.0.0.0:8080 на com.facebook.airlift.http.server.HttpServerInfo. (HttpServerInfo. java: 48)
развертывание
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
служба
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
При переходе вверх по пространству имен, s Служба и развертывание, только координатор становится действующим.
Кажется, что-то связано с тем, что работник не может подключиться к порту 8080
для обнаружения координатора. Я знаю, что внутри модуля все контейнеры совместно используют порты, и это может быть проблемой, но я недостаточно хорошо знаю технологии, чтобы проверить это и потенциально изменить порт на рабочем месте.
Есть ли у вас Любая идея вопроса?