Находится в процессе активного развития. Функциональность может существенно измениться.

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

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

Чтобы явно включить или выключить модуль 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 deploy/deckhouse -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 deploy/deckhouse -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

  • diskSizeGigabytesцелочисленный

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

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

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

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

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

  • nodeSelectorобъект

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

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

  • 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
    
    • resourcesManagement.modeстрока

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

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

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

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

    • resourcesManagement.staticобъект

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

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

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

        • resourcesManagement.static.limits.cpu

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

        • resourcesManagement.static.limits.memory

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

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

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

        • resourcesManagement.static.requests.cpu

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

        • resourcesManagement.static.requests.memory

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

    • resourcesManagement.vpaобъект

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

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

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

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

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

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

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

        • resourcesManagement.vpa.cpu.max

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

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

        • resourcesManagement.vpa.cpu.min

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

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

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

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

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

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

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

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

        • resourcesManagement.vpa.memory.max

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

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

        • resourcesManagement.vpa.memory.min

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

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

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

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

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

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

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

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

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

  • storageClass

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

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

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

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

    Примеры:

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

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

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

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

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

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

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

    • tolerations.effectстрока
    • tolerations.keyстрока
    • tolerations.operatorстрока
    • tolerations.tolerationSecondsцелочисленный
    • 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