Модуль не включен по умолчанию в каком-либо наборе модулей.

Как явно включить или отключить модуль…

Чтобы явно включить или выключить модуль loki, установите spec.enabled в true или false в ModuleConfig/loki (создайте, при необходимости), или воспользуйтесь командой deckhouse-controller module в поде d8-system/deckhouse.

Пример включения модуля:

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: loki
    spec:
      enabled: true
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module enable loki
    

Пример выключения модуля:

  • с помощью ресурса ModuleConfig:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: loki
    spec:
      enabled: false
    
  • с помощью команды deckhouse-controller (требуется kubectl, настроенный на работу с кластером):

    kubectl -ti -n d8-system exec svc/deckhouse-leader -c deckhouse -- deckhouse-controller module disable loki
    

Чтобы настроить модуль, используйте custom resource ModuleConfig с именем loki (подробнее о настройке Deckhouse…).

Пример ресурса ModuleConfig/loki для настройки модуля:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: loki
spec:
  version: 1
  enabled: true
  settings: # <-- Параметры модуля из раздела "Параметры" ниже.

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.diskSizeGigabytes
      целочисленный

      Размер диска для хранения логов или размер PVC при указании параметра storageClass.

      Вы должны самостоятельно указать необходимый размер диска для хранения логов за период, указанный в параметре retentionPeriodHours. Loki не может удалять старые данные автоматически при заполнении диска.

      Занятый объем автоматически мониторится с помощью модуля extended-monitoring

      ОСТОРОЖНО! Если диск с данными Loki переполнится, приложение перестанет работать. Вам следует выбрать необходимый баланс между значениями параметров retentionPeriodHours и diskSizeGigabytes.

      По умолчанию: 2

    • settings.lokiConfig
      объект

      Опции Loki, доступные для изменения.

      Подробнее о настройки Loki читайте в документации Loki.

      Внимание! Ошибочные настройки могут привести к неработоспособности Loki.

      • settings.lokiConfig.grpcServerMaxConcurrentStreams
        целочисленный

        Ограничение на количество одновременных потоков для вызовов gRPC.

        По умолчанию: 100

      • settings.lokiConfig.grpcServerMaxRecvMsgSize
        целочисленный

        Ограничение на размер сообщения gRPC, которое может получить сервер, в байтах.

        По умолчанию: 104857600

      • settings.lokiConfig.grpcServerMaxSendMsgSize
        целочисленный

        Ограничение на размер сообщения gRPC, которое может отправить сервер, в байтах.

        По умолчанию: 4194304

      • settings.lokiConfig.ingestionBurstSizeMB
        число

        Общий лимит всплеска объема принимаемых логов. Например, максимальный размер запроса на запись.

        По умолчанию: 6

      • settings.lokiConfig.ingestionRateMB
        число

        Общий лимит скорости приема логов в мегабайтах в секунду.

        По умолчанию: 4

      • settings.lokiConfig.maxChunksPerQuery
        целочисленный

        Максимальное количество файлов, которые могут быть скачаны в рамках одного запроса.

        По умолчанию: 2000000

      • settings.lokiConfig.maxEntriesLimitPerQuery
        целочисленный

        Максимальное количество записей, возвращаемых для одного запроса.

        По умолчанию: 5000

      • settings.lokiConfig.maxStreamsPerUser
        целочисленный

        Максимальное общее количество потоков логов для экземпляра Loki.

        Каждый поток логов имеет уникальный набор меток. Количество потоков равно количеству уникальных наборов меток. Например: {job="my-app", instance="kube-node-1", namespace="production", pod_name="backend-79dbf6fcb7-v5gs7", app="backend"}.

        Значение 0 отключает ограничение.

        По умолчанию: 0

      • settings.lokiConfig.perStreamRateLimit

        Максимальная скорость в байтах в секунду для одного потока. Может быть как числом, так и строкой с единицей измерения (KB, MB, GB).

        По умолчанию: 3MB

      • settings.lokiConfig.perStreamRateLimitBurst

        Максимальный размер всплеска объема логов для одного потока. Может быть как числом, так и строкой с единицей измерения (KB, MB, GB).

        По умолчанию: 15MB

    • settings.nodeSelector
      объект

      Структура, аналогичная spec.nodeSelector пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

    • settings.resourcesManagement

      Настройки запросов (requests) и ограничений (limits) использования CPU и памяти подами Loki.

      Примеры:

      resourcesManagement:
        mode: VPA
        vpa:
          mode: Auto
          cpu:
            min: 50m
            max: 2
            limitRatio: 1.5
          memory:
            min: 256Mi
            max: 2Gi
            limitRatio: 1.5
      
      resourcesManagement:
        mode: Static
        static:
          requests:
            cpu: 55m
            memory: 256Mi
          limits:
            cpu: 2
            memory: 2Gi
      
      • settings.resourcesManagement.mode
        строка

        Режим управления ресурсами:

        • Static — классический, с помощью указания запросов/ограничений (requests/limits). Настраивается в секции параметров static;
        • VPA — с помощью VPA. Настраивается в секции параметров vpa.

        По умолчанию: "VPA"

        Допустимые значения: VPA, Static

      • settings.resourcesManagement.static
        объект

        Настройка управления ресурсами в режиме Static.

        • settings.resourcesManagement.static.limits
          объект

          Настройка ограничений (limits) использования CPU и памяти.

          • settings.resourcesManagement.static.limits.cpu

            Настройка ограничений использования CPU (CPU limits).

          • settings.resourcesManagement.static.limits.memory

            Настройка ограничений использования памяти (memory limits).

        • settings.resourcesManagement.static.requests
          объект

          Настройки запросов ресурсов (requests) подов.

          • settings.resourcesManagement.static.requests.cpu

            Настройка запроса CPU (CPU requests).

          • settings.resourcesManagement.static.requests.memory

            Настройка запроса памяти (memory requests).

      • settings.resourcesManagement.vpa
        объект

        Настройка управления ресурсами в режиме VPA.

        • settings.resourcesManagement.vpa.cpu
          объект

          Настройки VPA при работе с CPU.

          • settings.resourcesManagement.vpa.cpu.limitRatio
            число

            Коэффициент расчета ограничений использования CPU относительно запросов (limits/requests).

            Применяется для расчета начальных ограничений использования CPU для пода (CPU limits).

            Если параметр указан, то VPA, при пересчете запросов CPU (CPU requests) будет пересчитывать ограничения использования CPU (CPU limits) сохраняя указанное соотношение ограничений к запросам (limits/requests).

          • settings.resourcesManagement.vpa.cpu.max

            Максимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 2

          • settings.resourcesManagement.vpa.cpu.min

            Минимальное значение, которое может выставить VPA для запроса CPU (CPU requests).

            По умолчанию: 50m

        • settings.resourcesManagement.vpa.memory
          объект

          Настройки VPA при работе с памятью.

          • settings.resourcesManagement.vpa.memory.limitRatio
            число

            Коэффициент расчета ограничений использования памяти относительно запросов (limits/requests).

            Применяется для расчета начальных ограничений использования памяти для пода (memory limits).

            Если параметр указан, то VPA, при пересчете запросов памяти (memory requests) будет пересчитывать ограничения использования памяти (memory limits) сохраняя указанное соотношение ограничений к запросам (limits/requests).

          • settings.resourcesManagement.vpa.memory.max

            Максимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 2Gi

          • settings.resourcesManagement.vpa.memory.min

            Минимальное значение, которое может выставить VPA для запроса к памяти (memory requests).

            По умолчанию: 256Mi

        • settings.resourcesManagement.vpa.mode
          строка

          Режим работы VPA.

          По умолчанию: "Auto"

          Допустимые значения: Initial, Auto

    • settings.retentionPeriodHours
      целочисленный

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

      По умолчанию: 168

    • settings.storageClass

      Имя storageClass’а, который использовать.

      Если не указано, используется StorageClass существующей PVC Loki, а если PVC пока нет, используется или глобальный StorageClass, или global.discovery.defaultStorageClass, а если и их нет, данные сохраняются в emptyDir.

      global.discovery.defaultStorageClass применяется только при включении модуля, смена StorageClass по умолчанию в кластере не приведет к перезаказу диска.

      false — принудительное использование emptyDir. Удалить старый PVC и рестартануть под придется вручную.

      ОСТОРОЖНО! При указании этой опции в значение, отличное от текущего (из существующей PVC), диск Loki будет перезаказан, а все данные удалены.

      Примеры:

      storageClass: false
      
      storageClass: default
      
    • settings.storeSystemLogs
      булевый

      Сохранять логи из пространства имен d8-* в loki.

      Для работы необходим включенный модуль log-shipper.

      По умолчанию: true

    • settings.tolerations
      массив объектов

      Структура, аналогичная spec.tolerations пода Kubernetes.

      Если значение не указано или указано false, будет использоваться автоматика.

      • settings.tolerations.effect
        строка
      • settings.tolerations.key
        строка
      • settings.tolerations.operator
        строка
      • settings.tolerations.tolerationSeconds
        целочисленный
      • settings.tolerations.value
        строка

Пример конфигурации

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: loki
spec:
  settings:
    storageClass: ceph-csi-rbd
    diskSizeGigabytes: 10
    retentionPeriodHours: 48
  enabled: true
  version: 1