I am trying to add Zeppelin to a Kubernetes cluster.
So, using the Zeppelin (0.8.1) docker image from apache/zeppelin, I created a K8S Deployment and Service as follow :
Deployment :
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
Service :
kind: Service
apiVersion: v1
metadata:
name: zeppelin-k8s
spec:
ports:
- name: zeppelin
port: 8080
targetPort: 8080
selector:
component: zeppelin-k8s
To expose the interface, I created the following 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
Using the Kubernetes dashboard, everything look fine (Deployment, Pods, Services and Replica Sets are green). There is a bunch of jersey.internal
warning in the Zeppelin Pod, but it look like they are not relevant.
With all that, I expect to access the Zeppelin web interface through the URL http://[MyIP]/zeppelin
.
But when I do that, I get :
HTTP ERROR 404
Problem accessing /zeppelin. Reason:
Not Found
What am I missing to access Zeppelin interface ?
Note :
Why you just don't expose your zeppelin service via NodePort?
1) update yaml as :
kind: Service
apiVersion: v1
metadata:
name: zeppelin-k8s
spec:
ports:
- name: zeppelin
port: 8080
targetPort: 8080
type: NodePort
selector:
component: zeppelin-k8s
2) Expose access by
minikube service zeppelin-k8s --url
3) Follow the link you