揭露火花ui与齐柏林飞船在kubernetes



首先,我对这一切都很陌生(kubernetes、ingress、spark/zeppelin…(,如果这很明显,我很抱歉。我试着在这里找,找文件等,但什么也找不到。

我正试图让spark解释器ui可以从我在kubernetes上运行的齐柏林飞船笔记本上访问。以下是我从这里了解到的内容:http://zeppelin.apache.org/docs/0.9.0-preview1/quickstart/kubernetes.html,我的入口yaml看起来像这样:

Ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-zeppelin-server-http
http
spec:
rules:
- host: my-zeppelin.my-domain
http:
paths:
- backend:
serviceName: zeppelin-server
servicePort: 8080
- host: '*.my-zeppelin.my-domain'
http:
paths:
- backend:
serviceName: spark-guovyx
servicePort: 4040
status:
loadBalancer: {}

我的问题是,我需要依赖于将服务名称(在本例中为spark-guovyx(设置为解释器pod名称,以便显示UI。然而,由于这个名称必然会更改/有不同的名称(即,我每个用户有一个解释器+解释器经常重新启动(,显然我不能依赖手动设置。我最初的想法是对serviceName使用某种通配符命名,但事实证明ingress/kubernetes不支持这种命名。有什么想法吗?

谢谢。

您可以创建一个新服务,并利用spark master pod的intereterSettingName标签。当齐柏林飞船创建一个主火花舱时,它会添加这个标签,其值为spark。我不确定在每个用户每个解释器的设置中,它是否适用于多个pod。下面是服务的代码,请告诉我每个用户和每个解释器的行为。

kind: Service
apiVersion: v1
metadata:
name: sparkUI
spec:
ports:
- name: spark-ui
protocol: TCP
port: 4040
targetPort: 4040
selector:
interpreterSettingName: spark
clusterIP: None
type: ClusterIP

然后你可以把你的入口作为:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-zeppelin-server-http
http
spec:
rules:
- host: my-zeppelin.my-domain
http:
paths:
- backend:
serviceName: zeppelin-server
servicePort: 8080
- host: '*.my-zeppelin.my-domain'
http:
paths:
- backend:
serviceName: sparkUI
servicePort: 4040
status:
loadBalancer: {}

也要签出此回购https://github.com/cuebook/cuelake,它仍处于开发的早期阶段,但很乐意听取您的反馈。

相关内容

  • 没有找到相关文章

最新更新