Spec-Zone.ru › Kubernetes

Ingress

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)

    Атомарный: будет заменён во время слияния

    rules — это список правил хоста, используемых для настройки Ingress. Если не указано или ни одно правило не соответствует, весь трафик отправляется на бэкенд по умолчанию.

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

    • rules.host (string)

      host — полное доменное имя сетевого хоста, как определено в RFC 3986. Обратите внимание на следующие отклонения от части «host» URI, как определено в RFC 3986: 1. IP-адреса не допускаются. В настоящее время IngressRuleValue может применяться только к IP-адресу в Spec родительского Ingress. 2. Разделитель : не соблюдается, потому что порты не допускаются. В настоящее время порт Ingress неявно равен :80 для http и :443 для https. В будущем оба могут измениться. Входящие запросы сопоставляются с полем host перед IngressRuleValue. Если host не указан, 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

        Атомарный: будет заменён во время слияния

        paths — это набор путей, которые сопоставляют запросы с бэкендами.

        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 или рассматривать его так же, как типы Path типа Prefix или Exact. Реализации должны поддерживать все типы путей.
        • rules.http.paths.path (string)

          path сопоставляется с путем входящего запроса. В настоящее время он может содержать символы, запрещённые в обычной части «пути» URL, как определено в RFC 3986. Пути должны начинаться с '/' и должны быть присутствовать при использовании PathType со значением "Exact" или "Prefix".

  • tls ([]IngressTLS)

    Атомарный: будет заменён во время слияния

    tls представляет конфигурацию TLS. В настоящее время Ingress поддерживает только один порт TLS, 443. Если несколько элементов этого списка указывают разные хосты, они будут мультиплексированы на одном порту в соответствии с именем хоста, указанным в расширении TLS SNI, если контроллер Ingress, выполняющий Ingress, поддерживает SNI.

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

    • tls.hosts ([]string)

      Атомарный: будет заменён во время слияния

      hosts — это список хостов, включённых в сертификат TLS. Значения в этом списке должны соответствовать имени/именам, используемым в tlsSecret. По умолчанию устанавливается значение подстановочного хоста для контроллера балансировки нагрузки, выполняющего этот Ingress, если не указано иное.

    • tls.secretName (string)

      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 (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)

        hostname устанавливается для точек входа балансировщика нагрузки, основанных на DNS.

      • loadBalancer.ingress.ip (string)

        ip устанавливается для точек входа балансировщика нагрузки, основанных на IP.

      • loadBalancer.ingress.ports ([]IngressPortStatus)

        Атомарно: будет заменено при слиянии

        ports содержит информацию о портах, экспонированных этим балансировщиком нагрузки.

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

        • loadBalancer.ingress.ports.port (int32), обязательно

          port — номер порта точки входа.

        • loadBalancer.ingress.ports.protocol (string), обязательно

          protocol — протокол порта точки входа. Поддерживаемые значения: «TCP», «UDP», «SCTP»

        • loadBalancer.ingress.ports.error (string)

          error — запись о проблеме с портом службы. Формат ошибки должен соответствовать следующим правилам: — встроенные значения ошибок должны быть указаны в этом файле и использовать названия с CamelCase; — специфичные для поставщика облачных услуг значения ошибок должны иметь имена, соответствующие формату foo.example.com/CamelCase.

IngressList

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

  • items ([]Ingress), обязательно

    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

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

Spec-Zone.ru

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