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

使用服务帐户令牌时出现Kubernetes仪表板错误

子车心思
2023-03-14

我有一个Kubernetes集群,各种资源运行良好。我试图让仪表板工作,但在启动仪表板并输入服务帐户令牌时出现以下错误。

persistentvolumeclaims被禁止:用户“system:serviceaccount:kube system:kubernetes dashboard”无法在命名空间“default”中的API组“”中列出资源“persistentvolumeclaims”

它不允许列出我集群中的任何资源(持久卷、pod、入口等)。我的集群有多个命名空间。

这是我的服务帐户yaml文件:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: k8s-test # replace with your preferred username
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: dashboard-admin # replace with your preferred username
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: dashboard-admin # replace with your preferred username
  namespace: kube-system

感谢任何帮助。

共有2个答案

章绪
2023-03-14

我建议使用库伯内特斯的Web UI(Dashboard)留档。

默认情况下不部署仪表板UI。要部署它,请运行以下命令:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml

从您的yaml中,我可以看到您为命名空间库贝-system指定了它们,但是仪表板正试图从命名空间默认中列出资源,至少错误消息中是这样说的。

此外,您的yaml对于ServiceAccountname似乎也是不正确的,因为在文件中,您有k8s测试,错误消息说它正在使用kubernetes仪表板

秦珂
2023-03-14

这应该可以解决问题:

kubectl delete clusterrole cluster-admin
kubectl delete clusterrolebinding kubernetes-dashboard 
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard

上面的命令将创建一个角色绑定,为所有资源提供所有权限。

kubectl proxy
http://127.0.0.1:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/persistentvolume?namespace=default

>

  • 您可以通过以下方式查看集群管理角色:

    kubectl edit clusterrole cluster-admin
    

    这里的问题是serviceaccount“kubernetes dashboard”没有资源“persistentVolumeClaims”的“列表”权限。

  •  类似资料:
    • 我试图创建一个服务帐户与一个已知的,固定的令牌Jenkins使用,以部署到Kubernetes的东西。我使用以下YAML创建了令牌:

    • 在任何给定的POD中,服务帐户令牌被挂载在位置。 /var/run/secrets/kubernetes.io/serviceaccount/token 我想了解这个令牌是如何签名的。Kubernetes在签名此令牌时使用什么密钥?如何访问有助于脱机签名验证的公钥 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt-我尝试使用与此证书关联的公钥

    • 我通过Kubespray成功部署了Kubernetes,一切似乎都很好。我可以通过kubectl访问集群,列出节点、POD、服务、秘密等。还可以应用新的资源,仪表板endpoint可以让我进入仪表板登录页面。 我使用不同服务帐户的令牌登录(默认、kubernetes仪表板、kubernetes admin等)。。。每次登录时,我都会看到与kubespray dashboard中描述的相同的弹出窗口

    • 在kubernetes 1.8.4上,我试图让kubernetes用户访问我们的仪表板。 当使用管理上下文代理时,所有令牌在登录到仪表板时都起作用。但是我的用户没有管理上下文,只有我有,所以他们使用自己的上下文来代理。在这种情况下,他们会出错。 步骤: > 为用户创建服务帐户,将令牌放入 通过rolebinding向该服务帐户授予命名空间A的权限 切换到该用户的上下文 进行部署、获取pod概览等,

    • 我已经在本地机器中配置了minikube,并打算在外部使用kubernetes。我在kubernetes中创建了一个服务帐户,使用它的秘密,我可以使用下面的命令获得访问令牌。 我正在以贝娄启动配置。 我能知道如何使用fabric8 java客户端获得上面描述的serviceAccountAccessToken吗?

    • 正在尝试在kubernetes上运行Spring云数据流服务器。当我尝试打开仪表板url时(https://scdfserverurl/dashboard/#/apps)在浏览器中部分加载,并在日志中显示以下错误。其他组件skipper运行正常,可以访问url。 错误堆栈跟踪 库伯内特斯酒店 波姆。数据流服务器的XML