Kubernetesユーザリスト/ GETの名前空間を許可します

MrPsycho:

私は、次のユーザーのマニフェストを持っていると私は、myappのユーザは、クラスタ内のすべての名前空間の一覧を取得できるようにしたいと思います。私が見てきた何から私はClusterRoleを作成することになってんだけど、私は本当にそれで十分な詳細を見つけることができません。すべてapiGroupsと対応するリソースと動詞のリストはどこにありますか?

apiVersion: v1
kind: ServiceAccount
metadata:
  name: myapp-user
  namespace: myapp

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: myapp-user-role
  namespace: myapp
rules:
- apiGroups: ["", "extensions", "apps"]
  resources: ["*"]
  verbs: ["*"]
- apiGroups: ["batch"]
  resources:
  - jobs
  - cronjobs
  verbs: ["*"]
- apiGroups: ["networking.k8s.io"]
  resources:
  - ingress
  verbs: ["*"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: myapp-user
  namespace: myapp
subjects:
- kind: ServiceAccount
  name: myapp-suer
  namespace: myapp
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: myapp-user-role

I role.rulesにこれを追加することが役立つかもしれないが、残念ながらないが

- apiGroups: [""]
  resources: ["namespaces"]
  verbs: ["GET"]
Arghyaサドゥー:

あなたは経由でAPIのリソースを取得することができます

kubectl api-resources

NAME                              SHORTNAMES   APIGROUP                       NAMESPACED   KIND
bindings                                                                      true         Binding
componentstatuses                 cs                                          false        ComponentStatus
configmaps                        cm                                          true         ConfigMap
endpoints                         ep                                          true         Endpoints
events                            ev                                          true         Event
limitranges                       limits                                      true         LimitRange
namespaces                        ns                                          false        Namespace
nodes                             no                                          false        Node
persistentvolumeclaims            pvc                                         true         PersistentVolumeClaim
persistentvolumes                 pv                                          false        PersistentVolume

そしてclusterroleを作成し、コマンドの下clusterolebindingのために働く必要があります。

kubectl create clusterrole cr --verb=get,list --resource=namespaces

kubectl create clusterrolebinding crb --clusterrole=cr --serviceaccount=default:default

そして、それをテストします

kubectl auth can-i get ns --as=system:serviceaccount:default:default
kubectl auth can-i list ns --as=system:serviceaccount:default:default

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=400051&siteId=1