Ingress
apiVersion: networking.k8s.io/v1
import "k8s.io/api/networking/v1"
Ingress
Ingress — это набор правил, позволяющий входящим подключениям достигать конечных точек, определённых бэкендом. Ingress можно настроить для предоставления внешне доступных URL-адресов для сервисов, балансировки нагрузки, завершения SSL, предоставления виртуального хостинга по имени и т. д.
-
apiVersion: networking.k8s.io/v1
-
kind: Ingress
-
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 — бэкенд, который должен обрабатывать запросы, не соответствующие ни одному правилу. Если правила не указаны, DefaultBackend должен быть указан. Если DefaultBackend не установлен, обработка запросов, не соответствующих ни одному из правил, будет выполняться контроллером Ingress.
-
ingressClassName (строка)
IngressClassName — имя ресурса кластера IngressClass. Реализации контроллеров Ingress используют это поле для определения, должны ли они обслуживать этот ресурс Ingress, посредством транзитивного подключения (контроллер -> IngressClass -> ресурс Ingress). Хотя аннотация
kubernetes.io/ingress.class(простое имя константы) формально никогда не определялась, она широко поддерживалась контроллерами Ingress для создания прямой связи между контроллером Ingress и ресурсами Ingress. Новые ресурсы Ingress должны использовать поле. Однако, даже если аннотация официально устарела, по причинам обратной совместимости контроллеры Ingress должны по-прежнему учитывать эту аннотацию, если она присутствует. -
rules ([]IngressRule)
Атомарно: будет заменено при слиянии
Список правил хоста, используемых для настройки Ingress. Если не указано или ни одно правило не соответствует, весь трафик отправляется в бэкенд по умолчанию.
IngressRule представляет собой правила сопоставления путей под указанным хостом с соответствующими сервисами бэкенда. Входящие запросы сначала проверяются на соответствие хосту, а затем маршрутизируются к бэкенду, связанному с соответствующим IngressRuleValue.
-
rules.host (строка)
Host — полностью квалифицированное доменное имя сетевого хоста, как определено в RFC 3986. Обратите внимание на следующие отклонения от части "host" URI, как определено в RFC 3986: 1. IP-адреса запрещены. В настоящее время IngressRuleValue может применяться только к IP-адресу в Spec родительского Ingress. 2. Разделитель
:не соблюдается, так как порты не разрешены. В настоящее время порт Ingress подразумевается как :80 для http и :443 для https. В будущем это может измениться. Входящие запросы сопоставляются с полем Host перед IngressRuleValue. Если хост не указан, Ingress маршрутизирует весь трафик на основе указанного IngressRuleValue.Host может быть "точным", что является доменным именем без завершающей точки сетевого хоста (например, "foo.bar.com") или "подстановочным символом", что является доменным именем, опережаемым одной меткой подстановочного знака (например, ".foo.com"). Символ подстановочного знака '*' должен стоять сам по себе в качестве первой метки DNS и соответствует только одной метке. У вас не может быть метки подстановочного знака сама по себе (например, Host == "*"). Запросы будут сопоставляться с полем Host следующим образом: 1. Если Host точный, запрос соответствует этому правилу, если заголовок http host равен Host. 2. Если Host подстановочный символ, то запрос соответствует этому правилу, если заголовок http host равен суффиксу (удаляя первую метку) правила подстановочного знака.
-
rules.http (HTTPIngressRuleValue)
HTTPIngressRuleValue — это список http селекторов, указывающих на бэкенды. В примере: http://
/ ? -> backend, где части url соответствуют RFC 3986, этот ресурс будет использоваться для сопоставления со всем, что находится после последнего '/' и перед первым '?' или '#'. -
rules.http.paths ([]HTTPIngressPath), required
Атомарно: будет заменено при слиянии
Коллекция путей, которые сопоставляют запросы бэкендам.
HTTPIngressPath сопоставляет путь с бэкендом. Входящие URL-адреса, соответствующие пути, передаются бэкенду.
-
rules.http.paths.backend (IngressBackend), required
Backend определяет целевой конечный пункт сервиса, в который будет перенаправлен трафик.
-
rules.http.paths.pathType (строка), required
PathType определяет интерпретацию сопоставления Path. PathType может принимать следующие значения:
-
Exact: Соответствие точно пути URL.
-
Prefix: Сопоставление по префиксу пути URL, разделённому '/'. Сопоставление выполняется по элементам пути поочерёдно. Элемент пути — это список меток в пути, разделённых символом '/'. Запрос соответствует пути p, если каждый p является префиксом p пути запроса в соответствии с элементами. Обратите внимание, что если последний элемент пути является подстрокой последнего элемента пути запроса, это не совпадение (например, /foo/bar соответствует /foo/bar/baz, но не соответствует /foo/barbaz).
-
ImplementationSpecific: Интерпретация сопоставления Path зависит от IngressClass. Реализации могут рассматривать это как отдельный PathType или рассматривать его идентично PathType Prefix или Exact. Реализации обязаны поддерживать все типы путей.
-
-
rules.http.paths.path (строка)
Path сопоставляется с путем входящего запроса. В настоящее время он может содержать символы, запрещённые в обычной части "path" URL, как определено в RFC 3986. Пути должны начинаться с '/' и должны быть указаны при использовании PathType со значением "Exact" или "Prefix".
-
-
-
-
tls ([]IngressTLS)
Атомарно: будет заменено при слиянии
Конфигурация TLS. В настоящее время Ingress поддерживает только один порт TLS, 443. Если несколько членов этого списка указывают разные хосты, они будут мультиплексированы на одном порту в соответствии с именем хоста, указанным через расширение SNI TLS, если контроллер Ingress, выполняющий Ingress, поддерживает SNI.
IngressTLS описывает транспортную безопасность, связанную с Ingress.
-
tls.hosts ([]строка)
Атомарно: будет заменено при слиянии
Hosts — список хостов, включённых в сертификат TLS. Значения в этом списке должны соответствовать имени(ям), используемым в tlsSecret. По умолчанию используется значение wildcard host для контроллера loadbalancer, выполняющего этот Ingress, если оно не указано.
-
tls.secretName (строка)
SecretName — имя секрета, используемого для завершения TLS-трафика на порту 443. Поле оставлено необязательным, чтобы разрешить маршрутизацию TLS на основе имени хоста SNI. Если имя хоста SNI в слушателе конфликтует с полем "Host", используемым IngressRule, имя хоста SNI используется для завершения, а значение заголовка Host используется для маршрутизации.
-
IngressBackend
IngressBackend описывает все конечные точки для данного сервиса и порта.
-
resource (TypedLocalObjectReference)
Resource — ObjectRef к другому ресурсу Kubernetes в пространстве имён объекта Ingress. Если resource указан, service.Name и service.Port не должны быть указаны. Это взаимно исключающие настройки с "Service".
-
service (IngressServiceBackend)
Service ссылается на Service в качестве бэкенда. Это взаимно исключающие настройки с "Resource".
IngressServiceBackend ссылается на Kubernetes Service в качестве бэкенда.
-
service.name (строка), required
Name — имя целевого сервиса. Сервис должен существовать в том же пространстве имён, что и объект Ingress.
-
service.port (ServiceBackendPort)
Порт целевого сервиса. Для IngressServiceBackend требуется имя порта или номер порта.
ServiceBackendPort — порт сервиса, на который ссылаются.
-
service.port.name (строка)
Name — имя порта на сервисе. Это взаимно исключающие настройки с "Number".
-
service.port.number (int32)
Number — числовой номер порта (например, 80) на сервисе. Это взаимно исключающие настройки с "Name".
-
-
IngressStatus
IngressStatus описывает текущее состояние Ingress.
-
loadBalancer (LoadBalancerStatus)
LoadBalancer содержит текущий статус балансировщика нагрузки.
LoadBalancerStatus представляет статус балансировщика нагрузки.
-
loadBalancer.ingress ([]LoadBalancerIngress)
Ingress — список, содержащий точки входа для балансировщика нагрузки. Трафик, предназначенный для службы, должен направляться в эти точки входа.
LoadBalancerIngress представляет состояние точки входа балансировщика нагрузки: трафик, предназначенный для службы, должен отправляться в точку входа.
-
loadBalancer.ingress.hostname (строка)
Hostname задаётся для точек входа балансировщика нагрузки, основанных на DNS (обычно балансировщики AWS).
-
loadBalancer.ingress.ip (строка)
IP задаётся для точек входа балансировщика нагрузки, основанных на IP (обычно балансировщики GCE или OpenStack).
-
loadBalancer.ingress.ports ([]PortStatus)
Атомарно: будет заменено во время слияния
Ports — список записей портов службы. Если используется, каждый порт, определённый в службе, должен иметь запись в нём.
**
-
loadBalancer.ingress.ports.port (int32), обязательное поле
Port — номер порта порта службы, состояние которого записывается здесь.
-
loadBalancer.ingress.ports.protocol (строка), обязательное поле
Protocol — протокол порта службы, состояние которого записывается здесь. Поддерживаемые значения: "TCP", "UDP", "SCTP"
-
loadBalancer.ingress.ports.error (строка)
Error — для записи проблемы с портом службы. Формат ошибки должен соответствовать следующим правилам: - встроенные значения ошибок должны быть указаны в этом файле и использовать названия CamelCase; - специфичные для облачного провайдера значения ошибок должны иметь имена, соответствующие формату foo.example.com/CamelCase.
-
-
-
Список Ingress
IngressList — коллекция Ingress.
-
items ([]Ingress), обязательное поле
Items — список Ingress.
-
apiVersion (строка)
APIVersion определяет версионированную схему этого представления объекта. Серверы должны преобразовывать распознанные схемы в последнее внутреннее значение и могут отклонять нераспознанные значения. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
-
kind (строка)
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
© 2022 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2022 The Linux Foundation ®. All rights reserved.
https://v1-25.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/ingress-v1/