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

ANIC поддерживает ряд аргументов командной строки. Способ указания этих аргументов зависит от того, как вы устанавливаете Ingress Controller:

  • Если вы используете манифесты Kubernetes (Deployment или DaemonSet) для установки ANIC, измените эти манифесты соответствующим образом, чтобы задать аргументы командной строки. См. документацию по установке с манифестами.

  • Если вы используете Helm для установки ANIC, измените параметры диаграммы Helm, соответствующие аргументам командной строки. См. документацию по установке с помощью Helm.

Ниже перечислены доступные аргументы командной строки:

-enable-snippets

Включает пользовательские фрагменты конфигурации Angie в ресурсах Ingress, VirtualServer, VirtualServerRoute и TransportServer.

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

-default-server-tls-secret <строка>

Секрет с сертификатом TLS и ключом для TLS-терминирования на сервере по умолчанию.

  • Если значение не задано, используются сертификат и ключ в файле /etc/angie/secrets/default.

  • Если /etc/angie/secrets/default не существует, ANIC настроит в Angie отклонение TLS-подключений к серверу по умолчанию.

  • Если секрет установлен, но ANIC не может получить его из API Kubernetes, или же не установлен, и ANIC не удается прочитать файл /etc/angie/secrets/default, то Ingress Controller не запустится.

Формат: <пространство имен>/<имя>

-wildcard-tls-secret <строка>

Секрет с сертификатом TLS и ключом для TLS-терминирования каждого узла Ingress или VirtualServer, для которого включено TLS-терминирование, но секрет не указан.

  • Если аргумент не задан, для таких узлов Ingress и VirtualServer Angie прервет любую попытку установить TLS-соединение.

  • Если аргумент задан, но ANIC не может получить секрет из API Kubernetes, то ANIC не запустится.

Формат: <пространство имен>/<имя>

-enable-custom-resources

Включает пользовательские ресурсы.

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

-enable-leader-election

Позволяет выбирать лидера, чтобы избежать ситуации, когда несколько реплик контроллера сообщают о статусе ресурсов Ingress, VirtualServer и VirtualServerRoute; сообщать о статусе будет только одна реплика. По умолчанию true.

См. флаг -report-ingress-status.

-enable-tls-passthrough

Включает сквозную передачу данных по протоколу TLS на порту 443.

Требует наличия -enable-custom-resources.

-tls-passthrough-port <int>

Задает порт для сквозной передачи данных по протоколу TLS. Формат: [1024 - 65535] (по умолчанию 443)

Требует включить -enable-custom-resources.

-enable-cert-manager

Включает автоматическое управление сертификатами x509 для ресурсов VirtualServer с помощью cert-manager (cert-manager.io).

Требует -enable-custom-resources.

-enable-external-dns

Включает интеграцию с ExternalDNS для настройки общедоступных записей DNS у ресурсов VirtualServer с использованием ExternalDNS.

Требует наличия -enable-custom-resources.

-external-service <строка>

Указывает имя сервиса с типом LoadBalancer, через который поды Ingress Controller делаются доступны извне. Внешний адрес сервиса используется для отчетов о состоянии ресурсов Ingress, VirtualServer и VirtualServerRoute.

Только для ресурсов Ingress: требует наличия -report-ingress-status.

-global-configuration <строка>

Ресурс GlobalConfiguration для глобальной настройки ANIC.

Формат:<пространство имен>/<имя>

Требует наличия -enable-custom-resources.

-health-status

Добавляет местоположение «/angie-health» к серверу по умолчанию. Местоположение отвечает кодом статуса 200 на любой запрос.

Это полезно для внешней проверки работоспособности ANIC.

-health-status-uri <строка>

Задает URI местоположения проверки работоспособности на сервере по умолчанию. Требует наличия -health-status.

По умолчанию /angie-health.

-ingress-class <строка>

Класс ANIC.

Должен быть развернут соответствующий ресурс IngressClass с именем, равным классу. В противном случае ANIC не запустится. ANIC обрабатывает только те ресурсы, которые принадлежат его классу, т. е. имеют ресурс поля ingressClassName, равный классу.

ANIC обрабатывает все ресурсы, у которых нет поля ingressClassName.

По умолчанию angie.

-ingress-template-path <строка>

Путь к шаблону конфигурации Ingress Angie для ресурса Ingress. По умолчанию для Angie используется angie.ingress.tmpl.

-leader-election-lock-name <строка>

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

Требует наличия -enable-leader-election.

-main-template-path <строка>

Путь к основному шаблону конфигурации Angie.

  • По умолчанию для Angie используется angie.ingress.tmpl.

-angie-configmaps <строка>

Ресурс ConfigMap для настройки конфигурации Angie. Если ConfigMap задан, но ANIC не может получить его из API Kubernetes, то ANIC не запустится.

Формат: <пространство имен>/<имя>

-angie-debug

Включает отладку для Angie. Использует бинарник angie-debug. Требуется „error-log-level: debug“ в ConfigMap.

-angie-reload-timeout <значение>

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

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

-angie-status

Включает Angie stub_status.

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

-angie-status-allow-cidrs <строка>

Добавляет блоки IP/CIDR в список разрешений для Angie stub_status.

Несколько IP или CIDR разделяются запятыми. (По умолчанию 127.0.0.1,::1)

-angie-status-port <int>

Задает порт, на котором доступен Angie stub_status.

Формат: [1024 - 65535] (по умолчанию 8080)

-angie-status-prometheus <bool>

Включает или отключает выдачу статистики Angie в формате Prometheus.

Формат: false или true (по умолчанию true)

-angie-status-prometheus-port <int>

Задает порт, на котором доступна статистика Angie в формате Prometheus.

Формат: [1024 - 65535] (по умолчанию 8083)

-angie-status-prometheus-allow-cidrs

Добавляет блоки IP/CIDR в список разрешений для статистики Angie в формате Prometheus.

Несколько IP или CIDR разделяются запятыми. (По умолчанию 127.0.0.1,::1)

-proxy <строка>

Задает использование прокси-сервера для подключения к API Kubernetes, запускаемого командой «kubectl proxy». Только в целях тестирования.

ANIC не запускает Angie и не записывает на диск никакие сгенерированные файлы конфигурации Angie.

-report-ingress-status

Обновляет поле адреса в статусе ресурсов Ingress.

Требуется флаг -external-service или -ingresslink, либо ключ external-status-address в ConfigMap.

-transportserver-template-path <строка>

Путь к шаблону конфигурации TransportServer Angie для ресурса TransportServer.

  • По умолчанию для Angie используетсяangie.transportserver.tmpl.

-v<значение>

Уровень ведения журнала для журналов V.

-version

Выводит версию, хэш git-коммита и дату сборки, затем завершает работу.

-virtualserver-template-path <строка>

Путь к шаблону конфигурации VirtualServer Angie для ресурса VirtualServer.

  • По умолчанию для Angie используется angie.ingress.tmpl.

-vmodule <значение>

Разделенный запятыми список параметров pattern=N для ведения журнала с фильтрацией файлов.

-watch-namespace <строка>

Разделенный запятыми список пространств имен, за ресурсами которых должен следить ANIC. По умолчанию ANIC отслеживает все пространства имен. Нельзя использовать вместе с «watch-namespace-label».

-watch-namespace-label <строка>

Настраивает в ANIC просмотр только пространств имен с меткой foo=bar. По умолчанию ANIC отслеживает все пространства имен. Нельзя использовать вместе с «watch-namespace».

-watch-secret-namespace <строка>

Разделенный запятыми список пространств имен, за которыми Ingress Controller должен следить на предмет наличия секретов. Если этот параметр не настроен, ANIC отслеживает одни и те же пространства имен для всех ресурсов. См. также «watch-namespace» и «watch-namespace-label».

-enable-prometheus-metrics

Позволяет публиковать метрики Angie в формате Prometheus.

-prometheus-metrics-listen-port <int>

Задает порт, на котором публикуются метрики Prometheus.

Формат: [1024 - 65535] (по умолчанию 9113)

-prometheus-tls-secret <строка>

Секрет с сертификатом TLS и ключом для TLS-терминирования конечной точки метрик Prometheus.

  • Если аргумент не задан, конечная точка Prometheus не будет использовать TLS-соединение.

  • Если аргумент задан, но ANIC не может получить секрет из API Kubernetes, то ANIC не запустится.

-enable-service-insight

Публикует конечную точку Service Insight для ANIC.

-service-insight-listen-port <int>

Задает порт, на котором публикуется Service Insight.

Формат: [1024 - 65535] (по умолчанию 9114)

-service-insight-tls-secret <строка>

Секрет с сертификатом TLS и ключом для TLS-терминирования конечной точки Service Insight.

  • Если аргумент не задан, конечная точка Service Insight не будет использовать TLS-соединение.

  • Если аргумент задан, но ANIC не может получить секрет из API Kubernetes, то ANIC не запустится.

Формат: <пространство имен>/<имя>

-ready-status

Включает конечную точку готовности /angie-ready. Конечная точка возвращает код успеха, когда Angie загрузил всю конфигурацию после запуска.

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

-ready-status-port

HTTP-порт для конечной точки готовности.

Формат: [1024 - 65535] (по умолчанию 8081)

-disable-ipv6

Явно отключает прослушиватели IPV6 для узлов, которые не поддерживают стек IPV6.

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