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

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

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

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

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

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

    kubectl -ti -n d8-system exec deploy/deckhouse -c deckhouse -- deckhouse-controller module enable cni-cilium
    

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

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

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

    kubectl -ti -n d8-system exec deploy/deckhouse -c deckhouse -- deckhouse-controller module disable cni-cilium
    

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

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

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

Параметры

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

  • bpfLBModeстрока

    Режим работы балансировщика eBPF:

    • SNAT - траффик от клиента до пода (и обратно) проходит через NAT, соответственно теряется адрес отправителя.
    • DSR - траффик от клиента до пода проходит с сохранением адреса отправителя, а обратно - согласно правилам роутинга (минуя балансировщик). Этот режим экономит сетевой траффик, уменьшает задержки, но работает только для TCP траффика.
    • Hybrid - TCP траффик обрабатывается в режиме DSR, а UDP - в режиме SNAT.

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

    Допустимые значения: SNAT, Hybrid, DSR

  • createNodeRoutesбулевый

    Включает создание маршрутов к подам на других узлах.

    Все узлы должны находиться в одной сети L2.

  • debugLoggingбулевый

    Включает отладочный уровень логирования для компонентов Cilium.

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

  • labelsRegexмассив строк

    Cilium создает идентификаторы безопасности основываясь на лейблах сущностей k8s, чем больше лейблов участвует в этом процессе - тем более детализированно можно настроить доступы. Но в кластерах больших объёмов излишняя детализация может создать большую нагрузку, и при помощи опции labelsRegex можно более явно указать - какие лейблы будут использоваться для политик безопасности, а какими следут пренебречь. Подробнее об уменьшении количества создаваемых identity можно прочитать в документации

    Каждый лейбл должен задаваться RegExp-выражением в формате YAML quoted string с экранированием спецсимволов.

    Пример:

    labelsRegex:
    - k8s:!app\.kubernetes\.io
    - k8s:io\.cilium\.k8s\.policy
    
  • policyAuditModeбулевый

    Отключает влияние сетевых политик на трафик. Сетевые запросы, попавшие под запрет политик, просто логируются.

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

  • resourcesManagement

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

    Примеры:

    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).

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

        • resourcesManagement.vpa.cpu.min

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

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

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

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

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

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

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

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

        • resourcesManagement.vpa.memory.max

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

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

        • resourcesManagement.vpa.memory.min

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

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

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

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

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

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

  • svcSourceRangeCheckбулевый

    Для сервисов с типом loadBalancer включает проверку source IP на его соответствие loadBalancer.sourceRanges. Проверка не производится, если доступ производится изнутри кластера или параметр sourceRanges пуст/не указан. Некоторые облачные провайдеры в своих реализациях loadBalancer поддерживают фильтрацию входящего траффика на основе параметра sourceRanges, в таком случае документация по cilium рекомендует отключать проверку svcSourceRangeCheck.

    Не включайте, если перед сервисами есть другой балансировщик или какие-либо виды SNAT.

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

  • tunnelModeстрока

    Режим работы туннеля.

    Внимание! После изменения параметра необходимо перезагрузить все узлы, иначе могут быть проблемы с доступностью подов.

    Внимание! Режим VXLAN не совместим со следующими режимами bpfLBMode: Hybrid, DSR. Если tunnelMode настроен на VXLAN, то bpfLBMode будет переопределён на SNAT автоматически.

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

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