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 (string)
IngressClassName — имя кластерного ресурса IngressClass. Реализации контроллеров Ingress используют это поле для определения, нужно ли им обрабатывать этот ресурс Ingress, по транзитивному подключению (контроллер -> IngressClass -> ресурс Ingress). Хотя аннотация
kubernetes.io/ingress.class(простое имя константы) никогда формально не определялась, она широко поддерживалась контроллерами Ingress для создания прямой связи между контроллером Ingress и ресурсами Ingress. Новые ресурсы Ingress должны предпочитать использование этого поля. Однако, несмотря на то, что аннотация официально устарела, по причинам обратной совместимости контроллеры Ingress должны всё равно учитывать её, если она присутствует. -
rules ([]IngressRule)
Атомарный: будет заменён во время слияния
Список правил хоста, используемых для настройки Ingress. Если не указано или ни одно правило не соответствует, весь трафик отправляется в бэкенд по умолчанию.
IngressRule представляет собой правила, сопоставляющие пути под указанным хостом с соответствующими бэкенд-службами. Входящие запросы сначала проверяются на соответствие хосту, а затем маршрутизируются к бэкенду, связанному с соответствующим IngressRuleValue.
-
rules.host (string)
Host — полностью квалифицированное доменное имя сетевого хоста, как определено в RFC 3986. Обратите внимание на следующие отличия от части «хост» 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 (string), required
PathType определяет интерпретацию сопоставления пути. PathType может принимать следующие значения: * Exact: Сопоставляет URL-путь точно. * Prefix: Сопоставляет на основе префикса URL-пути, разделенного '/'. Сопоставление выполняется по элементам пути по одному. Элемент пути — это список меток в пути, разделенных символом '/'. Запрос соответствует пути p, если каждый p является элементом префикса p пути запроса. Обратите внимание, что если последняя метка пути является подстрокой последней метки пути запроса, это не соответствует (например, /foo/bar соответствует /foo/bar/baz, но не соответствует /foo/barbaz).
- ImplementationSpecific: Интерпретация сопоставления пути зависит от IngressClass. Реализации могут рассматривать это как отдельный PathType или рассматривать его так же, как Prefix или Exact типы пути. Реализации должны поддерживать все типы путей.
-
rules.http.paths.path (string)
Путь сопоставляется с путём входящего запроса. В настоящее время он может содержать символы, запрещённые в традиционной части «пути» URL, как определено в RFC 3986. Пути должны начинаться с '/' и должны быть указаны при использовании PathType со значением «Exact» или «Prefix».
-
-
-
-
tls ([]IngressTLS)
Атомарный: будет заменён во время слияния
Настройка TLS. В настоящее время Ingress поддерживает только один порт TLS, 443. Если несколько членов этого списка указывают разные хосты, они будут мультиплексированы на одном порту в соответствии с именем хоста, указанным с помощью расширения SNI TLS, если контроллер Ingress, выполняющий Ingress, поддерживает SNI.
IngressTLS описывает безопасность транспортного уровня, связанную с Ingress.
-
tls.hosts ([]string)
Атомарный: будет заменён во время слияния
Hosts — список хостов, включённых в сертификат TLS. Значения в этом списке должны соответствовать имени/именам, используемым в tlsSecret. По умолчанию используется значение wildcard хоста для контроллера балансировщика, выполняющего этот Ingress, если не указано иное.
-
tls.secretName (string)
SecretName — имя секрета, используемого для завершения TLS-трафика на порту 443. Поле оставлено необязательным для разрешения маршрутизации TLS на основе имени хоста SNI. Если имя хоста SNI в слушателе конфликтует с полем заголовка «Host», используемым IngressRule, имя хоста SNI используется для завершения, а значение заголовка «Host» используется для маршрутизации.
-
IngressBackend
IngressBackend описывает все конечные точки для данной службы и порта.
-
resource (TypedLocalObjectReference)
Resource — ObjectRef к другому Kubernetes ресурсу в пространстве имён объекта Ingress. Если ресурс указан, service.Name и service.Port не должны быть указаны. Это взаимоисключающее свойство с «Service».
-
service (IngressServiceBackend)
Service ссылается на Service в качестве бэкенда. Это взаимоисключающее свойство с «Resource».
IngressServiceBackend ссылается на Kubernetes Service в качестве бэкенда.
-
service.name (string), required
Name — имя ссылаемой службы. Служба должна существовать в том же пространстве имён, что и объект Ingress.
-
service.port (ServiceBackendPort)
Порт ссылаемой службы. Имя порта или номер порта необходимы для IngressServiceBackend.
ServiceBackendPort — это ссылаемый порт службы.
-
service.port.name (string)
Name — имя порта на Service. Это взаимоисключающее свойство с «Number».
-
service.port.number (int32)
Number — числовой номер порта (например, 80) на Service. Это взаимоисключающее свойство с «Name».
-
-
IngressStatus
IngressStatus описывает текущее состояние Ingress.
-
loadBalancer (IngressLoadBalancerStatus)
LoadBalancer содержит текущий статус балансировщика нагрузки.
IngressLoadBalancerStatus представляет статус балансировщика нагрузки.
-
loadBalancer.ingress ([]IngressLoadBalancerIngress)
Ingress — список, содержащий точки входа для балансировщика нагрузки.
IngressLoadBalancerIngress представляет статус точки входа балансировщика нагрузки.
-
loadBalancer.ingress.hostname (string)
Имя хоста устанавливается для точек входа балансировщика нагрузки, основанных на DNS.
-
loadBalancer.ingress.ip (string)
IP устанавливается для точек входа балансировщика нагрузки, основанных на IP.
-
loadBalancer.ingress.ports ([]IngressPortStatus)
Атомарно: будет заменено во время слияния
Ports предоставляет информацию о портах, экспонированных этим балансировщиком нагрузки.
IngressPortStatus представляет состояние ошибки порта службы
-
loadBalancer.ingress.ports.port (int32), required
Порт — номер порта точки входа.
-
loadBalancer.ingress.ports.protocol (string), required
Protocol — протокол порта точки входа. Допустимые значения: «TCP», «UDP», «SCTP»
-
loadBalancer.ingress.ports.error (string)
Error — регистрация проблемы с портом службы. Формат ошибки должен соответствовать следующим правилам: — встроенные значения ошибок должны быть указаны в этом файле, и они должны использовать CamelCase; — значения ошибок, специфичные для поставщика облачных услуг, должны иметь имена, соответствующие формату foo.example.com/CamelCase.
-
-
-
IngressList
IngressList — коллекция Ingress.
-
items ([]Ingress), required
Items — список Ingress.
-
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 (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-26.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/ingress-v1/