В Kubernetes ingress — это объект ресурса, который контролирует, как Services внутри кластера могут быть доступны из внешней сети кластера. Вы можете использовать ingress для настройки различных правил переадресации доступа к pods в кластере. Ниже используется Nginx workload в качестве примера, чтобы описать, как создать LoadBalancer ingress в console.
This section uses an Nginx workload as an example to describe how to add a LoadBalancer ingress.
Балансировщик нагрузки может быть выделенным или общим. Выделенный балансировщик нагрузки должен быть типа application (HTTP/HTTPS) и поддерживать частные сети.
Вы можете выбрать Use existing или Auto create для получения балансировщика нагрузки. Подробнее о конфигурации различных режимов создания см. Table 1.
Как создать | Конфигурация |
|---|---|
Use existing | Только балансировщики нагрузки в той же VPC, что и кластер, могут быть выбраны. Если доступный балансировщик нагрузки отсутствует, нажмите Create Load Balancer, чтобы создать его в консоли ELB. |
Auto create |
|
Для кластеров v1.25.16-r10, v1.27.16-r10, v1.28.15-r0, v1.29.10-r0, v1.30.6-r0, v1.31.1-r0 и более новых, при использовании выделенного балансировщика нагрузки, можно одновременно выбрать не более пяти групп IP‑адресов для контроля доступа.
Если для выбранного порта на балансировщике нагрузки уже существует HTTPS‑ingress, сертификат нового HTTPS‑ingress должен совпадать с сертификатом существующего ingress. Это означает, что у слушателя может быть только один сертификат. Если к одному и тому же слушателю того же балансировщика нагрузки добавить два сертификата, каждый с разным ingress, действующим будет только тот сертификат, который был добавлен первым.
Для получения подробной информации о политиках безопасности см. Elastic Load Balance User Guide.
Когда listener соответствует HTTP, можно выбрать только HTTP.
Если это HTTPS listener, этот параметр можно установить в HTTP или HTTPS.
Configuration | Description | Constraint |
|---|---|---|
Transfer Listener Port Number | Если эта функция включена, прослушиваемый порт на балансировщике нагрузки может быть передан бэкэнд‑серверам через HTTP‑заголовок пакета. | Эта функция доступна только для выделенных балансировщиков нагрузки. |
Transfer Port Number in the Request | Если эта функция включена, исходный порт клиента может быть передан бэкэнд‑серверам через HTTP‑заголовок пакета. | Эта функция доступна только для выделенных балансировщиков нагрузки. |
Перезаписать X-Forwarded-Host | Если эта функция включена, X-Forwarded-Host будет перезаписан с использованием поля Host в заголовке запроса клиента и передан бэкэнд‑серверам. | Эта функция доступна только для выделенных балансировщиков нагрузки. |
Сжатие данных | Если эта функция включена, определённые файлы будут сжаты. Если она не включена, файлы не будут сжаты.
| Эта функция доступна только для выделенных балансировщиков нагрузки. |
Idle Timeout | Период, в течение которого соединение клиента может оставаться бездействующим до его завершения. Если в течение этого времени к балансировщику нагрузки не поступает запросов, балансировщик разрывает соединение с клиентом и устанавливает новое соединение при появлении нового запроса. | Эта конфигурация не поддерживается, если порт совместного балансировщика нагрузки использует UDP. |
Request Timeout | Период, в течение которого должен быть получен запрос от клиента. Существует два случая:
| Эта функция доступна только для HTTP и HTTPS listeners. |
Response Timeout | Период, в течение которого ожидается ответ от backend server. Если backend server не отвечает в течение этого периода после получения запроса, load balancer прекращает ожидание и возвращает ошибку HTTP 504. | Эта функция доступна только для HTTP и HTTPS listeners. |
Enable HTTP/2 | Определяет, включать ли HTTP/2 для HTTPS‑запросов между клиентом и load balancer. Перенаправление запросов с использованием HTTP/2 повышает производительность доступа между вашим приложением и load balancer. Однако load balancer по‑прежнему использует HTTP/1.x для перенаправления запросов к backend server. | Эта функция доступна только когда listener поддерживает HTTPS. |
, чтобы добавить несколько forwarding policies.Указанный здесь путь доступа должен существовать в бекенд‑приложении. В противном случае переадресация завершится неудачей.
Например, URL доступа по умолчанию для приложения Nginx — /usr/share/nginx/html. При добавлении /test в политику переадресации ingress убедитесь, что URL доступа вашего приложения Nginx содержит /usr/share/nginx/html/test. В противном случае будет возвращена ошибка 404.
Параметр | Описание |
|---|---|
Протокол | Поддерживаются TCP, HTTP.
|
Порт | По умолчанию для проверки работоспособности используется порт сервиса (NodePort или контейнерный порт Service). Вы также можете указать другой порт для проверки. После указания порта для Service будет добавлен сервисный порт с именем cce-healthz.
|
Период проверки (с) | Указывает максимальный интервал между проверками работоспособности. Диапазон значений от 1 до 50. |
Тайм‑аут (с) | Указывает максимальное время ожидания для каждой проверки. Диапазон значений от 1 до 50. |
Максимальное количество повторов | Указывает максимальное количество повторных проверок состояния. Значение может принимать от 1 до 10. |
On the ELB console, you can check the load balancer automatically created through CCE. The default name is cce-lb-<ingress.UID>. Click the load balancer name to go to the details page. On the Listeners tab page, check the listener and forwarding policy of the target ingress.
После создания ingress обновляйте и обслуживайте выбранный балансировщик нагрузки в консоли CCE. Не изменяйте конфигурацию в консоли ELB. В противном случае сервис ingress может работать некорректно.
Figure 1 Accessing the /healthz interface of defaultbackend
