Network Operator init container#

Network Operator init container - специальный контейнер, который запускается перед основными контейнерами для выполнения подготовительных задач и настройки сетевых операторов. Он выполняет необходимые начальные действия и завершается после выполнения своей работы, позволяя продолжить запуск основных контейнеров.

Основные функции:

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

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

  • Гарантированное выполнение init-контейнеров перед запуском основного контейнера. Если инициализация не завершается успешно, основной контейнер не запускается.

  • Настройка сетевых правил, параметров или проверка состояния сетевых ресурсов перед запуском основного оператора или приложения.

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

Обязательные аргументы командной строки#

Контейнер Network Operator init container должен содержать следующие обязательные аргументы командной строки:

  • --configmap-name - имя configmap с настройками;

  • --configmap-namespace - пространство имен configmap с настройками;

  • --node-name - имя узла кластера.

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

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

Пример конфигурации config.json
apiVersion: v1
kind: ConfigMap
metadata:
  name: ofed-init-container-config
  namespace: default
data:
  config.json: |-
    {
      "safeDriverLoad": {
        "enable": true,
        "annotation": "some-annotation"
      }
    }

Где:

  • safeDriverLoad - содержит настройки, относящиеся к функции safeDriverLoad;

  • safeDriverLoad.enable - включает функцию;

  • safeDriverLoad.annotation - указывает аннотацию, которую следует использовать для функции.

Если функция safeDriverLoad включена, то контейнер Network-operator-init-container установит аннотацию, указанную в safeDriverLoad.annotation к объекту узла, идентифицируемому с помощью флага --node-name. Контейнер завершает работу с кодом 0, когда аннотация удаляется из узла.

Если функция safeDriverLoad отключена, контейнер немедленно завершает работу с кодом 0.

Аргументы командной строки#

Часто используемые флаги Network-operator-init-container:

  • --log-flush-frequency - время между очистками журнала (по умолчанию 5s);

  • --logging-format - формат журнала. Разрешенные форматы: "json", "text" (по умолчанию);

  • -v, --v - уровень детализации журнала;

  • --vmodule pattern=N,... - разделенный запятыми список настроек pattern=N для ведения журнала с фильтрацией по файлам (работает только для текстового формата журнала);

  • -h, -help - вывод справки и выход;

  • --version - вывод версии и выход.