【问题标题】:Listing pods from inside a pod Forbidden从 pod 内列出 pod 禁止
【发布时间】:2019-03-27 20:27:51
【问题描述】:

我是 Kubernetes 新手。我正在尝试通过 javascript 客户端从 pod/容器内部列出命名空间中的所有 pod。

import k8s = require('@kubernetes/client-node');

const kc = new k8s.KubeConfig();
kc.loadFromDefault();

const k8sApi = kc.makeApiClient(k8s.Core_v1Api);

k8sApi.listNamespacedPod('development')
    .then((res) => {
        console.log(res.body);
    }).catch((err) => {
        console.log(err);
    });

查看我的 pod 日志时的响应错误:

{ kind: 'Status',
 apiVersion: 'v1',
 metadata: {},
 status: 'Failure',
 message:
  'pods is forbidden: User "system:serviceaccount:default:default" cannot list pods in the namespace "development"',
 reason: 'Forbidden',
 details: { kind: 'pods' },
 code: 403 } } 

我认为我需要创建一个新用户或向角色添加一些权限,但我不确定在哪里以及如何。谢谢

【问题讨论】:

  • 您可以尝试从stackoverflow.com/questions/47813698/…应用角色和角色绑定
  • 它工作了:)。如果您希望我将其标记为已解决,您可能希望将其放在答案中。
  • 很好,已发布

标签: kubernetes minikube


【解决方案1】:

正如Access Kubernetes API without kubectl 中的@Robert Panzer 建议的那样,您可以创建一个角色和一个角色绑定来启用 pod 列表:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pod-reader
subjects:
- kind: ServiceAccount
  name: default
  namespace: default
roleRef:
  kind: ClusterRole
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

【讨论】:

    【解决方案2】:

    关于错误:

    'pods is forbidden: User "system:serviceaccount:default:default" cannot list pods in the namespace "development"',
    

    默认服务帐户令牌存储在 pod 中的位置:

    root@nginx-64f497f8fd-jtvgf:/# ls /var/run/secrets/kubernetes.io/serviceaccount/ 
    ca.crt  namespace  token
    

    但默认服务帐户无法像您尝试那样访问集群资源,因此您需要创建一个新的服务帐户、角色和角色绑定,然后使用该服务帐户启动 pod ,或将默认服务帐户绑定到具有所需权限的角色。

    Kuberentes RBAC details

    Configure Service Accounts for Pods

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 2018-11-16
      相关资源
      最近更新 更多