Могу ли я использовать Envoy с Linkerd?
Большинство сервисных сеток используют Envoy в качестве дополнительного прокси, но, похоже, это не вариант по умолчанию для Linkerd. Мы уже используем Envoy в качестве входящего трафика и на самом деле не хотим добавлять новый прокси в микс. Можем ли мы использовать Linkerd с Envoy?
1 ответ
Я слышал, что этот вопрос задавали несколько раз, и я думаю, что здесь есть два вопроса:
- Можно ли использовать Linkerd с Envoy в качестве контроллера Ingress?
- Поддерживает ли уровень управления Linkerd использование Envoy в качестве прокси уровня данных?
Ответ на первый вопрос заключается в том, что вы определенно можете использовать Linkerd с Envoy в качестве контроллера Ingress. Ambassador и Contour — два примера проектов с открытым исходным кодом, которые используют Envoy в качестве прокси для маршрутизации входящего трафика.
Для интеграции Linkerd с любым контроллером входящего трафика требуется определенная конфигурация, специфичная для каждого из контроллеров входящего трафика. Вы также хотите убедиться, что под, который запускает контейнер контроллера входящего трафика, внедряется с прокси-сервером Linkerd, чтобы трафик между контроллером входящего трафика и рабочими нагрузками службы был частью сервисной сетки Linkerd.
Ответ на второй вопрос, который, я думаю, вы задаете, заключается в том, что Linkerd предоставляет свой собственный прокси из коробки с именем linkerd2-proxy , специально созданный для управления рабочими нагрузками микросервисов в Kubernetes. Плоскость управления Linkerd предоставляет конечные точки API и предназначена для работы с linkerd2-proxy, поэтому Envoy не будет работать сразу после установки.
При этом Linkerd — это проект с открытым исходным кодом, и теоретически вы можете написать адаптер между компонентами плоскости управления Linkerd и API Envoy XSD. Навскидку, я не могу придумать распространенного варианта использования, когда усилия по созданию этого адаптера принесли бы дополнительную пользу Linkerd.
Есть отличный пост в блоге , написанный Уильямом Морганом, в котором описывается, почему команда Linkerd решила написать свой собственный прокси вместо использования Envoy. Суть в том, что Envoy — это прокси общего назначения, тогда как linkerd2-proxy специально создан для обработки трафика микросервисов наиболее эффективным и ненавязчивым способом.