TGViewer
Azalio_tech Azalio_tech @azalio_tech · 658 subscribers
Post #67 1.04K
Как мы выбирали ингресс для платформы

Как некоторые тут знают, я занимаюсь https://yandex.cloud/ru/services/stackland, он-прем копией Яндекс Облака. Талос, кубер, операторы, всё что я люблю.

В самом начале мы взяли ingress-nginx - на тот момент реально самый популярный контроллер, без вариантов.

А потом ingress-nginx заархивировали. Репа в архиве с конца марта, официальный преемник InGate умер, не дожив до релиза. А у нас на нём вся платформа: IAM, console, docs, grafana, OpenBao - всё через один ingress-класс.

Че делать? Ну ясно че - искать замену.

Наивный план звучит так: «быстро выбрать новый контроллер и накатить». Ингрессов же вагон, есть проверенные старички. Бери да ставь. Только это выбор не с того конца.
Дольше всего у нас заняли не контроллеры, а инварианты - список того, что платформа НЕ имеет права сломать. Пока его нет, любой выбор - вкусовщина: "этот покрасивее, у того CRD удобнее". А инвариант - это не "не красиво", это конкретная строка. Например: backend TLS до апстрима должен жить. У нас IAM отдаёт HTTPS на 8080, gRPC-сервис - GRPCS на 4292, OpenBao ходит по TLS. Убери это - и придётся рефакторить сами сервисы, чего на переезде никто подписывать не собирался.

Выписываешь такие строчки - и поле кандидатов схлопывается само. Было 9+ штук. После прогона каждой строки совместимости против инвариантов осталось два живых.

Само согласование списка с коллегами и продуктом заняло несколько дней. Зато дальше выбор перестал быть спором о вкусах.

Проверять, что контроллеры реально умеют по нашим требованиям, я ходил с LLM - вполне приземлённо. Скачивал исходники и просил пройтись: поддерживает фичу или нет.

Так отвалился Cilium. По документации он выглядит заманчиво: CNI, Ingress, Gateway API, Envoy внутри. Но в исходниках видно важное отличие: для kind: Ingress он не превращает наш nginx-style backend TLS в TLS origination к апстриму. Эта логика у него живёт в Gateway API path через BackendTLSPolicy. А наш контракт сейчас - именно Ingress. Значит, миграция превращалась бы не в замену контроллера, а в переписывание маршрутов и части сервисной модели.
В документации этого нет. Видно только в исходниках. Сам бы я это выкапывал полдня, а тут получил ответ за минуты. Тот самый инвариант про backend TLS - Cilium на нём и сдох.

Важное: LLM ничего за меня не выбирала. Это был инструмент аудита, решение всё равно сверялось с инвариантами.

Сначала меня тянуло к nginx-ingress от F5 - он ближе всего к nginx-семантике, удобный мост, да и знаю я его. С Envoy я знаком с 2021-го и говна с ним поел прилично, так что в его сторону идти не хотелось. Но выбрали в итоге Contour - а он как раз на Envoy. Причина простая: у nginx-ingress Gateway идёт отдельным продуктом, не в поставке. А переходить на Gateway API всё равно придётся, и эту дверь надо открыть клиентам заранее.

И да, предвижу вопрос: а чего Ingress, а не сразу Gateway API? Во-первых, Ingress не задеприкейчен. Во-вторых, нам надо не за модой бежать, а делать так, чтобы Stackland было удобно использовать. Gateway API мы дадим как путь вперёд, а не как способ сломать то, что у людей уже работает.

Вывод, который я предлагаю забрать вам: если выбор инфры начинается с вопроса "какой контроллер взять" - вы уже выбираете не с того конца. Контроллер это последняя миля. Сначала разберитесь, что нельзя сломать.

А вы что выбрали в качестве замены?

#kubernetes #k8s #ingress #networking
yandex.cloud Yandex Cloud Stackland – Платформа контейнеризации с интегрированными PaaS‑сервисами Готовая инфраструктурная платформа Stackland со встроенными управляемым сервисами Yandex Cloud для развёртывания в закрытом контуре вашей компании. Объединяет все необходимые компоненты для централизованного управления микросервисными и ИИ‑приложениями.
  • 👍 18
  • ❤ 2
More from @azalio_tech
  1. Sep 22, 2026Post #90
  2. Sep 7, 2026А хорошо бы запускать спокойно батчевые задачи на всех нодах кубера и не беспокоиться за S…
  3. Aug 14, 2026Показать что ты Лев Толстой, а не толстый лев можно тут: https://aot-kuberconf.ru/cfp (Отк…
  4. Aug 1, 2026У меня синдром дефицита внимания. Это когда внимание не держится на одном предмете дольше…
  5. Jul 19, 2026В последнее время уж больно часто стало появляться новостей про фотонику. Решил чуть копну…
  6. Jul 16, 2026Как некоторые тут знают, map-framework изначально писался под claude code. Что же делать е…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →