当前位置: 首页 > 知识库问答 >
问题:

气流-KubernetesPodOperator-绑定服务帐户的角色

皇甫建木
2023-03-14

我目前正在使用KubernetesPodoperator在库伯内特斯集群上运行Pod。我收到以下错误:

库伯内特斯。客户RestApiException:(403)原因:禁止

HTTP响应标头:HTTPHeaderDict({'Auding-Id': '', 'Cache-Control':'no-cache, Private','Content-Type':'Application/json','X-Content-Type-Options':'nosnff','Date':'Mon,30 Aug2021 00:12:57GMT','Content-Llong':'309'})

HTTP响应正文:{"类":"状态","apiVersion":"v1","元数据":{},"状态":"失败","消息":"pods被禁止: User"system: servicecount: airflow 10: airflow-worker-servicecount"不能在命名空间中列出API组中的资源"pods","原因":"禁止","详细信息":{"类":"pods"},"代码": 403}

我可以通过运行以下命令来解决这个问题:

kubectl create clusterrole pod creator--动词=create,get,list,watch--资源=pods

kubectl create clusterrolebinding pod creator clusterrolebinding--clusterrole=pod creator--serviceaccount=气流10:气流工作者serviceaccount

但我希望能够在airflow中自动设置具有正确权限的服务帐户。在不必运行上述命令的情况下,有什么好方法可以做到这一点?

共有1个答案

池阳伯
2023-03-14

你真的不能。您需要在部署airflow时分配和创建角色,否则这将意味着您有巨大的安全风险,因为部署的应用程序将能够授予更多权限。

如果您的目的是在某种程度上自动化部署,那么可以通过多种方式“自动”完成。例如,如果您的气流部署是通过Helm图表完成的,则该图表可以添加html" target="_blank">配置正确的资源以创建适当的角色绑定。您可以看到我们的官方掌舵图是如何做到这一点的:

  • https://github.com/apache/airflow/blob/main/chart/templates/rbac/pod-launcher-role.yaml
  • https://github.com/apache/airflow/blob/main/chart/templates/rbac/pod-launcher-rolebinding.yaml
 类似资料:
  • 我已经从GCP控制台创建了和一个自定义角色。 但是,当试图关联它们时,它会失败,如下所示: 知道为什么吗?

  • 我开发了以下代码,用于自动执行我的一些实例的启动/停止任务,这些实例不需要一直运行,而是在特定范围内运行。 这是我的代码:https://github.com/maartinpii/gcp-shst 我按照谷歌云平台指南(参考:https://cloud.google.com/iam/docs/understanding-service-accounts https://cloud.google.

  • 我在一个GCP项目中构建了一个Google Kubernetes引擎(GKE)集群。 根据集群上运行的应用程序的不同用例,我将应用程序与不同的服务帐户和不同的授予权限相关联。为此,我将Google服务帐户(GSA)与库伯内特斯集群服务帐户(KSA)绑定如下: 参考:https://cloud.google.com/kubernetes-engine/docs/how-to/workload-ide

  • 当前设置:python应用程序在AWS EKS集群中作为Docker容器运行。AWS密钥在kubernetes集群中作为机密提供,以便python代码可以读取、初始化boto3会话并使用S3 bucket。 我想如何更改它:假设Docker容器在AWS EKS集群中运行的serviceaccount角色,然后使用此凭据初始化boto3会话并使用S3 bucket。我不想为每个服务提供AWS密钥,因

  • 配置1如下所示。配置2如下所示。 问题始于access_token: 我创建了一个名为moderator的新用户,并使用角色moderator,当我登录到该用户时,我接收我在选项卡“服务帐户角色”中设置的角色(resource_access.efairy-backend.roles),但我希望获得我在角色映射选项卡中声明的角色。 答复: access_token:“EYJHBGCIO...AJBA

  • 我一直试图用角色导入预先配置的客户机和服务帐户,所以我的json文件看起来像 我还尝试在导入的领域配置中设置客户端,但在这两种情况下,我都有以下问题 null Keycloak版本为:8.0.0 谢了。