Forbidden!Configured service account doesn't have access. Service account may have been revoked. User "system:serviceaccount:default:default" cannot get services in the namespace "mycomp-services-process"
对于上述问题,我创建了"mycomp-service-process"命名空间并检查了问题.
但它再次显示这样的消息:
Message: Forbidden!Configured service account doesn't have access. Service account may have been revoked. User "system:serviceaccount:mycomp-services-process:default" cannot get services in the namespace "mycomp-services-process"
Vis*_*ani 26
当然,创建命名空间不会解决问题,因为这根本不是问题.
在第一个错误中,问题是serviceaccount
默认名称空间中的默认值,can not get services
因为它无法访问list/get服务.因此,您需要做的是使用该角色为该用户分配角色clusterrolebinding
.
遵循一组最低权限,您可以先创建一个可以访问列表服务的角色:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: service-reader
rules:
- apiGroups: [""] # "" indicates the core API group
resources: ["services"]
verbs: ["get", "watch", "list"]
Run Code Online (Sandbox Code Playgroud)
上面代码片段的作用是创建一个可以列出,获取和观看服务的集群.(您必须创建一个yaml文件并应用上述规范)
现在我们可以使用此clusterrole创建clusterrolebinding:
kubectl create clusterrolebinding service-reader-pod \
--clusterrole=service-reader \
--serviceaccount=default:default
Run Code Online (Sandbox Code Playgroud)
在上面的命令中,service-reader-pod
是clusterrolebinding的名称,它将服务读取器clusterrole分配给默认命名空间中的默认serviceaccount.您遇到的第二个错误可以遵循类似的步骤.
在这种情况下,我创建clusterrole
和clusterrolebinding
但您可能希望创建一个role
和rolebinding
代替.您可以在此处详细查看文档
您应该将服务帐户system:serviceaccount:default:default
(这是绑定到Pod的默认帐户)与role绑定cluster-admin
,只需创建一个Yaml(名为fabric8-rbac.yaml
),其内容如下:
# NOTE: The service account `default:default` already exists in k8s cluster.
# You can create a new account following like this:
#---
#apiVersion: v1
#kind: ServiceAccount
#metadata:
# name: <new-account-name>
# namespace: <namespace>
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: fabric8-rbac
subjects:
- kind: ServiceAccount
# Reference to upper's `metadata.name`
name: default
# Reference to upper's `metadata.namespace`
namespace: default
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
Run Code Online (Sandbox Code Playgroud)
然后,通过运行来应用它kubectl apply -f fabric8-rbac.yaml
。
如果要解除绑定,请运行kubectl delete -f fabric8-rbac.yaml
。
归档时间: |
|
查看次数: |
14377 次 |
最近记录: |