Kubernetes Multitenanacy - мы - корпоративный клиент azure, желающий получить журналы, указанные c, в пространства имен AKS в Log Analytics - PullRequest
0 голосов
/ 01 марта 2020

Вопрос о мультитаназности по Kubernetes (AKS) - Мы azure корпоративный клиент, который хочет извлечь журналы, указывающие c в пространства имен AKS, в Log Analytics, пожалуйста, предложите лучший метод для достижения этой цели

Ответы [ 2 ]

0 голосов
/ 16 марта 2020

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

Я могу представить два способа разделения журналов на основе имени пространства имен:

  1. Разработать интерфейсную страницу (или адаптировать одно из существующих решений ) для каждого арендатора и заполните его данными, возвращаемыми предопределенным Azure Запросом журнала мониторинга , который фильтрует сообщения на основе значения пространства имен. Таким образом, каждый арендатор будет получать только сообщения журнала, относящиеся к его собственному пространству имен.

  2. Реализация независимого от Azure развертывания служб EFK для каждого пространства имен и настройка потоковой битовой коляски отправлять логи в агрегатор логов в том же пространстве имен. Таким образом, каждый арендатор может контролировать, какой тип данных и в каком формате он хочет видеть, настраивая свои собственные панели управления Kibana.

Prometheus не предназначен для хранения журналов , но метрики.

0 голосов
/ 02 марта 2020

Важным аспектом мультитенантности является наличие мультитенантности на уровне выше кластера kubernetes, так что ваши DevOps и разработчики могут иметь один или несколько кластеров, принадлежащих разным пользователям или группам пользователей в вашей организации. Эта концепция не встроена в сам Kubernetes. Платформа 9 поддерживает это, добавляя слой мультитенантности поверх Kubernetes через концепцию «регионов» и «арендаторов». Регион в Platform9 отображается в географическом местоположении. Арендатор может принадлежать нескольким регионам. Группе пользователей может быть предоставлен доступ к одному или нескольким арендаторам. Оказавшись в арендаторе, группа пользователей может создать один или несколько кластеров, которые будут изолированы и доступны только пользователям в этом арендаторе. Это обеспечивает разделение интересов между различными командами и отделами.

Я советую вам создать блок-трафик c между указанными c пространствами имен. Многие развертывания Kubernetes позволяют осуществлять сетевое взаимодействие между пространствами имен. Если вам требуется поддержка нескольких арендаторов, вам нужно изменить это, чтобы добавить изоляцию к каждому пространству имен.

Это можно сделать с помощью сетевых политик. Вот пример файла сетевой политики, который блокирует трафик c из внешних пространств имен:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: block-namespace-traffic-example
spec:
  podSelector:
    matchLabels:
  ingress:
  - from:
    - podSelector: {}

После создания файла примените следующую команду:

$ kubectl apply -f example-network-policy.yaml -n=your-namespace

Для AKS Log Analytics может быть вашим журналом агрегатора выбора. Вам понадобится способ экспортировать журналы контейнеров в Log Analytics. Вы можете развернуть решение Azure Monitor , которое сделает это за вас, однако, если вы работаете в своем собственном кластере или даже используете другого облачного провайдера и по-прежнему хотите использовать Log Analytics, то это не совсем так. так просто. Вот почему все больше и больше используют Fluent Bit .

Ознакомьтесь с полезными статьями: multi-tenancy-kubernetes , network-policy .

Пожалуйста, дайте мне знать, если это поможет.

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