<p>I am trying to add Zeppelin to a Kubernetes cluster.</p>

<p>So, using the Zeppelin (0.8.1) docker image from <a href="https://hub.docker.com/r/apache/zeppelin/tags" rel="nofollow noreferrer">apache/zeppelin</a>, I created a K8S Deployment and Service as follow : </p>

<p>Deployment : </p>

<pre><code>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
</code></pre>

<p>Service : </p>

<pre><code>kind: Service
apiVersion: v1
metadata:
  name: zeppelin-k8s
spec:
  ports:
    - name: zeppelin
      port: 8080
      targetPort: 8080
  selector:
    component: zeppelin-k8s
</code></pre>

<p>To expose the interface, I created the following Ingress : </p>

<pre><code>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
</code></pre>

<p>Using the Kubernetes dashboard, everything look fine (Deployment, Pods, Services and Replica Sets are green). There is a bunch of <code>jersey.internal</code> warning in the Zeppelin Pod, but it <a href="https://issues.apache.org/jira/browse/ZEPPELIN-3504" rel="nofollow noreferrer">look like they are not relevant</a>.</p>

<p>With all that, I expect to access the Zeppelin web interface through the URL <code>http://[MyIP]/zeppelin</code>.</p>

<p>But when I do that, I get :</p>

<pre><code>HTTP ERROR 404 
Problem accessing /zeppelin. Reason:

    Not Found
</code></pre>

<p>What am I missing to access Zeppelin interface ?</p>

<p>Note : </p>

<ul>
<li>I use a Minikube cluster with Kubernetes 1.14 </li>
<li>I also have a Spark cluster on my K8S cluster, and I am able to access the spark-master web-ui correctly in this way (Here I have omitted the spark part in the Ingress configuration)</li>
</ul>

<p>Why you just don't expose your zeppelin service via NodePort?</p>

<p>1) update yaml as :</p>

<pre><code>kind: Service
apiVersion: v1
metadata:
  name: zeppelin-k8s
spec:
  ports:
    - name: zeppelin
      port: 8080
      targetPort: 8080
  type: NodePort
  selector:
    component: zeppelin-k8s
</code></pre>

<p>2) Expose access by</p>

<pre><code>minikube service zeppelin-k8s --url
</code></pre>

<p>3) Follow the link you </p>
