Kubernetes:使用什么 ClusterRole 向具有“v1”的 api 资源授予权限?

问题描述 投票:0回答:1

我正在创建一个角色,为具有

"v1" as apiversion.

的资源提供所有权限

我已经创建了以下角色,但是当我将此角色与用户绑定时,该用户仍然没有运行权限

kubectl get no

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  name: my-role
rules:
- apiGroups:
  - "v1"
  resources:
  - "*"
  verbs:
  - "*"

请告诉我

apiGroups
的正确值是多少?

docker kubernetes containers kubernetes-helm amazon-eks
1个回答
0
投票

根据官方文档,从Kubernetes 1.8开始,可以使用

rbac.authorization.k8s.io/v1
版本,1.22之后
rbac.authorization.k8s.io/v1beta1
版本将不再可用。

如果您使用 Helm 图表组织项目服务,您可以考虑添加以下模板条件语句:

测试/模板/_helpers.tpl

{{/*
Return the appropriate apiVersion for rbac.
*/}}
{{- define "test.rbac.apiVersion" -}}
{{- if semverCompare "<1.8" .Capabilities.KubeVersion.GitVersion -}}
{{- print "rbac.authorization.k8s.io/v1beta1" -}}
{{- else -}}
{{- print "rbac.authorization.k8s.io/v1" -}}
{{- end -}}
{{- end -}}

测试/模板/rbac.yaml

apiVersion: {{ template "test.rbac.apiVersion" . }}
kind: ClusterRole
metadata:
  creationTimestamp: null
  name: my-role
rules:
- apiGroups:
  - "v1"
  resources:
  - "*"
  verbs:
  - "*"
© www.soinside.com 2019 - 2024. All rights reserved.