如何创建一个服务帐户以从Kubernetes集群内部获取Pod列表?

时间:2020-07-14 22:16:34

标签: kubernetes

我创建了一个服务帐户来获取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来回答。

1 个答案:

答案 0 :(得分:2)

您不能使用:

text-translate-anchor

模仿ServiceAccounts。您只能模拟用户kubectl auth can-i list pod --as <something> 和模拟组--as

一种解决方法是使用service account token

--as-group

您可以在此处使用输出和任何kubectl get secret demo-sa-token-7fx44 -o=jsonpath='{.data.token}' | base64 -d 请求。但是,我用kubectl进行了检查,但我认为kubectl auth can-i list pod不能与令牌一起使用(您总会得到肯定)