spring - 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".
以下是版本详细信息:
- Spring Cloud 数据流服务器:1.4.0.RELEASE
- 使用 minikube 进行 Kubernetes 本地部署
- Kubernetes 版本:1.10
解决方案
最新版本的 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
推荐阅读
- java - ObjectMapper 无法处理带有遗留枚举(类)的映射对象
- javascript - 在javascript中打印集合容器的特定元素
- highcharts - Highcharts/Highstock 跑圈
- angular - Rxjs 运算符 withLatestFrom 无法按预期工作
- gradle - 如何在 Kotlin DSL 的脚本插件中包含 Gradle 插件?
- c++ - 关于对齐存储和可简单复制/可破坏的类型
- django - 分页不适用于多个查询
- css - 使用 Bootstrap 轮播在单个轮播项目中显示多列
- android - I keep connection failed error in my "onFailure" method
- postgresql - I am unable to see the database I created using pgAdmin4