Spec-Zone.ru › Kubernetes

Ingress

Ingress — это набор правил, позволяющих входящим подключениям достигать конечных точек, определённых бэкендом. Ingress можно настроить для предоставления сервисам URL-адресов, доступных извне, балансировки трафика, завершения SSL-соединений, организации виртуального хостинга на основе имён и т. д.
Документация по концепции Ingress
  • Ingress

    Сделайте сетевой сервис HTTP (или HTTPS) доступным с помощью механизма конфигурации, учитывающего протокол и понимающего такие веб-понятия, как URI, имена хостов, пути и многое другое. Концепция Ingress позволяет направлять трафик к различным бэкендам на основе правил, заданных через API Kubernetes.

    1. Терминология
    2. Что такое Ingress?
    3. Предварительные требования
    4. Ресурс Ingress
    5. Шаблоны имён хостов
    6. Класс Ingress
    7. Типы Ingress
    8. Обновление Ingress
    9. Отказоустойчивость между зонами доступности
    10. Альтернативы
    11. Что дальше

apiVersion: networking.k8s.io/v1

import "k8s.io/api/networking/v1"

Ingress

Ingress — это набор правил, позволяющих входящим подключениям достигать конечных точек, определённых бэкендом. Ingress можно настроить для предоставления сервисам URL-адресов, доступных извне, балансировки трафика, завершения SSL-соединений, организации виртуального хостинга на основе имён и т. д.

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее представление и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определять его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ObjectMeta
Стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
spec
IngressSpec
spec — желаемое состояние Ingress. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
status
IngressStatus
status — текущее состояние Ingress. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

IngressSpec

IngressSpec описывает Ingress, который пользователь хочет создать.

Поле Описание
defaultBackend
IngressBackend
defaultBackend — бэкенд, который должен обрабатывать запросы, не соответствующие ни одному правилу. Если Rules не указаны, необходимо указать DefaultBackend. Если DefaultBackend не задан, обработка запросов, не соответствующих ни одному из правил, зависит от контроллера Ingress.
ingressClassName
string
ingressClassName — имя кластерного ресурса IngressClass. Реализации контроллеров Ingress используют это поле, чтобы определить, должны ли они обслуживать данный ресурс Ingress, используя цепочку связей (controller -> IngressClass -> ресурс Ingress). Хотя аннотация `kubernetes.io/ingress.class` (простое постоянное имя) никогда официально не определялась, контроллеры Ingress широко поддерживали её для создания прямой привязки между контроллером Ingress и ресурсами Ingress. В новых ресурсах Ingress следует предпочитать это поле. Однако, несмотря на официальное признание аннотации устаревшей, для обеспечения обратной совместимости контроллеры Ingress должны по-прежнему учитывать её, если она задана.
rules
IngressRule array
rules — список правил для хостов, используемых при настройке Ingress. Если правила не указаны или ни одно из них не соответствует запросу, весь трафик направляется в бэкенд по умолчанию.
tls
IngressTLS array
tls представляет конфигурацию TLS. В настоящее время Ingress поддерживает только один порт TLS — 443. Если несколько элементов этого списка указывают разные хосты, они будут мультиплексироваться через один и тот же порт в соответствии с именем хоста, указанным в расширении TLS SNI, если контроллер Ingress, обслуживающий Ingress, поддерживает SNI.

IngressStatus

IngressStatus описывает текущее состояние Ingress.

Поле Описание
loadBalancer
IngressLoadBalancerStatus
loadBalancer содержит текущее состояние балансировщика нагрузки.

IngressList

IngressList — это коллекция объектов Ingress.

Поле Описание
apiVersion
string
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее представление и могут отклонять нераспознанные значения. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
items *
Ingress array
items — список объектов Ingress.
kind
string
Kind — строковое значение, представляющее ресурс REST, который описывает этот объект. Серверы могут определять его по конечной точке, на которую клиент отправляет запросы. Не может быть обновлено. В формате CamelCase. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
ListMeta
Стандартные метаданные объекта. Подробнее: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

HTTPIngressPath

HTTPIngressPath связывает путь с бэкендом. Входящие URL-адреса, соответствующие этому пути, перенаправляются в бэкенд.

Поле Описание
backend *
IngressBackend
backend определяет конечную точку сервиса, на которую будет перенаправляться трафик.
path
string
path сопоставляется с путём входящего запроса. В настоящее время он может содержать символы, недопустимые в обычной части «пути» URL, определённой RFC 3986. Пути должны начинаться с «/» и быть указаны при использовании PathType со значением «Exact» или «Prefix».
pathType *
string
pathType определяет способ сопоставления путей. PathType может принимать одно из следующих значений: * Exact: точное совпадение с путём URL. * Prefix: совпадение по префиксу пути URL, разделённому символом «/». Сопоставление выполняется поэлементно. Элемент пути — это одна из меток в пути, разделённом символом «/». Запрос соответствует пути p, если каждый элемент пути p является префиксом соответствующего элемента пути запроса. Обратите внимание: если последний элемент пути является подстрокой последнего элемента пути запроса, совпадения нет (например, /foo/bar соответствует /foo/bar/baz, но не соответствует /foo/barbaz). * ImplementationSpecific: способ сопоставления путей определяется IngressClass. Реализации могут рассматривать это значение как отдельный PathType или обрабатывать его так же, как типы путей Prefix или Exact. Реализации должны поддерживать все типы путей.

Возможные значения перечисления:
- `"Exact"` — точное совпадение с путём URL с учётом регистра.
- `"ImplementationSpecific"` — сопоставление определяется IngressClass. Реализации могут рассматривать это значение как отдельный PathType или обрабатывать его так же, как типы путей Prefix или Exact.
- `"Prefix"` — совпадение по префиксу пути URL, разделённому символом «/». Сопоставление выполняется с учётом регистра и поэлементно. Элемент пути — это одна из меток в пути, разделённом символом «/». Запрос соответствует пути p, если каждый элемент пути p является префиксом соответствующего элемента пути запроса. Обратите внимание: если последний элемент пути является подстрокой последнего элемента пути запроса, совпадения нет (например, /foo/bar соответствует /foo/bar/baz, но не соответствует /foo/barbaz). Если в спецификации Ingress существует несколько совпадающих путей, приоритет имеет самый длинный совпадающий путь. Примеры: - /foo/bar не соответствует запросам к /foo/barbaz - /foo/bar соответствует запросам к /foo/bar и /foo/bar/baz - /foo и /foo/ соответствуют запросам к /foo и /foo/. Если в спецификации Ingress указаны оба пути, приоритет имеет самый длинный совпадающий путь (/foo/).

HTTPIngressRuleValue

HTTPIngressRuleValue — это список селекторов HTTP, указывающих на бэкенды. В примере: http://<host>/<path>?<searchpart> -> backend, где части URL соответствуют RFC 3986, этот ресурс будет использоваться для сопоставления всего, что находится после последнего «/» и перед первым «?» или «#».

Поле Описание
paths *
HTTPIngressPath array
paths — набор путей, направляющих запросы к бэкендам.

IngressBackend

IngressBackend описывает все конечные точки для заданного сервиса и порта.

Поле Описание
resource
TypedLocalObjectReference
resource — это ObjectRef, указывающий на другой ресурс Kubernetes в пространстве имён объекта Ingress. Если указан resource, указывать service.Name и service.Port нельзя. Это взаимоисключающая настройка по отношению к «Service».
service
IngressServiceBackend
service ссылается на сервис, используемый в качестве бэкенда. Это взаимоисключающая настройка по отношению к «Resource».

IngressLoadBalancerIngress

IngressLoadBalancerIngress представляет состояние точки входа балансировщика нагрузки.

Поле Описание
hostname
string
hostname задаётся для точек входа балансировщика нагрузки, использующих DNS.
ip
string
ip задаётся для точек входа балансировщика нагрузки, использующих IP-адреса.
ports
IngressPortStatus array
ports содержит сведения о портах, открытых этим LoadBalancer.

IngressLoadBalancerStatus

IngressLoadBalancerStatus представляет состояние балансировщика нагрузки.

Поле Описание
ingress
IngressLoadBalancerIngress array
ingress — список точек входа балансировщика нагрузки.

IngressPortStatus

IngressPortStatus представляет состояние ошибки порта сервиса

Поле Описание
error
string
error используется для записи проблемы с портом сервиса. Формат ошибки должен соответствовать следующим правилам: - встроенные значения ошибок должны быть указаны в этом файле и иметь имена в формате CamelCase; - значения ошибок, специфичные для поставщика облачных услуг, должны иметь имена в формате foo.example.com/CamelCase.
port *
integer
port — номер порта точки входа.
protocol *
string
protocol — протокол порта точки входа. Поддерживаются следующие значения: «TCP», «UDP», «SCTP»

Возможные значения перечисления:
- `"SCTP"` — протокол SCTP.
- `"TCP"` — протокол TCP.
- `"UDP"` — протокол UDP.

IngressRule

IngressRule представляет правила, сопоставляющие пути для указанного хоста с соответствующими сервисами-бэкендами. Входящие запросы сначала проверяются на соответствие хосту, затем направляются в бэкенд, связанный с соответствующим IngressRuleValue.

Поле Описание
host
string
host — полное доменное имя сетевого хоста, определённое RFC 3986. Обратите внимание на следующие отличия от части «host» URI, определённой RFC 3986: 1. IP-адреса не допускаются. В настоящее время IngressRuleValue может применяться только к IP-адресу, указанному в Spec родительского Ingress. 2. Разделитель «:» не учитывается, поскольку порты не допускаются. В настоящее время порт Ingress неявно равен :80 для http и :443 для https. В будущем оба значения могут измениться. Входящие запросы проверяются на соответствие хосту перед IngressRuleValue. Если хост не указан, Ingress направляет весь трафик на основе заданного IngressRuleValue. host может быть «точным» — доменным именем без завершающей точки сетевого хоста (например, «foo.bar.com») — или «шаблонным», то есть доменным именем с одной меткой-шаблоном в начале (например, «*.foo.com»). Символ подстановки '\*' должен находиться отдельно в первой DNS-метке и соответствует только одной метке. Нельзя указывать метку-шаблон отдельно (например, Host == "*"). Запросы сопоставляются с полем Host следующим образом: 1. Если host точный, запрос соответствует этому правилу, если заголовок http host совпадает с Host. 2. Если host является шаблонным, запрос соответствует этому правилу, если заголовок http host равен суффиксу шаблонного правила (без первой метки).
http
HTTPIngressRuleValue

IngressServiceBackend

IngressServiceBackend ссылается на сервис Kubernetes в качестве бэкенда.

Поле Описание
name *
string
name — имя указанного сервиса. Сервис должен существовать в том же пространстве имён, что и объект Ingress.
port
ServiceBackendPort
port — порт указанного сервиса. Для IngressServiceBackend необходимо указать имя или номер порта.

IngressTLS

IngressTLS описывает безопасность транспортного уровня, связанную с Ingress.

Поле Описание
hosts
string array
hosts — список хостов, включённых в сертификат TLS. Значения в этом списке должны совпадать с именами, используемыми в tlsSecret. Если значение не указано, по умолчанию используется настройка шаблонного хоста контроллера балансировщика нагрузки, обслуживающего этот Ingress.
secretName
string
secretName — имя секрета, используемого для завершения TLS-трафика на порту 443. Это поле необязательно, чтобы разрешить маршрутизацию TLS только на основе имени хоста SNI. Если хост SNI в прослушивателе конфликтует с полем заголовка «Host», используемым IngressRule, для завершения соединения используется хост SNI, а значение заголовка «Host» — для маршрутизации.

ServiceBackendPort

ServiceBackendPort — это используемый порт сервиса.

Поле Описание
name
string
name — имя порта в Service. Эта настройка взаимоисключающая с «Number».
number
integer
number — числовой номер порта (например, 80) в Service. Эта настройка взаимоисключающая с «Name».

© 2026 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2026 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/networking/ingress-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API