访问Kubernetes集群中Zeppelin的界面

问题描述 投票:1回答:1

我正在尝试将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

为了公开界面,我创建了以下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仪表板,一切看起来都很好(部署,Pod,服务和副本集是绿色的)。 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界面我错过了什么?

注意 :

  • 我使用带有Kubernetes 1.14的Minikube集群
  • 我的K8S集群上还有一个Spark集群,我能够以这种方式正确访问spark-master web-ui(这里我省略了Ingress配置中的spark部分)
kubernetes apache-zeppelin
1个回答
4
投票

为什么你不通过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)点击链接

© www.soinside.com 2019 - 2024. All rights reserved.