Требования к приложению
Многие 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.
WARNINGKiali зависит от корректности этих меток для нескольких функций (особенно метки 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.
Ссылки
- Application Requirements (документация Istio)
- Labels and resource names (документация Kiali)