首页 > 解决方案 > Kubernetes:Spring Cloud Data Flow Server 的服务帐户权限问题

问题描述

我一直在尝试使用 minikube 在本地为 Kubernetes 设置 Spring Cloud Dataflow Server。已按照此处链接中的安装说明进行操作:SCDF 安装参考

SCDF 服务器出现以下错误:


11:32:52.095 [main] DEBUG io.fabric8.kubernetes.client.Config - Trying to configure client namespace from Kubernetes service account namespace path...
11:32:52.096 [main] DEBUG io.fabric8.kubernetes.client.Config - Found service account namespace at: [/var/run/secrets/kubernetes.io/serviceaccount/namespace].
2018-04-24 11:33:14.348  WARN 1 --- [           main] o.s.cloud.kubernetes.StandardPodUtils    : Failed to get pod with name:[scdf-server-869d56967c-97lsd]. You should look into this if things aren't working as you expect. Are you missing serviceaccount permissions?

io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://kubernetes.default.svc/api/v1/namespaces/default/pods/scdf-server-869d56967c-97lsd. Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. pods "scdf-server-869d56967c-97lsd" is forbidden: User "system:serviceaccount:default:default" cannot get pods in the namespace "default".

以下是版本详细信息:

标签: springkubernetesspring-cloud-dataflow

解决方案


最新版本的 minikube 默认启用 RBAC。

对于启用 RBAC 的集群,我们在安装部分添加了关于此问题的注释。

“最新版本的 kubernetes 已在 api-server 上启用了 RBAC。如果您的目标平台启用了 RBAC,您必须让集群管理员在部署数据流服务器之前为您创建角色和角色绑定。他们关联数据流服务具有需要运行的角色的帐户。”

但是,对于 minikube,您可以运行以下命令并重试安装。

kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default

或者,如果您使用的是 helm-chart,您可以禁用 RBAC 并在 minikube 上安装以下图表。

掌舵初始化

helm repo 添加孵化器https://kubernetes-charts-incubator.storage.googleapis.com

掌舵回购更新

helm install --name my-release --set server.service.type=NodePort --set rbac.create=false incubator/spring-cloud-data-flow


推荐阅读