Apache spark 在库伯内特斯上与齐柏林飞艇一起展示spark ui

Apache spark 在库伯内特斯上与齐柏林飞艇一起展示spark ui,apache-spark,kubernetes,kubernetes-ingress,apache-zeppelin,Apache Spark,Kubernetes,Kubernetes Ingress,Apache Zeppelin,首先,我对这一切都很陌生(库伯内特斯、安格斯、斯帕克/齐柏林飞艇…),如果这是显而易见的,我向你道歉。我试着在这里搜索,文档等,但什么也找不到 我正试图让spark解释器ui可以从运行在kubernetes上的齐柏林飞艇笔记本上访问。 根据我在这里的理解:,我的入口yaml看起来像这样: 亚马尔酒店 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: ingress-zeppelin-server-http http sp

首先,我对这一切都很陌生(库伯内特斯、安格斯、斯帕克/齐柏林飞艇…),如果这是显而易见的,我向你道歉。我试着在这里搜索,文档等,但什么也找不到

我正试图让spark解释器ui可以从运行在kubernetes上的齐柏林飞艇笔记本上访问。 根据我在这里的理解:,我的入口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的解释器设置名称标签。齐柏林飞艇创建主火花吊舱时,会添加此标签,其值为火花。我不确定在每个用户每个解释器的设置中,它是否可以用于多个pod。下面是服务的代码,请务必让我知道每个用户和每个解释器的行为

种类:服务
版本:v1
元数据:
姓名:sparkUI
规格:
端口:
-名称:spark ui
协议:TCP
端口:4040
目标端口:4040
选择器:
解释器设置名称:spark
集群:无
类型:集群
然后您可以将入口设置为:

apiVersion:extensions/v1beta1
种类:入口
元数据:
名称:ingress齐柏林飞艇服务器http
http
规格:
规则:
-主持人:我的齐柏林飞艇
http:
路径:
-后端:
服务名称:齐柏林飞艇服务器
服务端口:8080
-主持人:“*.我的齐柏林飞艇.我的地盘”
http:
路径:
-后端:
服务名称:sparkUI
服务端口:4040
地位:
负载平衡器:{}

也请签出此回购协议,它仍处于开发的早期阶段,但希望听到您的反馈。

你好,Vikrant,我投票/接受了您的答案,因为它确实解决了我的问题,非常感谢您,让我发疯了!Cuelake看起来确实很有趣,在我的例子中,我更想把spark/zeppelin作为一个面向多个用户的数据研究平台,而不是像ELT一样的工具。