首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubernetes ServiceAccount角色验证失败

kubernetes ServiceAccount角色验证失败
EN

Stack Overflow用户
提问于 2022-09-20 08:36:07
回答 2查看 26关注 0票数 0

问题:

在默认名称空间中创建服务帐户名称dev-sa,dev-sa可以在dev命名空间中创建以下组件:

部署StatefulSet DaemonSet

结果:

代码语言:javascript
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  namespace: default
  name: dev-sa
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: dev
  name: sa-role
rules:
- apiGroups: [""]
  resources: ["deployment","statefulset","daemonset"]
  verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: sa-rolebinding
  namespace: dev
subjects:
- kind: ServiceAccount
  name: dev-sa
  namespace: default
roleRef:
  kind: Role
  name: sa-role
  apiGroup: rbac.authorization.k8s.io

审定:

代码语言:javascript
复制
kubectl auth can-i create deployment -n dev \
--as=system:serviceaccount:default:dev-sa
no

这是个试题,但我不能及格

你能告诉我哪里出错了吗?thx

EN

回答 2

Stack Overflow用户

发布于 2022-09-20 09:34:33

首先,apiGroups of DeploymentdaemonSetstatefulSetapps,而不是core。因此,对于apiGroup的值,而不是"",放置"apps"。(表示core的空字符串)

第二,记住:resources总是在复数中定义"kind“。因此,对于resources值,您应该始终使用复数名称。例如,您不用deployment,而是使用deployments

所以,您的文件应该是这样的:

代码语言:javascript
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  namespace: default
  name: dev-sa
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: dev
  name: sa-role
rules:
- apiGroups: ["apps"]
  resources: ["deployments","statefulsets","daemonsets"]
  verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: sa-rolebinding
  namespace: dev
subjects:
- kind: ServiceAccount
  name: dev-sa
  namespace: default
roleRef:
  kind: Role
  name: sa-role
  apiGroup: rbac.authorization.k8s.io

对于apiGroups的值,一定要检查医生们

我建议您在Kubernetes中阅读关于用户和权限的这篇文章

票数 0
EN

Stack Overflow用户

发布于 2022-09-20 09:35:02

在角色中,在api组上使用*,并在资源名上添加s

代码语言:javascript
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  namespace: default
  name: dev-sa
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: dev
  name: sa-role
rules:
- apiGroups: ["*"]
  resources: ["deployments", "statefulsets", "daemonsets"]
  verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: sa-rolebinding
  namespace: dev
subjects:
- kind: ServiceAccount
  name: dev-sa
  namespace: default
roleRef:
  kind: Role
  name: sa-role
  apiGroup: rbac.authorization.k8s.io
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73783802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档