Листинги изнутри стручка Запрещено - PullRequest
0 голосов
/ 23 октября 2018

Я новичок в kubernetes.Я пытаюсь перечислить все модули в пространстве имен изнутри модуля / контейнера через клиент javascript.

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);
    });

Ошибка ответа при просмотре журналов моего модуля:

{ 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 } } 

Я считаю, что мне нужно создать нового пользователя или добавить некоторые разрешения для роли, но я неконечно где и как.Спасибо

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Как @ Роберт Панцер , предложенный в Доступ к Kubernetes API без kubectl , вы можете создать роль и привязку к роли для включения списка модулей с:

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
0 голосов
/ 23 октября 2018

Относительно ошибки:

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

токен учетной записи службы по умолчанию хранится в модуле по адресу:

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

, но учетная запись службы по умолчанию не имеет доступа к кластеруресурсы, подобные тому, который вы пытаетесь сделать, поэтому вам нужно либо создать новую учетную запись службы, роль и привязку роли, а затем запустить модуль с этой учетной записью службы или связать учетную запись службы по умолчанию с ролью с необходимыми разрешениями.

Kuberentes RBAC подробности

Настройка учетных записей служб для модулей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...