无法从kuberates操作符访问资源



当我试图在testns2名称空间中从测试操作符代码(这是在阶段级别部署的kuberates操作符)中获取由assocOperator(在阶段级别部署的kuberates操作符)创建的资源(test-associations)时,我正在获得以下错误。有人可以帮助我在这里错过了什么?

错误:

io.fabric8.kubernetes.client。KubernetesClientException:失败执行:GET at:https://172.17.0.1/apis/tc.secassoc/v1/namespaces/testns2/associations/test-associations。消息:禁止!配置的服务帐户没有访问权限。服务帐户可能已被撤销。associations.tc.secassoc"test-associations"禁止:用户"系统:serviceaccount: test-operator: test-operator"不能得到资源"associations"在API组中"在名称空间"testns2">

您需要为您的操作员的服务帐户(即test-operator)添加适当的RBAC权限。

如果您已经为操作员的业务帐户创建了ClusterRoleClusterRoleBinding。确保以下规则存在于ClusterRolerules部分:

rules:
- apiGroups: ["tc.secassoc"]
resources: ["associations"]
verbs: ["get", "watch", "list"]

如果您没有创建任何RBAC资源,请创建以下内容:

  1. 创建集群角色:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: associations-reader
rules:
- apiGroups: ["tc.secassoc"]
resources: ["associations"]
verbs: ["get", "watch", "list"]
$ kubectl apply -f cluster-role.yaml
  1. 创建集群角色绑定:
$ kubectl create clusterrolebinding associations-reader-pod 
--clusterrole=associations-reader  
--serviceaccount=test-operator:test-operator

最新更新