我正在将我的火花作业与现有的点火集群连接起来。我为此使用了一个服务帐户名称 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
我想这是由于某些特权。有没有办法为执行人明确指定服务帐户?
谢谢。
答案 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中进行指定。