我在Kubernetes上运行了Spark,其中有1位管理员和3位工人。如果我在k8s集群中的容器中运行它,那么它可以运行一个简单的CalculatePi示例(因此Spark处于工作状态)。我创建了一个公开externalIPs
的服务,并且能够成功telnet <ip address> 7077
,但是在spark-submit --master spark://<ip>:7077
上运行.jar
时出现错误
ERROR StandaloneSchedulerBackend:70 - Application has been killed. Reason: All masters are unresponsive! Giving up.
与其他人一起。
但是,如果我将kubectl cp
spark-submit
到其中一个spark容器中并在该容器中运行spark-master-deployment.yaml
,它将正常工作。
我在这里想念什么?
编辑:Spark配置与official Helm chart相同,除了我向externalIPs
文件添加了一个附加服务,该文件与现有ClusterIP服务相同,只是具有apiVersion: v1
kind: Service
metadata:
name: {{ template "master-fullname" . }}-exposed
labels:
heritage: {{ .Release.Service | quote }}
release: {{ .Release.Name | quote }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
component: "{{ .Release.Name }}-{{ .Values.Master.Component }}"
spec:
ports:
- port: {{ .Values.Master.ServicePort }}
targetPort: {{ .Values.Master.ContainerPort }}
selector:
component: "{{ .Release.Name }}-{{ .Values.Master.Component }}"
externalIPs:
- <the IP address of one of the Kubernetes nodes here>
属性将其暴露在Kubernetes集群之外:
(defun untabify-everything ()
(untabify (point-min) (point-max)))
(defun untabify-everything-on-save ()
(add-hook 'before-save-hook 'untabify-everything) nil)
(add-hook 'before-save-hook 'untabify-everything-on-save)