Open Madhukar525722 opened 3 weeks ago
A good question, in the Spark on YARN case, we leverage the Hadoop user impersonate mechanism to avoid managing all users' keytab, how do you manage the credentials of K8s for all users?
Hi @pan3793, One of the thing that I came across is webhook admission controller, this can be used to achieve impersonation in k8s. We can intercept the request to k8s API and change the user. Is such implementations going to be fine?
I am not familiar with this area, could you provide some docs/blogs to describe this solution, and is it possible to demonstrate this solution in a minikube (our CI runs on minikube)
Hi @pan3793 , Here are some of the context
Sure, I will try to create a demo on a minikube cluster.
Code of Conduct
Search before asking
What would you like to be improved?
Spark submit Caused by: io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: POST at: https:///api/v1/namespaces/genai/pods. Message: Forbidden! User doesn't have permission. pods is forbidden: User "madlnu" cannot create resource "pods" in API group "" in the namespace "genai".
Kyuubi engine launch in share level USER Caused by: io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: POST at: https:///api/v1/namespaces/genai/pods. Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. pods is forbidden: User "system:serviceaccount:scaas:spark" cannot create resource "pods" in API group "" in the namespace "genai".
When an USER engine is launched in k8s cluster, it is taking the user with which kyuubi server is running rather than actual users.
Configurations: kyuubi.authentication=KERBEROS kyuubi.spnego.keytab=spnego.keytab kyuubi.spnego.principal=spnego@DOMAIN.COM kyuubi.kinit.principal=hive@DOMAIN.COM kyuubi.kinit.keytab=hive.keytab spark.kubernetes.namespace=genai kyuubi.kubernetes.master.address=k8s://https://
spark.master=k8s://https://
kyuubi.kubernetes.namespace=scaas
spark.submit.deployMode=cluster
spark.kubernetes.authenticate.serviceAccountName=spark
spark.kubernetes.authenticate.driver.serviceAccountName=spark
How should we improve?
Expectation is user authentication should happen, while launching the engine pods.
Are you willing to submit PR?