kubectl使用报错:Error from server (Forbidden)
故障现象
使用kubectl在创建或查询Kubernetes资源时,显示如下内容。
# kubectl get deploy Error from server (Forbidden): deployments.apps is forbidden: User "0c97ac3cb280f4d91fa7c0096739e1f8" cannot list resource "deployments" in API group "apps" in the namespace "default"
问题根因
用户没有操作该Kubernetes资源的权限。
解决方法
给该用户授权Kubernetes权限,具体方法如下。
- 登录CCE控制台,在左侧导航栏中选择“权限管理”。
- 在右边下拉列表中选择要添加权限的集群。
- 在右上角单击“添加权限”,进入添加权限页面。
- 在添加权限页面,确认集群名称,选择该集群下要授权使用的命名空间,例如选择“全部命名空间”,选择要授权的用户或用户组,再选择具体权限。
对于没有IAM权限的用户,给其他用户和用户组配置权限时,无法选择用户和用户组,此时支持填写用户ID或用户组ID进行配置。
图1 配置命名空间权限
其中自定义权限可以根据需要自定义,选择自定义权限后,在自定义权限一行右侧单击新建自定义权限,在弹出的窗口中填写名称并选择规则。创建完成后,在添加权限的自定义权限下拉框中可以选择。
自定义权限分为ClusterRole或Role两类,ClusterRole或Role均包含一组代表相关权限的规则,详情请参见使用RBAC鉴权。
- ClusterRole:ClusterRole是一个集群级别的资源,可设置集群的访问权限。
- Role:Role用于在某个命名空间内设置访问权限。当创建Role时,必须指定该Role所属的命名空间。
图2 自定义权限
- 单击“确定”。