Как включить или исключить указанные c пространства имен в роли кластера kubernetes - PullRequest
0 голосов
/ 01 апреля 2020

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

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

apiVersion: v1
kind: ServiceAccount
metadata:
  name: fluent-bit
  namespace: logging

Моя роль кластера выглядит так /var/log/containers/*.log, который в настоящее время содержит файлы журналов из контейнеров, работающих во всех пространствах имен. Есть ли способ, которым я мог бы ограничить этот набор демонов просто собирать журналы из нужных мне пространств имен?

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Вот что мы имеем в документации k8s ( ссылка ).

Роль всегда устанавливает разрешения в определенном пространстве имен; когда вы создаете роль, вы должны указать пространство имен, к которому она принадлежит.

ClusterRole, напротив, является ресурсом без пространства имен. Ресурсы имеют разные имена (Role и ClusterRole), потому что объект Kubernetes всегда должен быть либо пространством имен, либо не пространством имен; это не может быть одновременно.

Итак, в вашем случае вам нужно использовать Role и RoleBinding вместо ClusterRole и ClusterRoleBinding .

0 голосов
/ 01 апреля 2020

Вам нужно будет настроить свою битовую конфигурацию так, чтобы только читать файлы журнала, которые вы хотите. Или вы можете использовать правила маршрутизации, если хотите. Это не относится к API Kubernetes, Bit считывает логи непосредственно с диска через монтирование bind.

...