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

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

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

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

    • UID приложений: Убедитесь, что ваши поды не запускают приложения от имени пользователя с идентификатором пользователя (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. Если под принадлежит нескольким 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Нет

    Ссылки