背景
flink 1.12.2版本,session模式,配置高可用,使用的是k8s高可用。
报错内容如下:
"flink-**-cluster-resourcemanager-leader" is forbidden: User "system:serviceaccount:data-warehouse:default"
解决办法:
可能原因1:没配置serviceaccount
kubectl create serviceaccount flink -n <namespace>
kubectl create clusterrolebinding flink-role-binding-flink --clusterrole=edit --serviceaccount=default:flink -namespace=<namespace>
可能原因2:创建集群时未引用service-account
-Dkubernetes.service-account=flink
或者
-Dkubernetes.jobmanager.service-account=flink
-Dkubernetes.taskmanager.service-account=flink
理解:配置项可单独配置jobmanager和taskmanager的service-account。
不使用高可用的时候只需要配置jobmanager即可,因为正常jobmanger会存储taskmanager节点信息到configmap上,需要写权限。
配置高可用需要taskmanager也要配置,因为高可用需要存储相关资源信息。没有权限不行。
image.png