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. Соответствующий IngressClass определяет, какой контроллер будет реализовывать ресурс. Это заменяет устаревшее
kubernetes.io/ingress.classаннотацию. Для обратной совместимости, когда эта аннотация установлена, ей должно отдаваться предпочтение перед этим полем. Контроллер может выдать предупреждение, если значения поля и аннотации отличаются. Реализации этого API должны игнорировать Ingress без указанного класса. Ресурс IngressClass может быть помечен как default, что может использоваться для установки значения по умолчанию для этого поля. Для получения дополнительной информации ознакомьтесь с документацией по IngressClass. -
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), обязательное поле
Атомарно: будет заменено во время слияния
Коллекция путей, сопоставляющих запросы с бэкендами.
HTTPIngressPath сопоставляет путь с бэкендом. Входящие URL, соответствующие пути, передаются бэкенду.
-
rules.http.paths.backend (IngressBackend), обязательное поле
Backend определяет ссылку на конечную точку сервиса, на которую будет перенаправлен трафик.
-
rules.http.paths.pathType (строка), обязательное поле
PathType определяет интерпретацию сопоставления Path. PathType может принимать одно из следующих значений: * Exact: Сопоставляет URL-путь точно. * Prefix: Сопоставляет на основе префикса URL-пути, разделенного '/'. Сопоставление выполняется поэлементно. Элемент пути — это список меток в пути, разделенных символом '/'. Запрос соответствует пути p, если каждый p является элементом-префиксом p пути запроса. Обратите внимание, что если последний элемент пути является подстрокой последнего элемента пути запроса, это не соответствует (например, /foo/bar соответствует /foo/bar/baz, но не соответствует /foo/barbaz).
- ImplementationSpecific: Интерпретация сопоставления Path зависит от IngressClass. Реализации могут обрабатывать это как отдельный PathType или обрабатывать его так же, как типы путей Prefix или Exact. Реализации обязаны поддерживать все типы путей.
-
rules.http.paths.path (строка)
Path сопоставляется с путём входящего запроса. В настоящее время он может содержать символы, запрещённые в традиционной части «пути» 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 (строка)
SecretName — имя секрета, используемого для завершения TLS-трафика на порту 443. Поле оставлено необязательным, чтобы разрешить маршрутизацию TLS на основе имени хоста SNI. Если имя хоста SNI в слушателе конфликтует с полем «Host», используемым IngressRule, имя хоста SNI используется для завершения, а значение заголовка Host используется для маршрутизации.
-
IngressBackend
IngressBackend описывает все конечные точки для данного сервиса и порта.
-
resource (TypedLocalObjectReference)
Resource — ссылка на другой ресурс Kubernetes в пространстве имён объекта Ingress. Если ресурс указан, service.Name и service.Port не должны быть указаны. Это взаимоисключающее значение с «Service».
-
service (IngressServiceBackend)
Service ссылается на сервис в качестве бэкенда. Это взаимоисключающее значение с «Resource».
IngressServiceBackend ссылается на Kubernetes Service в качестве бэкенда.
-
service.name (строка), обязательно
Name — имя ссылаемого сервиса. Сервис должен существовать в том же пространстве имён, что и объект Ingress.
-
service.port (ServiceBackendPort)
Порт ссылаемого сервиса. Имя порта или номер порта необходимы для IngressServiceBackend.
ServiceBackendPort — ссылаемый порт сервиса.
-
service.port.name (строка)
Name — имя порта на Service. Это взаимоисключающее значение с «Number».
-
service.port.number (int32)
Number — числовой номер порта (например, 80) на Service. Это взаимоисключающее значение с «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-24.docs.kubernetes.io/docs/reference/kubernetes-api/service-resources/ingress-v1/