• Русский
  • Требования к приложению

    Многие Kubernetes-приложения могут быть развернуты в кластере с поддержкой Istio без каких-либо изменений. Однако модель сайдкара Istio накладывает некоторые особенности, которые следует учитывать при развертывании приложения с поддержкой Istio. В этом документе описаны эти особенности и конкретные требования для включения Istio.

    Содержание

    Требования к Pod

    Чтобы быть частью mesh, Kubernetes Pod должны соответствовать следующим требованиям:

    • UID приложений: Убедитесь, что ваши Pod не запускают приложения от имени пользователя с идентификатором пользователя (UID) 1337, так как 1337 зарезервирован для прокси-сайдкара.

    • Метки Pod: Рекомендуется явно указывать идентификатор приложения и версию с помощью меток Pod. Эти метки добавляют контекстную информацию к метрикам и телеметрии, которые собирает Istio. Каждое из этих значений считывается из нескольких меток в порядке убывания приоритета:

      • Имя приложения: service.istio.io/canonical-name, app.kubernetes.io/name или app.
      • Версия приложения: service.istio.io/canonical-revision, app.kubernetes.io/version или version.
      WARNING

      Kiali зависит от корректности этих меток для ряда функций (особенно метки Application name).

      В Istio возможно использовать другой набор меток, например app.kubernetes.io/name и app.kubernetes.io/version, однако необходимо настроить Kiali на используемые метки. По умолчанию Kiali использует рекомендуемые Istio метки app и version.

    • Именованные порты сервиса: Порты сервиса могут быть опционально именованы для явного указания протокола. Подробнее см. Protocol Selection. Если Pod принадлежит нескольким Kubernetes сервисам, сервисы не могут использовать один и тот же номер порта для разных протоколов, например HTTP и TCP.

    Порты, используемые Istio

    Следующие порты и протоколы используются прокси-сайдкаром Istio (Envoy).

    Чтобы избежать конфликтов портов с сайдкарами, приложения не должны использовать порты, занятые Envoy.

    ПортПротоколОписаниеТолько внутри Pod
    15000TCPАдминистративный порт Envoy (команды/диагностика)Да
    15001TCPИсходящий трафик EnvoyНет
    15002TCPПорт прослушивания для обнаружения сбоевДа
    15004HTTPОтладочный портДа
    15006TCPВходящий трафик EnvoyНет
    15008HTTP2Порт туннеля HBONE mTLSНет
    15020HTTPОбъединённая телеметрия Prometheus от Istio agent, Envoy и приложенияНет
    15021HTTPПроверки состоянияНет
    15053DNSDNS-порт, если включён захватДа
    15090HTTPТелеметрия Prometheus EnvoyНет

    Ссылки