概述
2019独角兽企业重金招聘Python工程师标准>>>
-
适用场景:linux系统,已经搭建好kubernetes1.4及以上的集群,没有配置CA等认证,已经搭建DNS,其它情景仅作参考。
-
如果还没有搭建DNS,请参考kubernetes中部署DNS搭建。
-
相关的yaml文件已经上传到本人的github,需要用到的国外镜像也一并被我替换成了阿里云镜像,可直接下载使用
相关文章:
- kubernetes中搭建spark集群 (一)
- kubernetes中搭建spark集群 (二)
- kubernetes中搭建spark集群 (三)
上节kubernetes中搭建spark集群 (一)说到spark mater和worker节点的ui都是单独的,没法在一个UI里实现查看,点击worker UI里的==back to master==也是返回不了master的UI的。并且此时集群外也无法访问我们的spark集群,这篇文章将重点介绍如何合并这些UI。
解决多UI合并和对外开放问题
这里以我集群中已经启动的spark集群为例
如下图所示,外部没法正常访问集群中的spark集群,而且每个spark节点都有自己的UI用户界面,没法实现一个端口访问所有的UI
针对这一情况,这里使用一个代理来实现合并,通过一个Python脚本创建了一个轻量级的HTTP服务器,它将所有的请求代理给你的Spark Master和Spark Workers。所有你需要做的是创建一个单一的SSH通道到这个代理,代理将转发所有的请求到相应的节点上。
具体的实现过程如下:
1.创建代理POD
a.文件spark-ui-proxy-controller.yaml内容
kind: ReplicationController
apiVersion: v1
metadata:
name: spark-ui-proxy-controller
spec:
replicas: 1
selector:
component: spark-ui-proxy
template:
metadata:
labels:
component: spark-ui-proxy
spec:
containers:
- name: spark-ui-proxy
image: registry.cn-hangzhou.aliyuncs.com/sjq-study/spark-ui-proxy:1.0
ports:
- containerPort: 80
resources:
requests:
cpu: 100m
args:
- spark-master:8080
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 120
timeoutSeconds: 5
- 其中相关镜像已替换成阿里云镜像,可以直接下载使用。
b.创建RC
$ kubectl create -f spark-ui-proxy-controller.yaml
c.查看验证
$ kubectl get pods |grep spark-ui
spark-ui-proxy-controller-gkx2v
1/1
Running
0
5h
- 已经running!
d.创建services
文件spark-ui-proxy-service.yaml 内容:
kind: Service
apiVersion: v1
metadata:
name: spark-ui-proxy
spec:
type: NodePort
ports:
- port: 80
targetPort: 80
nodePort: 8082
selector:
component: spark-ui-proxy
-
这里我将端口映射到了主机的8082端口,这样外部就可以通过该端口访问spark集群的工作界面了。
-
创建
$ kubectl create -f spark-ui-proxy-service.yaml
e.查看验证
$ kubectl get svc |grep spark-ui
spark-ui-proxy
192.168.3.158
<nodes>
80:8082/TCP
4h
可以看出集群给services分配了一个192.168.3.158的集群IP,那么在集群内就可以通过这个Ip+port来访问spark集群的用户界面了。
实际搭建验证
a.集群外部通过暴露的端口进行访问,
这里我的主机IP为192.168.122.10,,,从ui-proxy映射的端口为8082,则访问http://192.168.122.10:8082
- 点击master中的任意worker节点均可跳转到相应的worker节点的Ui,并且点击worker中的==back to master==也能成功跳转到master
b.集群内部访问
集群内通过主机的Ip+映射的port也能直接访问,或通过ui-proxy-service的IP(192.168.3.158)+port也能实现正常访问,
- 未完待续!
相关文章:
- kubernetes中搭建spark集群 (一)
- kubernetes中搭建spark集群 (二)
- kubernetes中搭建spark集群 (三)
声明!以上内容纯属个人原创!转载请标注出处,谢谢!
如果本文有帮助到你,希望能动动小手点个赞。 如有错误请多指正!如有雷同!纯属巧合!
转载于:https://my.oschina.net/blueyuquan/blog/1593233
最后
以上就是鲤鱼皮皮虾为你收集整理的kubernetes中搭建spark集群 (二)的全部内容,希望文章能够帮你解决kubernetes中搭建spark集群 (二)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复