Spark执行者无法访问kubernetes集群内部的点火节点

时间:2018-06-21 12:00:12

标签: apache-spark kubernetes ignite

我正在将我的火花作业与现有的点火集群连接起来。我为此使用了一个服务帐户名称 spark 。我的驱动程序可以访问点火容器,但是我的执行者不能访问该容器。

这是执行者日志的样子

Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://35.192.214.68/api/v1/namespaces/default/endpoints/ignite

我想这是由于某些特权。有没有办法为执行人明确指定服务帐户?

谢谢。

1 个答案:

答案 0 :(得分:1)

here讨论了类似的问题。

您很可能需要向用于运行Ignite的服务帐户授予更多权限。

通过这种方式,您可以创建另一个角色并将其绑定到服务帐户:

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRole
metadata:
  name: ignite
  namespace: default
rules:
- apiGroups:
  - ""
  resources: # Here is resources you can access
  - pods
  - endpoints
  verbs: # That is what you can do with them
  - get
  - list
  - watch

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: ignite
roleRef:
  kind: ClusterRole
  name: ignite
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: <service account name>
  namespace: default

此外,如果您的命名空间不是default,则需要在yaml文件中更新该命名空间,并在TcpDiscoveryKubernetesIpFinder configuration中进行指定。