Kubernetes HPA
Поддерживаются как производитель, так и потребитель
Компонент Kubernetes HPA (Horizontal Pod Autoscaler) является одним из компонентов Kubernetes, который предоставляет производителя (producer) для выполнения операций с Horizontal Pod Autoscaler (горизонтальным автомасштабированием подов) и потребителя (consumer) для обработки событий, связанных с объектами Horizontal Pod Autoscaler.
Configuring Options
Компоненты настраиваются на двух отдельных уровнях:
-
component level
-
edpoint level
Configuring Component Options
На уровне компонента задаются основные и общие настройки, которые впоследствии наследуются endpoints. Это самый высокий уровень конфигурации.
Например, компонент может иметь настройки безопасности, учетные данные для аутентификации, URL-адреса для сетевых подключений и т. д.
Некоторые компоненты имеют всего несколько параметров, в то время как у других их может быть много. Поскольку компоненты обычно имеют предварительно настроенные значения по умолчанию, которые используются в большинстве случаев, вам может понадобиться настроить только несколько параметров компонента или вообще ничего не настраивать.
Компоненты можно настроить с использованием:
-
Component DSL.
-
Конфигурационного файла (application.properties, *.yaml files, etc).
-
Напрямую в Java code.
Configuring Endpoint Options
Обычно больше времени уходит на настройку endpoints, так как они обладают множеством параметров. Эти параметры позволяют настроить поведение endpoint в соответствии с вашими потребностями. Кроме того, параметры делятся на категории в зависимости от того, используется ли endpoint как потребитель (from), как производитель (to) или в обеих ролях.
Настройка endpoints чаще всего выполняется непосредственно в URI endpoint в виде параметров пути и запроса. Также вы можете использовать Endpoint DSL и DataFormat DSL как типобезопасный способ настройки endpoints и форматов данных в Java.
Хорошей практикой при настройке параметров является использование Property Placeholders.
Property placeholders предоставляют несколько преимуществ:
-
Помогают избежать использования жестко закодированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.
-
Позволяют вынести конфигурацию за пределы кода.
-
Делают код более гибким и удобным для повторного использования.
Component properties
Api Version
-
Версия API Kubernetes для использования.
-
По умолчанию:
-
Тип: String
Crd Group
-
Группа ресурсов CRD Consumer, за которой будет идти наблюдение.
-
По умолчанию:
-
Тип: String
Crd Name
-
Тип: Название ресурса Consumer CRD, за которым будет идти наблюдение.
-
По умолчанию:
-
Тип: String
Crd Plural
-
Множественное число ресурса CRD Consumer, за которым будет идти наблюдение.
-
По умолчанию:
-
Тип: String
Crd Scope
-
Тип: Область ресурса CRD Consumer, за которым будет идти наблюдение.
-
По умолчанию:
-
Тип: String
Crd Version
-
Версия ресурса CRD Consumer, за которым будет идти наблюдение.
-
По умолчанию:
-
Тип: String
Dns Domain
-
Тип: Доменное имя DNS, используемое для ServiceCall EIP.
-
По умолчанию:
-
Тип: String
Kubernetes Client
-
KubernetesClient по умолчанию для использования, если предоставлен.
-
По умолчанию:
-
Тип: KubernetesClient
Label Key
-
Тип: Ключ метки Consumer при наблюдении за определёнными ресурсами.
-
По умолчанию:
-
Тип: String
Label Value
-
Значение метки Consumer при наблюдении за определёнными ресурсами.
-
По умолчанию:
-
Тип: String
Master Url
-
Тип: Обязательный параметр. URL удалённого сервера API Kubernetes. Этот параметр следует использовать только в том случае, если ваше приложение Camel подключается извне Kubernetes. Если вы запускаете приложение Camel внутри Kubernetes, вы можете использовать local или client в качестве URL, чтобы указать Camel работать в локальном режиме. Если вы подключаетесь к Kubernetes удалённо, вам также могут понадобиться другие параметры конфигурации для безопасного подключения с использованием сертификатов и т.д.
-
По умолчанию:
-
Тип: String
Namespace
-
Namespace.
-
По умолчанию:
-
Тип: String
Pool Size
-
Тип: Размер пула Consumer
-
По умолчанию: 1
-
Тип: int
Port Name
-
Имя порта, используемое для ServiceCall EIP.
-
По умолчанию:
-
Тип: String
Port Protocol
-
Протокол порта, используемый для ServiceCall EIP.
-
По умолчанию: tcp
-
Тип: String
Resource Name
-
Имя ресурса Consumer, за которым будет идти наблюдение.
-
По умолчанию:
-
Тип: String
Component security properties
Ca Cert Data
-
Данные сертификата CA.
-
По умолчанию:
-
Тип: String
Ca Cert File
-
Тип: Файл сертификата CA.
-
По умолчанию:
-
Тип: String
Client Cert Data
-
Данные сертификата клиента.
-
По умолчанию:
-
Тип: String
Client Cert File
-
Тип: Файл сертификата клиента.
-
По умолчанию:
-
Тип: String
Client Key Algo
-
Алгоритм ключа, используемый клиентом.
-
По умолчанию:
-
Тип: String
Client Key Data
-
Тип: Данные ключа клиента.
-
По умолчанию:
-
Тип: String
Client Key File
-
Файл ключа клиента.
-
По умолчанию:
-
Тип: String
Client Key Passphrase
-
Тип: Парольная фраза клиентского ключа.
-
По умолчанию:
-
Тип: String
Oauth Token
-
Токен аутентификации.
-
По умолчанию:
-
Тип: String
Password
-
Тип: Пароль для подключения к Kubernetes.
-
По умолчанию:
-
Тип: String
Trust Certs
-
Определяет, являются ли используемые сертификаты доверенными или нет.
-
По умолчанию:
-
Тип: Boolean
Username
-
Тип: Имя пользователя для подключения к Kubernetes.
-
По умолчанию:
-
Тип: String
Component advanced properties
Bridge Error Handler
-
Предоставляет возможность связать потребителя с маршрутизатором Error Handler Camel. Это позволяет обрабатывать исключения (если возможно), возникающие при получении входящих сообщений потребителем Camel, в виде сообщений, передаваемых в маршрутизатор Error Handler.
Важно: Это возможно только в том случае, если сторонний компонент позволяет Camel получать уведомления о возникших исключениях. Некоторые компоненты обрабатывают исключения только внутренне, из-за чего использование bridgeErrorHandler становится невозможным. В некоторых случаях мы можем доработать компонент Camel, чтобы интегрировать его со сторонним компонентом и сделать такую возможность доступной в будущих выпусках. По умолчанию потребитель использует org.apache.camel.spi.ExceptionHandler для обработки исключений, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию: false
-
Тип: boolean
Exception Handler
-
Позволяет потребителю использовать собственный ExceptionHandler.
Обратите внимание, что если включена опция bridgeErrorHandler, то эта настройка не используется. По умолчанию потребитель обрабатывает исключения, которые логируются с уровнем WARN или ERROR и игнорируются.
-
По умолчанию:
-
Тип: ExceptionHandler
Exchange Pattern
-
Определяет шаблон взаимодействия, который применяется, когда потребитель создает новый обмен (exchange).
Возможные значения:
-
InOnly
-
InOut
-
-
По умолчанию:
-
Тип: ExchangePattern
Connection Timeout
-
Тип: Таймаут подключения в миллисекундах, используемый при выполнении запросов к серверу API Kubernetes.
-
По умолчанию:
-
Тип: Integer