在pod中扩展kubernetes部署-权限被拒绝



我正在尝试放大&从吊舱内向下部署
为此,我创建了一个服务帐户,使用以下rbac集群角色绑定:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: backups-scripts
name: backups-roles
rules:
- apiGroups: [""]
resources:
- pods
verbs:
- get
- list
- delete
- watch
- apiGroups: ["apps","extensions"]
resources:
- deployments
- replicasets
- statefulsets
verbs:
- get
- list
- patch
- update
- watch
- scale

当用auth can-i测试时,kube说一切都好:

$ kubectl auth can-i delete deployment  --namespace vm-catalogue --as system:serviceaccount:backups-scripts:backups-sa
no - no RBAC policy matched
$ kubectl auth can-i list deployment  --namespace vm-catalogue --as system:serviceaccount:backups-scripts:backups-sa
yes
$ kubectl auth can-i scale deployment  --namespace vm-catalogue --as system:serviceaccount:backups-scripts:backups-sa
yes
$ kubectl auth can-i update deployment  --namespace vm-catalogue --as system:serviceaccount:backups-scripts:backups-sa
yes
$ kubectl auth can-i patch deployment  --namespace vm-catalogue --as system:serviceaccount:backups-scripts:backups-sa
yes

但现在,当在pod中执行kubectl命令时,我会得到以下错误:

$ kubectl scale --replicas="$replicas" deployment -n "vm-catalogue" "mysql"
Error from server (Forbidden): deployments.extensions "mysql" is forbidden: User "system:serviceaccount:backups-scripts:backups-sa" cannot get resource "deployments/scale" in API group "extensions" in the namespace "vm-catalogue"

我知道";列表";以及";得到";动词之所以有效,是因为我在脚本中提取这些信息(这一部分有效(。

所以。。我不明白,我错过了什么?

我认为您粘贴的错误消息很好地表明了这一点:

$ kubectl scale --replicas="$replicas" deployment -n "vm-catalogue" "mysql"
Error from server (Forbidden): deployments.extensions "mysql" is forbidden: User "system:serviceaccount:backups-scripts:backups-sa" cannot get resource "deployments/scale" in API group "extensions" in the namespace "vm-catalogue"

无法获取资源"部署/规模">

根据Kubernetes rbac文档#参考资源

";要在RBAC角色中表示这一点,请使用斜线(/(来分隔资源和子资源">

例如:

- deployments/scale
- deployments/status
- pods/log

最新更新