【问题标题】:Airflow - KubernetesPodOperator - Role binding a service accountAirflow - KubernetesPodOperator - 绑定服务帐户的角色
【发布时间】:2021-10-28 20:33:22
【问题描述】:

我目前正在使用 KubernetesPodOperator 在 Kubernetes 集群上运行 Pod。我收到以下错误:

kubernetes.client.rest.ApiException: (403) 原因:禁止

HTTP 响应头:HTTPHeaderDict({'Audit-Id': '', “缓存控制”:“无缓存,私有”,“内容类型”: '应用程序/json','X-Content-Type-Options':'nosniff','日期':'星期一, 2021 年 8 月 30 日 00:12:57 GMT', 'Content-Length': '309'})

HTTP 响应正文: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods 被禁止:用户 “系统:serviceaccount:airflow10:airflow-worker-serviceaccount” 无法列出命名空间中 API 组“”中的资源“pod” "default"","re​​ason":"Forbidden","details":{"kind":"pods"},"code":403}

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

kubectl create clusterrole pod-creator --verb=create,get,list,watch --resource=pods

kubectl create clusterrolebinding pod-creator-clusterrolebinding --clusterrole=pod-creator --serviceaccount=airflow10:airflow-worker-serviceaccount

但我希望能够在气流中自动设置具有正确权限的服务帐户。什么是无需运行上述命令的好方法?

【问题讨论】:

    标签: kubernetes airflow kubernetespodoperator


    【解决方案1】:

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

    如果您的意图是使部署自动化,这可以通过多种方式“自动”完成。例如,如果您的气流部署是通过 Helm 图表完成的,则该图表可以添加配置正确的资源以创建适当的角色绑定。你可以看看我们的官方 Helm 图表是如何做到的:

    【讨论】:

    • 感谢 Jarek- 说得通。
    猜你喜欢
    • 2020-04-08
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 2019-09-02
    • 2020-03-26
    • 2021-05-02
    • 1970-01-01
    • 2020-12-23
    相关资源
    最近更新 更多