Как активатор Knative Serving перехватывает запросы на уменьшенные версии?

Как описано здесь, Knative's Activator получает и буферизует запросы. к неактивным ревизиям.

Как реализована эта маршрутизация? Все, что я вижу в пространстве имен своего приложения, - это запросы маршрутизации VirtualService к ревизиям, поэтому я не вижу, как трафик, входящий в сетку, перенаправляется на Активатор.

Версия Knative Servicing: 0.9.0


person dippynark    schedule 14.11.2019    source источник


Ответы (1)


Knative имеет новую концепцию (CRD), известную как бессерверная служба, которая создается для каждой Knative-службы.

Бессерверная служба создает две службы Kubernetes:

  • Частная служба, предназначенная для ваших модулей приложений. Это необходимо для обнаружения IP-адресов подов.
  • Общедоступная служба является целевой входным шлюзом, и в зависимости от режима, в котором она находится (подробнее об этом позже), она будет указывать на те же конечные точки, что и первая служба. или на конечные точки службы активатора.

Бессерверные режимы обслуживания

Бессерверные службы могут находиться в одном из следующих режимов:

  • Служить
  • Прокси

Режим обслуживания

Бессерверная служба находится в режиме обслуживания до тех пор, пока работают экземпляры подов вашего приложения. Таким образом, ваша общедоступная служба настроена с конечными точками из вашей частной службы, а это означает, что запросы, перенаправленные входным шлюзом, достигают вашего приложения, как показано на диаграмме ниже:

Режим обслуживания для бессерверного контроллера Knative

  • hello-go-pb - это госуслуга.
  • hello-go-pr - это частный сервис.

Прокси-режим

Когда экземпляры вашего приложения уменьшаются с помощью автомасштабирования, бессерверный сервисный контроллер обновляет общедоступную службу для настройки IP-адресов, обнаруженных службой Activator. Что запускает автомасштабирование, буферизует запрос до тех пор, пока одна служба не будет запущена и не пересылает запрос. Режим прокси можно увидеть на схеме ниже:

Режим прокси для бессерверного контроллера Knative

Подводя итог, бессерверный контроллер устанавливает конечные точки общедоступной службы, чередуя конечные точки частной службы или, если она уменьшена до нуля, до конечных точек службы активатора.

person Rinor    schedule 14.11.2019
comment
Эти диаграммы действительно хороши, не стесняйтесь вносить их в проект Knative, если вам разрешено делиться исходными файлами! - person Antoine Cotten; 22.01.2020
comment
Чтобы добавить, конечные точки службы hello-go-pb изменяются с IP-адреса активатора-службы на IP-адрес, когда количество модулей масштабируется от 0 до 1, а конечные точки службы hello-go-pr отражают фактический IP-адрес вновь созданных модулей - person shyde foo; 03.08.2020