RSS Блог о Kubernetes
Подписаться
Прежде чем мигрировать: пять удивительных поведений Ingress-NGINX, которые вам нужно знать
Kubernetes прекратит поддержку Ingress-NGINX в марте 2026 года, и пользователям необходимо перейти на другие решения, такие как Gateway API. Ingress-NGINX имеет несколько неожиданных настроек по умолчанию и побочных эффектов, которые могут вызвать сбои, если не будут учтены во время миграции. Пост в блоге подчеркивает эти особенности, чтобы помочь пользователям безопасно мигрировать и принимать обоснованные решения о том, какие поведения сохранить. Одной из ключевых проблем является то, что Ingress-NGINX рассматривает шаблоны regex как префиксные и регистронезависимые совпадения, что может привести к неожиданному маршрутизацию. Gateway API, с другой стороны, использует реализацию специфического сопоставления regex, и пользователям необходимо проверить свою реализацию, чтобы подтвердить семантику сопоставления regex. Пост также обсуждает, как сохранить поведение Ingress-NGINX в Gateway API, включая использование сопоставлений HTTP-путей с типом RegularExpression и настройку перенаправлений с помощью фильтра перенаправления HTTP-запроса. Кроме того, пост отмечает, что Ingress-NGINX и NGINX Ingress - это два отдельных контроллера входящих данных, и пост обсуждает только Ingress-NGINX. Аннотация nginx.ingress.kubernetes.io/use-regex применяется ко всем путям хоста во всех входящих данных Ingress-NGINX, и аннотация nginx.ingress.kubernetes.io/rewrite-target бесшумно добавляет аннотацию nginx.ingress.kubernetes.io/use-regex, вместе со всеми ее побочными эффектами. Ingress-NGINX также перенаправляет запросы, не имеющие завершающей косой черты, на тот же путь с завершающей косой чертой, что может вызвать сбои, если не настроено явно в Gateway API. В целом, пост направлен на то, чтобы помочь пользователям понять особенности Ingress-NGINX и безопасно перейти на Gateway API. Пользователям необходимо быть осведомленными об этих поведениях и принять меры для их сохранения в Gateway API, чтобы избежать сбоев.