kubernetes - Spring Cloud Kubernetes:什么是集群读取器权限?
问题描述
根据Spring Cloud Kubernetes文档,为了在启用 RBAC 的 Kubernetes 发行版中发现服务/pod:
您需要确保使用 spring-cloud-kubernetes 运行的 pod 可以访问 Kubernetes API。对于您分配给部署/pod 的任何服务帐户,您需要确保它具有正确的角色。例如,您可以
cluster-reader
根据您所在的项目向默认服务帐户添加权限。
什么是cluster-reader
发现服务/pod 的权限?
我收到的错误是:
io.fabric8.kubernetes.client.KubernetesClientException: Failure executing: GET at: https://x.x.x.x/api/v1/namespaces/jx-staging/services.
Message: Forbidden!Configured service account doesn't have access.
Service account may have been revoked. services is forbidden:
User "system:serviceaccount:jx-staging:default" cannot list services in the namespace "jx-staging"
解决方案
阅读似乎是 Spring Cloud Kubernetes 发现 pod 和服务的最低要求endpoints
。services
示例将权限添加到命名空间中的default
服务帐户default
。
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: cluster-read-role
rules:
- apiGroups:
- ""
resources:
- endpoints
- pods
- services
- configmaps
verbs:
- get
- list
- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: cluster-read-rolebinding
subjects:
- kind: ServiceAccount
name: default
namespace: default
roleRef:
kind: ClusterRole
name: cluster-read-role
apiGroup: rbac.authorization.k8s.io
推荐阅读
- javascript - 在 javascript 中更新 vuejs 列表项
- c# - RabbitMQ 将消息标记为死信
- visual-studio - 使用 Visual Studio 2019 Vers.16.2.5 构建 Uno 平台解决方案的问题
- python - 使用 for 循环创建数据框后创建 Pandas 数据框列表
- html - 我的网页无法在 IE 和 Firefox 中运行
- python - setuptools_scm 版本受 Cython 生成的 C 代码中的注释影响
- php - 使用 query_builder 时,如何使用 Symfony formbuilder 选择默认选项?
- javascript - jQuery - 设置和重置转换延迟
- javascript - 摩纳哥编辑器自动完成功能在哪里?
- c - 为什么 ALSA 播放速度过快?