В Kubernetes ingress — это объект ресурса, который контролирует, как Services внутри кластера могут быть доступны извне кластера. Вы можете использовать ingress для настройки различных правил переадресации доступа к pods в кластере. Ниже используется Nginx workload в качестве примера, чтобы описать, как создать LoadBalancer ingress в console.
В этом разделе используется Nginx workload в качестве примера, чтобы описать, как добавить LoadBalancer ingress.
Балансировщик нагрузки может быть выделенным или общим. Выделенный балансировщик нагрузки должен быть типа application (HTTP/HTTPS) и поддерживать частные сети.
Вы можете выбрать Use existing или Auto create для получения балансировщика нагрузки. Подробнее о конфигурации различных режимов создания см. Table 1.
Метод создания | Конфигурация |
|---|---|
Использовать существующий | Можно выбрать только балансировщики нагрузки в том же 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. Это означает, что у listener может быть только один сертификат. Если к одному listener того же балансировщика добавить два сертификата, каждый с разным ingress, будет действовать только тот сертификат, который был добавлен первым.
Для получения подробной информации о политиках безопасности см. Elastic Load Balance User Guide.
Когда listener соответствует HTTP, можно выбрать только HTTP.
Если это HTTPS listener, этот параметр можно установить в HTTP или HTTPS.
Configuration | Description | Constraint |
|---|---|---|
Transfer Listener Port Number | Если эта функция включена, прослушиваемый порт на load balancer может быть передан backend servers через HTTP header пакета. | Эта функция доступна только для выделенных load balancers. |
Transfer Port Number in the Request | Если эта функция включена, исходный порт клиента может передаваться бэкенд‑серверам через HTTP‑заголовок пакета. | Эта функция доступна только для выделенных балансировщиков нагрузки. |
Rewrite X-Forwarded-Host | Если эта функция включена, X-Forwarded-Host будет переписан с использованием поля Host в заголовке запроса клиента и передан бэкенд‑серверам. | Эта функция доступна только для выделенных балансировщиков нагрузки. |
Data Compression | Если эта функция включена, определённые файлы будут сжаты. Если она не включена, файлы не будут сжаты.
| Эта функция доступна только для выделенных балансировщиков нагрузки. |
Idle Timeout (s) | Продолжительность, в течение которой соединение клиента может оставаться бездействующим до его завершения. Если в течение этого периода к балансировщику нагрузки не поступает запросов, балансировщик разорвет соединение с клиентом и установит новое соединение при появлении нового запроса. | Эта конфигурация не поддерживается, когда UDP используется на совместном балансировщике нагрузки. |
Request Timeout (s) | Продолжительность, в течение которой запрос от клиента должен быть получен. Существует два случая:
| Эта функция доступна только для HTTP и HTTPS listeners. |
Response Timeout (s) | Тайм‑аут ответа сервера backend. Если сервер backend не отвечает в течение этого периода после получения запроса, балансировщик нагрузки прекратит ожидание и вернёт ошибку HTTP 504. | Эта функция доступна только для HTTP и HTTPS listeners. |
Enable HTTP/2 | Определяет, включать ли HTTP/2 для HTTPS‑запросов между клиентом и балансировщиком нагрузки. Перенаправление запросов с использованием HTTP/2 повышает производительность доступа между вашим приложением и балансировщиком нагрузки. Однако балансировщик нагрузки по‑прежнему использует HTTP/1.x для перенаправления запросов к серверу backend. | Эта функция доступна только когда listener поддерживает HTTPS. |
, чтобы добавить несколько forwarding policies.Добавленный здесь путь доступа должен существовать в бекенд‑приложении. В противном случае переадресация завершится неудачей.
Например, URL доступа по умолчанию для приложения Nginx — /usr/share/nginx/html. При добавлении /test в политику переадресации ingress убедитесь, что URL доступа вашего приложения Nginx содержит /usr/share/nginx/html/test. В противном случае будет возвращена ошибка 404.
Parameter | Description |
|---|---|
Protocol | Поддерживаются HTTP и TCP.
|
Port | По умолчанию для health checks используется порт сервиса (NodePort или container port Service). Вы также можете указать другой порт для health check. После указания порта для Service будет добавлен сервисный порт с именем cce-healthz.
|
Check Period (s) | Максимальный интервал между health checks. Диапазон значений от 1 до 50. |
Timeout (s) | Максимальное время ожидания ответа каждого health check. Диапазон значений от 1 до 50. |
Max. Retries | Максимальное количество попыток повторного запроса до пометки backend как нездорового. Значения находятся в диапазоне от 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
