访问 Kubernetes 集群中 Zeppelin 的接口
Access the interface of Zeppelin in Kubernetes cluster
我正在尝试将 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
为了公开界面,我创建了以下入口:
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 仪表板,一切看起来都很好(部署,Pods,服务和副本集是绿色的)。 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部分)
为什么你不通过 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) 关注link你
我正在尝试将 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
为了公开界面,我创建了以下入口:
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 仪表板,一切看起来都很好(部署,Pods,服务和副本集是绿色的)。 Zeppelin Pod 中有一堆 jersey.internal
警告,但它 look like they are not relevant.
综上所述,我希望通过 URL http://[MyIP]/zeppelin
.
但是当我这样做时,我得到:
HTTP ERROR 404
Problem accessing /zeppelin. Reason:
Not Found
访问 Zeppelin 界面我缺少什么?
注:
- 我使用 Minikube 集群和 Kubernetes 1.14
- 我的K8S集群上也有一个Spark集群,通过这种方式可以正确访问spark-master web-ui(这里省略了Ingress配置中的spark部分)
为什么你不通过 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) 关注link你