访问 Kubernetes 集群中 Zeppelin 的接口

Access the interface of Zeppelin in Kubernetes cluster

我正在尝试将 Zeppelin 添加到 Kubernetes 集群。

因此,使用来自 apache/zeppelin 的 Zeppelin (0.8.1) docker 图像,我创建了一个 K8S 部署和服务,如下所示:

部署:

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

为了公开界面,我创建了以下入口:

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,服务和副本集是绿色的)。 Zeppelin Pod 中有一堆 jersey.internal 警告,但它 look like they are not relevant.

综上所述,我希望通过 URL http://[MyIP]/zeppelin.

访问 Zeppelin Web 界面

但是当我这样做时,我得到:

HTTP ERROR 404 
Problem accessing /zeppelin. Reason:

    Not Found

访问 Zeppelin 界面我缺少什么?

注:

为什么你不通过 NodePort 公开你的 zeppelin 服务?

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) 关注link你