全栈工程师开发手册 (作者:栾鹏)
架构系列文章


首先要求你的k8s支持helm。阿里云自带的k8s已经包含了对helm的支持。关于服务器k8s的部分这里不讨论,我们考论如何用一个已经好的k8s来进行部署spark。

安装配置 kubectl 和 Helm CLI

在本地计算机上安装和配置 kubectl。

参见https://blog.csdn.net/luanpeng825485697/article/details/80862581文章中安装kubectl

在本地计算机上安装 Helm。

安装方法,参见https://github.com/helm/helm/blob/master/docs/install.md?spm=a2c4g.11186623.2.6.Qr9c2B&file=install.md

本地有了kubectl和helm以后,我们就可以来在k8s上部署spark了。

配置 Helm 的 Repository。这里我们使用了阿里云容器服务提供的 Charts 存储库。

helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.9.1 --stable-repo-url https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
稍等一会,再通过下面的命令查看helm的客户端和服务器端
helm version

helm repo add incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
helm repo update

通过helm安装官方spark

helm search spark   查找所有可用的spark应用
kubectl create ns cloudai-2
helm install --name cloud-spark --namespace cloudai-2 aliyun/spark

如果安装出错了可以删除charts
helm delete --purge cloud-spark

通过helm自定义安装spark

上面安装的spark将自动部署三个pod,部署配置可能不能满足我们的要求,我们可以自定义配置来安装

首选下载hlem应用。

helm fetch aliyun/spark

解压后修改values.yaml文件
修改vlaue.yaml文件中

ServiceType: NodePort

在Master下添加

NodePort: 31461

修改templates/spark-master-deployment.yaml文件中
为master服务修改为

spec:
  ports:
    - port: {{ .Values.Master.ServicePort }}
      targetPort: {{ .Values.Master.ContainerPort }}
      nodePort: {{ .Values.Master.NodePort }}
  selector:
    component: "{{ .Release.Name }}-{{ .Values.Master.Component }}"
  type: {{ .Values.Master.ServiceType }}

最后安装本地文件夹就可以了

helm install --name cloud-spark --namespace cloudai-2 spark
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐