[英]Grant Kubernetes service account privileges to get pods from all namespaces
[英]How to create a service account to get a list of pods from inside a Kubernetes cluster?
我创建了一个服务帐户来获取 minikube 中的 pod 列表。
apiVersion: v1
kind: ServiceAccount
metadata:
name: demo-sa
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: Role
metadata:
name: list-pods
namespace: default
rules:
- apiGroups:
- ''
resources:
- pods
verbs:
- list
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: list-pods_demo-sa
namespace: default
roleRef:
kind: Role
name: list-pods
apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
name: demo-sa
namespace: default
问题是,如果我使用服务帐户获取 pod 列表,我会收到一条错误消息。 kubectl auth can-i list pod --as demo-sa
总是以no
回答。
您不能使用:
kubectl auth can-i list pod --as <something>
模拟 ServiceAccounts。 您只能模拟用户--as
和模拟组--as-group
一种解决方法是使用服务帐户令牌。
kubectl get secret demo-sa-token-7fx44 -o=jsonpath='{.data.token}' | base64 -d
您可以在此处使用 output 和任何kubectl
请求。 但是,我检查了kubectl auth can-i list pod
并且我认为auth
不适用于令牌(你总是得到一个是的)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.