如何解决:"禁止使用 pod:用户"system:anonymous"无法监视 API 组中的资源"pods" " "命名空间"default""



我想使用Kubernetes作为spark的资源管理器。

所以我想提交一个jar far来使用spark-submit:激发集群

./bin/spark-submit  
--master k8s://https://vm:6443 
--class com.example.WordCounter  
--conf spark.kubernetes.authenticate.driver.serviceAccountName=default  
--conf spark.kubernetes.container.image=private-docker-registery/spark/spark:3.2.1-3 
--conf spark.kubernetes.namespace=default 
--conf spark.kubernetes.authenticate.submission.oauthToken=$TOKEN  
--conf spark.kubernetes.authenticate.caCertFile=api.cert 
java-word-count-1.0-SNAPSHOT.jar

对于服务帐户

kubectl create serviceaccount spark
kubectl create clusterrolebinding spark-role 
--clusterrole=edit 
--serviceaccount=default:default 
--namespace=default

对于caCertFile,我使用了/etc/kubernetes/pki/apiserver.crt内容。

对于提交。oauthToken

kubectl get secret spark-token-86tns -o yaml | grep token

并使用令牌部分。

但仍然不起作用,并且Ipods is forbidden: User "system:anonymous" cannot watch resource "pods" in API group "" in the namespace "default"错误

spark.kubernetes.authenticate.caCertFile必须是service account证书

并且CCD_ 7必须是CCD_。

证书和令牌都可以在服务帐户机密中找到。

  • 小心解码service account证书和令牌(base64-d(

最新更新