gpt4 book ai didi

Kubernetes日志,用户 "system:serviceaccount:default:default"无法获取命名空间中的服务

转载 作者:行者123 更新时间:2023-12-02 16:31:23 34 4
gpt4 key购买 nike

禁止!配置的服务帐户无权访问。服务帐户可能已被撤销。用户“system:serviceaccount:default:default”无法获取命名空间“mycomp-services-process”中的服务

对于上述问题,我创建了“mycomp-service-process”命名空间并检查了问题。

但它再次显示这样的消息:

消息:禁止!配置的服务帐户无权访问。服务帐户可能已被撤销。用户“system:serviceaccount:mycomp-services-process:default”无法获取命名空间“mycomp-services-process”中的服务

最佳答案

创建命名空间当然不会解决问题,因为这根本不是问题。

在第一个错误中,问题是默认命名空间中的serviceaccount默认无法获取服务,因为它无权访问列表/获取服务。因此,您需要做的是使用clusterrolebinding为该用户分配角色。

按照最低权限集,您可以首先创建一个有权访问列表服务的角色:

kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: service-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["services"]
verbs: ["get", "watch", "list"]

上面的代码片段的作用是创建一个可以列出、获取和监视服务的集群角色。 (您必须创建一个 yaml 文件并应用上述规范)

现在我们可以使用这个集群角色来创建集群角色绑定(bind):

kubectl create clusterrolebinding service-reader-pod \
--clusterrole=service-reader \
--serviceaccount=default:default

在上面的命令中,service-reader-pod 是集群角色绑定(bind)的名称,它将服务读取器集群角色分配给默认命名空间中的默认服务帐户。对于您遇到的第二个错误,可以执行类似的步骤。

在本例中,我创建了 clusterroleclusterrolebinding,但您可能想要创建 rolerolebinding 。您可以查看documentation in detail here

关于Kubernetes日志,用户 "system:serviceaccount:default:default"无法获取命名空间中的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47973570/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com