Kubernetes:Spring Cloud Data Flow Server的服务帐户权限问题

时间:2018-04-24 12:53:19

标签: spring kubernetes spring-cloud-dataflow

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

我收到了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".

以下是版本详情:

  • Spring Cloud数据流服务器:1.4.0.RELEASE
  • 使用minikube进行Kubernetes本地部署
  • Kubernetes版本:1.10

2 个答案:

答案 0 :(得分:2)

默认情况下,最新版本的minikube启用了RBAC。

对于支持RBAC的群集,我们在此问题的安装部分添加了一个注释。

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

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

  

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

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

  

helm init

     

helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com

     

helm repo update

     

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

答案 1 :(得分:0)

从安装指南中,步骤7:https://docs.spring.io/spring-cloud-dataflow-server-kubernetes/docs/1.4.0.RELEASE/reference/htmlsingle/#_deploying_using_kubectl

  

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

$ kubectl create -f src/kubernetes/server/server-roles.yaml
$ kubectl create -f src/kubernetes/server/server-rolebinding.yaml

您执行了这些步骤吗?