繁体   English   中英

如何创建服务帐户以从 Kubernetes 集群中获取 pod 列表?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM