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)
Атомарно: будет заменено во время слияния
rules — это список правил хоста, используемых для настройки 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), обязательно
Атомарно: будет заменено во время слияния
paths — это коллекция путей, которые сопоставляют запросы с бэкендами.
HTTPIngressPath сопоставляет путь с бэкэндом. Входящие URL, соответствующие пути, передаются бэкенду.
-
rules.http.paths.backend (IngressBackend), обязательно
backend определяет ссылку на конечную точку сервиса, на которую будет перенаправлен трафик.
-
rules.http.paths.pathType (строка), обязательно
pathType определяет интерпретацию сопоставления пути. PathType может иметь одно из следующих значений: * Exact: Сопоставляет URL-путь точно. * Prefix: Сопоставляет по префиксу URL-пути, разделённому '/'. Сопоставление выполняется по элементам пути по одному элементу. Элемент пути относится к списку меток в пути, разделённых символом '/'. Запрос соответствует пути p, если каждый p является префиксом пути запроса на уровне элементов. Обратите внимание, что если последний элемент пути является подстрокой последнего элемента пути запроса, это не соответствует (например, /foo/bar соответствует /foo/bar/baz, но не соответствует /foo/barbaz).
- ImplementationSpecific: Интерпретация сопоставления пути зависит от IngressClass. Реализации могут рассматривать это как отдельный PathType или обрабатывать его так же, как Prefix или Exact path types. Реализации должны поддерживать все типы путей.
-
rules.http.paths.path (строка)
path сопоставляется с путём входящего запроса. В настоящее время он может содержать символы, запрещённые в обычной части «пути» URL, как определено в RFC 3986. Пути должны начинаться с '/' и должны быть присутствовать при использовании PathType со значением «Exact» или «Prefix».
-
-
-
-
tls ([]IngressTLS)
Атомарно: будет заменено во время слияния
tls представляет конфигурацию TLS. В настоящее время Ingress поддерживает только один порт TLS, 443. Если несколько элементов этого списка указывают разные хосты, они будут мультиплексированы на одном порту в соответствии с именем хоста, указанным через расширение SNI TLS, если контроллер ingress, обрабатывающий ingress, поддерживает SNI.
IngressTLS описывает безопасность транспортного уровня, связанную с ingress.
-
tls.hosts ([]строка)
Атомарно: будет заменено во время слияния
hosts — это список хостов, включённых в сертификат TLS. Значения в этом списке должны соответствовать имени/именам, используемым в tlsSecret. По умолчанию используется подстановочное значение хоста для контроллера балансировщика нагрузки, выполняющего этот 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 ссылается на сервис в качестве бэкенда. Это взаимоисключающее значение с «Resource».
IngressServiceBackend ссылается на Kubernetes-сервис в качестве бэкенда.
-
service.name (строка), обязательно
name — это указанный сервис. Сервис должен существовать в том же пространстве имён, что и объект Ingress.
-
service.port (ServiceBackendPort)
порт указанного сервиса. Для IngressServiceBackend требуется имя порта или номер порта.
ServiceBackendPort — это порт сервиса, на который ссылаются.
-
service.port.name (строка)
name — это имя порта на сервисе. Это взаимоисключающее значение с «Number».
-
service.port.number (int32)
number — это числовой номер порта (например, 80) на сервисе. Это взаимоисключающее значение с «Name».
-
-
IngressStatus
IngressStatus описывает текущее состояние Ingress.
-
loadBalancer (IngressLoadBalancerStatus)
loadBalancer содержит текущее состояние балансировщика нагрузки.
IngressLoadBalancerStatus представляет состояние балансировщика нагрузки.
-
loadBalancer.ingress ([]IngressLoadBalancerIngress)
ingress — список, содержащий точки входа для балансировщика нагрузки.
IngressLoadBalancerIngress представляет состояние точки входа балансировщика нагрузки.
-
loadBalancer.ingress.hostname (string)
hostname устанавливается для точек входа балансировщика нагрузки, основанных на DNS.
-
loadBalancer.ingress.ip (string)
ip устанавливается для точек входа балансировщика нагрузки, основанных на IP.
-
loadBalancer.ingress.ports ([]IngressPortStatus)
Атомарно: будет заменено во время слияния
ports предоставляет информацию о портах, экспонированных этим балансировщиком нагрузки.
IngressPortStatus представляет состояние ошибки порта сервиса
-
loadBalancer.ingress.ports.port (int32), required
port — номер порта точки входа.
-
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-28.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/ingress-v1/