我正在尝试将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界面我错过了什么?
注意 :
为什么你不通过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)点击链接