Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Среда выполнения Функций Azure обеспечивает гибкость в размещении, где и как вам нужно. KEDA (управляемое событиями автоматическое масштабирование на основе Kubernetes) легко интегрируется со средой выполнения Функций Azure и инструментами для обеспечения масштабирования на основе событий в Kubernetes.
Внимание
Запуск контейнерных приложений-функций в Kubernetes с помощью KEDA или прямого развертывания — это работа с открытым кодом, которую можно использовать бесплатно. Поддержка на основе лучших усилий предоставляется участниками и сообществом через вопросы GitHub в репозитории Azure Functions. Используйте эти проблемы, чтобы сообщить об ошибках и вызвать запросы на функции.
Для полностью поддерживаемых развертываний Kubernetes используйте размещение функций Azure в приложениях Azure Container Apps.
Принципы работы функций на основе Kubernetes
Служба "Функции Azure" состоит из двух ключевых компонентов: среды выполнения и контроллера масштабирования. Среда выполнения функций исполняет ваш код. Среда выполнения включает в себя логику для активации, ведения журнала и управления выполнением функций. Среда выполнения Функций Azure может быть запущена где угодно. Второй компонент — контроллер масштабирования. Контроллер масштабирования отслеживает частоту событий, которые нацелены на вашу функцию, и автоматически масштабирует количество экземпляров, запущенных для вашего приложения. Дополнительные сведения см. в статье Масштабирование и размещение Функций Azure.
Функции на основе Kubernetes предоставляют среду выполнения Функций в контейнере Docker с масштабированием на основе событий через KEDA. KEDA может масштабироваться до нуля экземпляров (когда события не происходят) и до n экземпляров. Это достигается за счет предоставления пользовательских метрик для горизонтального масштабировщика Pod в Kubernetes. Использование контейнеров Функций с KEDA позволяет реплицировать возможности бессерверных функций в любом кластере Kubernetes. Эти функции также можно развернуть с помощью компонента виртуальных узлов Azure Kubernetes Services (AKS) для бессерверной инфраструктуры.
Управление KEDA и функциями в Kubernetes
Для запуска Функций в кластере Kubernetes необходимо установить компонент KEDA. Данный компонент можно установить одним из следующих способов.
Azure Functions Core Tools: с помощью команды
func kubernetes install.Helm: существует несколько способов установки KEDA в любом кластере Kubernetes, включая Helm. Варианты развертывания описаны на сайте KEDA.
Развертывание приложения-функции в Kubernetes
Вы можете развернуть любое функциональное приложение в кластере Kubernetes с KEDA. Так как функции выполняются в контейнере Docker, вашему проекту требуется Dockerfile. Можно создать Dockerfile с помощью параметра --docker, указываемого при вызове func init для создания проекта. Если вы забыли создать Dockerfile, вы всегда можете снова вызвать func init из корневого каталога проекта исходного кода.
(Необязательно) Если вам нужно создать Dockerfile, используйте
func initкоманду с параметром--docker-only:func init --docker-onlyДополнительные сведения о создании Dockerfile можно найти в справочном материале
func init.func kubernetes deployИспользуйте команду для создания образа и развертывания контейнерного приложения-функции в Kubernetes:func kubernetes deploy --name <name-of-function-deployment> --registry <container-registry-username>В нашем примере замените
<name-of-function-deployment>именем реального приложения-функции. Команда развертывания выполняет следующие задачи:- Файл Dockerfile, созданный ранее, используется для создания локального образа для контейнерного приложения-функции.
- Локальный образ тегируется и отправляется в реестр контейнеров, в который выполнен вход пользователем.
- Манифест создается и применяется к кластеру, который определяет ресурсы Kubernetes
Deployment,ScaledObjectиSecrets, включая переменные среды, импортированные из вашего файлаlocal.settings.json.
Развертывание приложения-функции из частного реестра
Предыдущие шаги развертывания также работают для частных реестров. Если вы извлекаете образ контейнера из частного реестра, включите --pull-secret флаг, который ссылается на секрет Kubernetes, содержащий учетные данные частного реестра при запуске func kubernetes deploy.
Удаление приложения-функции из Kubernetes
После развертывания можно удалить функцию, удалив связанные Deployment, ScaledObject и Secrets.
kubectl delete deploy <name-of-function-deployment>
kubectl delete ScaledObject <name-of-function-deployment>
kubectl delete secret <name-of-function-deployment>
Удаление KEDA из Kubernetes
Удалить KEDA из кластера можно одним из следующих способов:
Azure Functions Core Tools: с помощью команды
func kubernetes remove.Helm: действия по удалению приведены на сайте KEDA.
Поддерживаемые триггеры в KEDA
KEDA поддерживает следующие триггеры Функций Azure:
- Очереди службы хранилища Azure
- Azure Service Bus
- Центр событий Azure/Центр Интернета вещей
- Apache Kafka
- Очередь RabbitMQ
Поддержка триггеров HTTP
Вы можете использовать Функции Azure, которые предоставляют триггеры HTTP, но KEDA не управляет ими напрямую. Триггер KEDA Prometheus можно использовать для масштабирования HTTP-функции Azure от одного до n экземпляров.
Дальнейшие шаги
Дополнительные сведения см. на следующих ресурсах: