在Kubernetes集群中访问Zeppelin的界面

时间:2019-04-08 12:01:17

标签: kubernetes apache-zeppelin

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

因此,使用来自apache/zeppelin的Zeppelin(0.8.1)泊坞窗映像,我创建了一个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

要公开该界面,我创建了以下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仪表板,一切看起来都很好(Deployment,Pod,Services和Replica Sets为绿色)。 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界面我缺少什么?

注意:

  • 我将Minikube集群与Kubernetes 1.14一起使用
  • 我的K8S群集上也有一个Spark群集,并且我可以通过这种方式正确访问spark-master Web-ui(这里我在Ingress配置中省略了spark部分)

1 个答案:

答案 0 :(得分:3)

为什么您不通过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)跟随您的链接