首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KubernetesPodOperator无法识别service_account_name

KubernetesPodOperator无法识别service_account_name
EN

Stack Overflow用户
提问于 2020-02-23 12:17:17
回答 1查看 1K关注 0票数 0

我创建了一个名为my-app-cluster-accessserviceAccount资源。然后在KubernetesPodOperatorservice_account_name参数中提供该资源名称。但我一直收到错误

代码语言:javascript
复制
HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods is forbidden: User \"system:serviceaccount:my-release-name:default\" cannot create resource \"pods\" in API group \"\" in the namespace \"default\"","reason":"Forbidden","details":{"kind":"pods"},"code":403}

该消息似乎表明,由于消息中仍包含default文本,因此未应用提供的service_account_name值。我检查了KubernetesPodOperator源代码,看起来映射就在那里。

在我创建ServiceAccount资源之前,我也收到了同样的错误消息。我是否需要创建一个ServiceAccount资源才能使用该操作符?我需要能够使用KubernetesPodOperator,到目前为止没有工作后添加的ServiceAccount。我已经将in_cluster参数设置为True

EN

回答 1

Stack Overflow用户

发布于 2020-02-23 12:43:23

默认情况下,每个命名空间都有一个服务帐户,default服务帐户没有创建pods的权限。

在您的示例中,名称空间my-release-name中的一个default服务帐户正在尝试在default名称空间中创建一个pod。

您可以查看来自命名空间my-release-name的名为default的服务账号是否有权在default命名空间中创建pods。

代码语言:javascript
复制
kubectl auth can-i create pods -n default--as=system:serviceaccount:my-release-name:default

这将返回no。

所以你可以像下面这样创建一个角色

代码语言:javascript
复制
kubectl create clusterrole pod-creator --verb=create,get,list,watch --resource=pods

和群集角色绑定

代码语言:javascript
复制
kubectl create clusterrolebinding pod-creator-clusterrolebinding --clusterrole=pod-creator --serviceaccount=my-release-name:default

上面应该可以工作,而不需要创建新的服务帐户。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60359125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档