Node-feature-discovery#

Node-feature-discovery (NFD) – инструмент, предназначенный для обнаружения аппаратных и системных характеристик узлов кластера. Он автоматически определяет особенности оборудования (например, наличие GPU, поддержку конкретных инструкций CPU, тип NIC) и конфигурации системы, а затем добавляет эту информацию в виде меток на узлы DropApp.

Основные задачи и возможности
  • Автоматические метки узлов: на основе обнаруженных признаков (например, feature.node.kubernetes.io/cpu-cpuid.AESNI=true) NFD расставляет метки, которые можно использовать в nodeSelector или affinity для целевого размещения pod.

  • Поддержка пользовательских правил обнаружения: позволяет определять собственные правила через CRD (NodeFeatureRule, NodeFeatureGroup), чтобы выявлять особенности среды.

  • Работа с различными типами особенностей:

    Может обнаруживать:

    • характеристики CPU (SSE, AVX, AMD SEV и др.);

    • наличие GPU, FPGA;

    • сетевые возможности (SR-IOV, RDMA);

    • операционную систему и ядро.

  • Интеграция с workload: упрощает запуск приложений, требующих определенного оборудования («железа»), например, HPC, ML, телеком, за счет точного соответствия между требованиями pod и возможностями узла.

  • Гибкая архитектура: состоит из master- и worker-компонентов, легко масштабируется и работает в любом окружении — bare metal, виртуализация, облако.

Примечание

Node-feature-discovery устанавливается по умолчанию с компонентом Node-management.

Конфигурация values#

Параметры Node-feature-discovery можно переопределить через редактирование нужных значений в spec.values. Общее описание конфигурации values для инструментов приведено в разделе «Конфигурации инструментов дополнительных компонентов».

image – параметры контейнерного образа#

Параметр

Описание

Значение по умолчанию

image.repository

Полный путь к репозиторию образа Node-feature-discovery (NFD)

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-node-feature-discovery/node-feature-discovery'

image.pullPolicy

Политика загрузки образа.
Возможные значения: Always, IfNotPresent, Never

IfNotPresent

image.tag

Тег образа контейнера

v0.19.0

imagePullSecrets – Secret для загрузки образов#

Параметр

Описание

Значение по умолчанию

imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

nameOverride – переопределение имени чарта#

Параметр

Описание

Значение по умолчанию

nameOverride

Переопределение базового имени ресурсов чарта для генерации имен

""

fullnameOverride – полное переопределение имени чарта#

Параметр

Описание

Значение по умолчанию

fullnameOverride

Полное переопределение имени для всех создаваемых ресурсов чарта

""

namespaceOverride – переопределение пространства имен#

Параметр

Описание

Значение по умолчанию

namespaceOverride

Переопределение пространства имен вместо значения по умолчанию

""

featureGates – включение или отключение функциональных возможностей#

Параметр

Описание

Значение по умолчанию

featureGates.NodeFeatureGroupAPI

Активация включения API NodeFeatureGroup

false

checksumValuesOnly – аннотация rollout по контрольной сумме значений конфигурации#

Параметр

Описание

Значение по умолчанию

checksumValuesOnly

Расчет контрольной суммы только значений конфигурации для аннотации rollout. При включении pod перезапускаются только при фактическом изменении значений конфигурации, а не при несвязанных изменениях шаблона

false

priorityClassName – имя класса приоритета pod#

Параметр

Описание

Значение по умолчанию

priorityClassName

Имя PriorityClass для pod

""

postDeleteCleanup – очистка ресурсов после удаления чарта#

Параметр

Описание

Значение по умолчанию

postDeleteCleanup

Включение очистки объектов, созданных чартом, после удаления

true

master – настройки компонента nfd-master#

Параметр

Описание

Значение по умолчанию

master.enable

Включение развертывания компонента nfd-master

true

master.extraArgs

Дополнительные аргументы командной строки для контейнера nfd-master

[]

master.extraEnvs

Дополнительные переменные окружения для контейнера nfd-master

[]

master.hostNetwork

Активация запуска контейнера в сетевом пространстве имен хоста

false

master.hostUsers

Запуск контейнера с идентификаторами пользователей хоста. При hostNetwork: true параметр hostUsers должен быть true

~

master.dnsPolicy

Политика разрешения DNS для pod.
Возможные значения: Default, ClusterFirst, ClusterFirstWithHostNet, None

ClusterFirstWithHostNet

master.config

YAML-конфигурация nfd-master, монтируемая как ConfigMap.
Пример конфигурации:

noPublish: false
extraLabelNs: ["added.ns.io","added.kubernets.io"]
denyLabelNs: ["denied.ns.io","denied.kubernetes.io"]
enableTaints: false
informerPageSize: 200
labelWhiteList: "foo"
resyncPeriod: "2h"
restrictions:
  disableLabels: true
  disableTaints: true
  disableExtendedResources: true
  disableAnnotations: true
  allowOverwrite: false
  denyNodeFeatureLabels: true
  nodeFeatureNamespaceSelector:
    matchLabels:
      kubernetes.io/metadata.name: "node-feature-discovery"
klog:
  logtostderr: true
  stderrthreshold: 2
  v: 0
leaderElection:
  leaseDuration: 15s
  renewDeadline: 10s
  retryPeriod: 2s

{}

master.port

Порт, на котором обслуживается HTTP для метрик и эндпоинтов healthz

8080

master.instance

Имя экземпляра nfd-master для разделения пространств имен аннотаций при нескольких параллельных развертываниях

~

master.resyncPeriod

Интервал периодической синхронизации меток признаков; значение Duration (например, 2h, 60s)

~

master.denyLabelNs

Список запрещенных пространств имен меток, которые nfd-master не публикует на узлах

[]

master.extraLabelNs

Дополнительные разрешенные пространства имен меток. Метки с этими префиксами разрешены, даже если запрещены параметром master.denyLabelNs

[]

master.enableTaints

Включение добавления taints на узлы; при true nfd-master может добавлять taints

false

master.nfdApiParallelism

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

~

master.deploymentAnnotations

Дополнительные аннотации для Deployment nfd-master

{}

master.replicaCount

Количество реплик pod инструмента

1

master.podSecurityContext

Параметры контекста безопасности pod

{}

master.initContainers

Список init-контейнеров, запускаемых перед основными

[]

master.securityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

master.securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

master.securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

master.securityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

master.serviceAccount.create

Автоматическое создание ServiceAccount для nfd-master

true

master.serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

master.serviceAccount.name

Имя ServiceAccount; при пустом значении и при create: true имя генерируется с помощью шаблона fullname

~

master.revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

~

master.rbac.create

Активация автоматического создания ресурсов RBAC

true

master.resources.limits.memory

Ограничение ресурсов памяти для контейнера

4Gi

master.resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

100m

master.resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

128Mi

master.nodeSelector

Селектор узлов для планирования pod

{}

master.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

- key: "node-role.kubernetes.io/control-plane"
  operator: "Equal"
  value: ""
  effect: "NoSchedule"

master.podDisruptionBudget.enable

Включение создания PodDisruptionBudget для nfd-master

false

master.podDisruptionBudget.minAvailable

Минимальное количество доступных pod при «добровольных» вытеснениях

1

master.podDisruptionBudget.unhealthyPodEvictionPolicy

Политика вытеснения (eviction) для неработоспособных pod

AlwaysAllow

master.networkPolicy.enabled

Включение развертывания NetworkPolicy для pod nfd-master

false

master.networkPolicy.egress

Правила исходящего трафика (egress) для pod nfd-master. Минимально необходимые порты: DNS (53/udp, 53/tcp), API-сервер (80/tcp, 443/tcp, 6443/tcp)

- ports:
  - port: 80
    protocol: TCP
  - port: 443
    protocol: TCP
  - port: 53
    protocol: TCP
  - port: 53
    protocol: UDP
  - port: 6443
    protocol: TCP

master.networkPolicy.ingress

Правила входящего трафика (ingress) для pod nfd-master

- ports:
  - protocol: TCP
    port: http

master.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

master.labels

Метки, добавляемые ко всем создаваемым ресурсам

{}

master.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

nodeAffinity:
  preferredDuringSchedulingIgnoredDuringExecution:
    - weight: 1
      preference:
        matchExpressions:
          - key: "node-role.kubernetes.io/control-plane"
            operator: In
            values: [""]

master.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

~

master.startupProbe.timeoutSeconds

Тайм-аут ожидания проверки запуска

~

master.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

~

master.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

30

master.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

~

master.livenessProbe.timeoutSeconds

Тайм-аут ожидания проверки работоспособности

~

master.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

~

master.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

~

master.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

~

master.readinessProbe.timeoutSeconds

Тайм-аут ожидания проверки готовности

~

master.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

~

master.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

~

master.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

10

worker – настройки компонента nfd-worker#

Параметр

Описание

Значение по умолчанию

worker.enable

Включение DaemonSet nfd-worker

true

worker.ownerRefs

Объекты, используемые в качестве ссылок владельца (owner references) для объектов NodeFeature. Значение передается через параметр -owner-refs и имеет приоритет над worker.config.core.ownerRefs.
Возможные значения: node, pod, ds

- pod
- ds

worker.extraArgs

Дополнительные аргументы командной строки для контейнера nfd-worker

[]

worker.extraEnvs

Дополнительные переменные окружения для контейнера nfd-worker

[]

worker.hostNetwork

Запуск контейнера в сетевом пространстве имен хоста

false

worker.hostUsers

Запуск контейнера с идентификаторами пользователей хоста. При hostNetwork: true параметр hostUsers должен быть true

~

worker.dnsPolicy

Политика разрешения DNS для pod.
Возможные значения: Default, ClusterFirst, ClusterFirstWithHostNet, None

ClusterFirstWithHostNet

worker.config

YAML-конфигурация nfd-worker, задающая источники признаков и правила обработки меток.
Пример конфигурации:

core:
  labelWhiteList:
  noPublish: false
  noOwnerRefs: false
  ownerRefs: [pod, ds]
  sleepInterval: 60s
  featureSources: [all]
  labelSources: [all]
sources:
  cpu:
    cpuid:
      attributeBlacklist:
        - "AVX10"
  kernel:
    kconfigFile: "/path/to/kconfig"
    configOpts:
      - "NO_HZ"
      - "X86"
      - "DMI"
  custom:
    - name: "my custom rule"
      labels:
        "vendor.io/my-ng-feature": "true"
      matchFeatures:
        - feature: cpu.cpuid
          matchExpressions:
            AVX512F: {op: Exists}

{}

worker.port

Порт, на котором обслуживается HTTP для метрик и эндпоинтов healthz

8080

worker.daemonsetAnnotations

Аннотации, добавляемые к DaemonSet nfd-worker

{}

worker.podSecurityContext

Параметры контекста безопасности pod

{}

worker.initContainers

Список init-контейнеров, запускаемых перед основными

[]

worker.securityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

worker.securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

worker.securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

worker.securityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

worker.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

worker.livenessProbe.timeoutSeconds

Тайм-аут ожидания проверки работоспособности

~

worker.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

~

worker.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

~

worker.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

5

worker.readinessProbe.timeoutSeconds

Тайм-аут ожидания проверки готовности

~

worker.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

~

worker.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

~

worker.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

10

worker.serviceAccount.create

Автоматическое создание ServiceAccount для nfd-worker

true

worker.serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

worker.serviceAccount.name

Имя ServiceAccount; при пустом значении и при create: true имя генерируется автоматически

~

worker.revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

~

worker.rbac.create

Активация автоматического создания ресурсов RBAC

true

worker.mountUsrSrc

Монтирование пути хоста /usr/src внутри контейнера. Не работает в системах без каталога /usr/src и файловой системой /usr «только для чтения»

false

worker.resources.limits.memory

Ограничение ресурсов памяти для контейнера

512Mi

worker.resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

5m

worker.resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

64Mi

worker.nodeSelector

Селектор узлов для планирования pod

{}

worker.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

worker.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

worker.labels

Метки, добавляемые ко всем создаваемым ресурсам

{}

worker.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

worker.priorityClassName

Имя PriorityClass для pod

~

worker.updateStrategy.rollingUpdate.maxUnavailable

Максимальное количество недоступных pod при обновлении DaemonSet (стратегия Rolling Update); значение в процентах или абсолютное число

"10%"

worker.networkPolicy.enabled

Включение развертывания NetworkPolicy для pod nfd-worker

false

worker.networkPolicy.egress

Правила исходящего трафика (egress) для pod nfd-worker. Минимально необходимые порты: DNS (53/udp, 53/tcp), API-сервер (80/tcp, 443/tcp, 6443/tcp)

- ports:
  - port: 80
    protocol: TCP
  - port: 443
    protocol: TCP
  - port: 53
    protocol: TCP
  - port: 53
    protocol: UDP
  - port: 6443
    protocol: TCP

worker.networkPolicy.ingress

Правила входящего трафика (ingress) для pod nfd-worker

- ports:
  - protocol: TCP
    port: http

topologyUpdater – настройки компонента nfd-topology-updater#

Параметр

Описание

Значение по умолчанию

topologyUpdater.config

YAML-конфигурация nfd-topology-updater, определяющая, какие ресурсы и узлы исключать из учета.
Пример конфигурации:

excludeList:
  node1: [cpu]
  node2: [memory, example/deviceA]
  *: [hugepages-2Mi]

{}

topologyUpdater.enable

Включение DaemonSet nfd-topology-updater

false

topologyUpdater.createCRDs

Создание CRD NodeResourceTopology в кластере автоматически. Значение true обязательно при enable: true, если CRD не установлен отдельно. При отсутствии CRD pod nfd-topology-updater завершаются с ошибкой

false

topologyUpdater.extraArgs

Дополнительные аргументы командной строки для контейнера nfd-topology-updater

[]

topologyUpdater.extraEnvs

Дополнительные переменные окружения для контейнера nfd-topology-updater

[]

topologyUpdater.hostNetwork

Запуск контейнера в сетевом пространстве имен хоста

false

topologyUpdater.hostUsers

Запуск контейнера с идентификаторами пользователей хоста. При hostNetwork: true параметр hostUsers должен быть true

~

topologyUpdater.dnsPolicy

Политика разрешения DNS для pod.
Возможные значения: Default, ClusterFirst, ClusterFirstWithHostNet, None

ClusterFirstWithHostNet

topologyUpdater.serviceAccount.create

Автоматическое создание ServiceAccount для nfd-topology-updater

true

topologyUpdater.serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

topologyUpdater.serviceAccount.name

Имя ServiceAccount; при пустом значении и при create: true имя генерируется автоматически

~

topologyUpdater.revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

~

topologyUpdater.rbac.create

Активация автоматического создания ресурсов RBAC

true

topologyUpdater.port

Порт, на котором обслуживается HTTP для метрик и эндпоинтов healthz

8080

topologyUpdater.kubeletConfigPath

Путь на хосте к файлу конфигурации Kubelet

~

topologyUpdater.kubeletPodResourcesSockPath

Путь на хосте к сокету Kubelet для эндпоинта podresources

~

topologyUpdater.updateInterval

Интервал между обновлениями CR NodeResourceTopology; неположительное значение отключает обновление CR

60s

topologyUpdater.watchNamespace

Пространство имен для отслеживания pod; * — все пространства имен

"*"

topologyUpdater.kubeletStateDir

Путь к каталогу состояния Kubelet для отслеживания файлов состояния и контрольных точек; пустое значение отключает отслеживание состояния Kubelet

/var/lib/kubelet

topologyUpdater.podSecurityContext

Параметры контекста безопасности pod

{}

topologyUpdater.initContainers

Список init-контейнеров, запускаемых перед основными

[]

topologyUpdater.securityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

topologyUpdater.securityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

topologyUpdater.securityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

topologyUpdater.securityContext.runAsUser

ID пользователя для запуска контейнера; значение 0 (root) необходимо для доступа к сокету Kubelet

0

topologyUpdater.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

topologyUpdater.livenessProbe.timeoutSeconds

Тайм-аут ожидания проверки работоспособности

~

topologyUpdater.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

~

topologyUpdater.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

~

topologyUpdater.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

5

topologyUpdater.readinessProbe.timeoutSeconds

Тайм-аут ожидания проверки готовности

~

topologyUpdater.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

~

topologyUpdater.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

~

topologyUpdater.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

10

topologyUpdater.resources.limits.memory

Ограничение ресурсов памяти для контейнера

60Mi

topologyUpdater.resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

50m

topologyUpdater.resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

40Mi

topologyUpdater.nodeSelector

Селектор узлов для планирования pod

{}

topologyUpdater.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

topologyUpdater.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

topologyUpdater.labels

Метки, добавляемые ко всем создаваемым ресурсам

{}

topologyUpdater.daemonsetAnnotations

Аннотации, добавляемые к DaemonSet nfd-topology-updater

{}

topologyUpdater.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

topologyUpdater.podSetFingerprint

Вычисление и передача отпечатка (fingerprint) набора pod в объекты NodeResourceTopology

true

topologyUpdater.networkPolicy.enabled

Включение развертывания NetworkPolicy для pod nfd-topology-updater

false

topologyUpdater.networkPolicy.egress

Правила исходящего трафика (egress) для pod nfd-topology-updater. Минимально необходимые порты: DNS (53/udp, 53/tcp), API-сервер (80/tcp, 443/tcp, 6443/tcp)

- ports:
  - port: 80
    protocol: TCP
  - port: 443
    protocol: TCP
  - port: 53
    protocol: TCP
  - port: 53
    protocol: UDP
  - port: 6443
    protocol: TCP

topologyUpdater.networkPolicy.ingress

Правила входящего трафика (ingress) для pod nfd-topology-updater

- ports:
  - protocol: TCP
    port: http

gc – настройки компонента сборки устаревших ресурсов#

Параметр

Описание

Значение по умолчанию

gc.enable

Включение компонента nfd-gc для очистки неактуальных меток и синхронизации состояния

true

gc.extraArgs

Дополнительные аргументы командной строки для контейнера nfd-gc

[]

gc.extraEnvs

Дополнительные переменные окружения для контейнера nfd-gc

[]

gc.hostNetwork

Запуск контейнера в сетевом пространстве имен хоста

false

gc.hostUsers

Запуск контейнера с идентификаторами пользователей хоста. При hostNetwork: true параметр hostUsers должен быть true

~

gc.replicaCount

Количество реплик pod инструмента

1

gc.dnsPolicy

Политика разрешения DNS для pod.
Возможные значения: Default, ClusterFirst, ClusterFirstWithHostNet, None

ClusterFirstWithHostNet

gc.serviceAccount.create

Автоматическое создание ServiceAccount для nfd-gc

true

gc.serviceAccount.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

gc.serviceAccount.name

Имя ServiceAccount; при пустом значении и при create: true имя генерируется автоматически

~

gc.rbac.create

Активация автоматического создания ресурсов RBAC

true

gc.interval

Интервал между периодическими запусками сборщика устаревших ресурсов

1h

gc.podSecurityContext

Параметры контекста безопасности pod

{}

gc.initContainers

Список init-контейнеров, запускаемых перед основными

[]

gc.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

gc.livenessProbe.timeoutSeconds

Тайм-аут ожидания проверки работоспособности

~

gc.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

~

gc.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

~

gc.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

5

gc.readinessProbe.timeoutSeconds

Тайм-аут ожидания проверки готовности

~

gc.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

~

gc.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

~

gc.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

~

gc.resources.limits.memory

Ограничение ресурсов памяти для контейнера

1Gi

gc.resources.requests.cpu

Запрашиваемые ресурсы CPU для контейнера

10m

gc.resources.requests.memory

Запрашиваемые ресурсы памяти для контейнера

128Mi

gc.port

Порт, на котором обслуживается HTTP для метрик и эндпоинтов healthz

8080

gc.nodeSelector

Селектор узлов для планирования pod

{}

gc.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

gc.annotations

Аннотации, добавляемые ко всем создаваемым ресурсам

{}

gc.labels

Метки, добавляемые ко всем создаваемым ресурсам

{}

gc.deploymentAnnotations

Аннотации, добавляемые к Deployment nfd-gc

{}

gc.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

gc.podDisruptionBudget.enable

Включение создания PodDisruptionBudget для nfd-gc

false

gc.podDisruptionBudget.minAvailable

Минимальное количество доступных pod при «добровольных» вытеснениях

1

gc.podDisruptionBudget.unhealthyPodEvictionPolicy

Политика вытеснения (eviction) для неработоспособных pod

AlwaysAllow

gc.revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

~

gc.networkPolicy.enabled

Включение развертывания NetworkPolicy для pod nfd-gc

false

gc.networkPolicy.egress

Правила исходящего трафика (egress) для pod nfd-gc. Минимально необходимые порты: DNS (53/udp, 53/tcp), API-сервер (80/tcp, 443/tcp, 6443/tcp)

- ports:
  - port: 80
    protocol: TCP
  - port: 443
    protocol: TCP
  - port: 53
    protocol: TCP
  - port: 53
    protocol: UDP
  - port: 6443
    protocol: TCP

gc.networkPolicy.ingress

Правила входящего трафика (ingress) для pod nfd-gc

- ports:
  - protocol: TCP
    port: http

prometheus – параметры интеграции с Prometheus и сбора метрик#

Параметр

Описание

Значение по умолчанию

prometheus.enable

Включение создания PodMonitor для сбора метрик Prometheus Operator

true

prometheus.scrapeInterval

Интервал сбора метрик

10s

prometheus.labels

Метки, добавляемые ко всем создаваемым ресурсам

{}