Доступ к интерфейсу Zeppelin в кластере Kubernetes - PullRequest
1 голос
/ 08 апреля 2019

Я пытаюсь добавить Цеппелин в кластер Kubernetes.

Итак, используя образ докера Zeppelin (0.8.1) из apache / zeppelin , я создал K8S Deployment and Service следующим образом:

Развертывание:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
        name: zeppelin-k8s
spec:
  replicas: 1
  selector:
    matchLabels:
      component: zeppelin-k8s
  template:
    metadata:
      labels:
        component: zeppelin-k8s
    spec:
      containers:
        - name: zeppelin-k8s
          image: apache/zeppelin:0.8.1
          ports:
            - containerPort: 8080
          resources:
            requests:
                cpu: 100m

Сервис:

kind: Service
apiVersion: v1
metadata:
  name: zeppelin-k8s
spec:
  ports:
    - name: zeppelin
      port: 8080
      targetPort: 8080
  selector:
    component: zeppelin-k8s

Чтобы выставить интерфейс, я создал следующий Ingress:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: minikube-ingress
  annotations:
spec:
  rules:
  - host: spark-kubernetes
    http:
      paths:
      - path: /zeppelin
        backend:
          serviceName: zeppelin-k8s
          servicePort: 8080

С приборной панелью Kubernetes все выглядит хорошо («Развертывание», «Pods», «Services» и «Replica Sets» зеленого цвета). В модуле Zeppelin есть несколько предупреждений jersey.internal, но, похоже, они не имеют отношения .

После всего этого я ожидаю получить доступ к веб-интерфейсу Zeppelin через URL http://[MyIP]/zeppelin.

Но когда я это делаю, я получаю:

HTTP ERROR 404 
Problem accessing /zeppelin. Reason:

    Not Found

Чего мне не хватает для доступа к интерфейсу Zeppelin?

Примечание:

  • Я использую кластер Minikube с Kubernetes 1.14
  • У меня также есть кластер Spark в моем кластере K8S, и я могу правильно получить доступ к веб-интерфейсу spark-master таким образом (здесь я опустил часть spark в конфигурации Ingress)

1 Ответ

4 голосов
/ 08 апреля 2019

Почему вы просто не выставляете свой сервис zeppelin через NodePort?

1) обновить yaml как:

kind: Service
apiVersion: v1
metadata:
  name: zeppelin-k8s
spec:
  ports:
    - name: zeppelin
      port: 8080
      targetPort: 8080
  type: NodePort
  selector:
    component: zeppelin-k8s

2) Открывать доступ по

minikube service zeppelin-k8s --url

3) Перейдите по ссылке, которую вы

...