簡體   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