Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Совет
Это содержимое является фрагментом из электронной книги, архитектора облачных собственных приложений .NET для Azure, доступных в .NET Docs или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.
Облачные приложения обычно реализуют службы, использующие контейнеры и оркестрацию. Часто существуют возможности для предоставления некоторых служб приложения как Функции Azure. Однако с облачным приложением, развернутым в Kubernetes, было бы приятно использовать Функции Azure в этом наборе инструментов. К счастью, вы можете упаковать Функции Azure внутри контейнеров Docker и развернуть их с помощью одних и того же процесса и средств, что и остальное приложение на основе Kubernetes.
Когда имеет смысл использовать контейнеры без сервера?
Функция Azure не знает платформу, на которой она развернута. В некоторых сценариях могут потребоваться конкретные требования и необходимо настроить среду, в которой будет выполняться код функции. Вам потребуется пользовательский образ, поддерживающий зависимости или конфигурацию, не поддерживаемую образом по умолчанию. В таких случаях имеет смысл развернуть функцию в пользовательском контейнере Docker.
Когда следует избегать использования контейнеров с Функции Azure?
Если вы хотите использовать выставление счетов за потребление, вы не можете запустить функцию в контейнере. Кроме того, если вы развернете функцию в кластере Kubernetes, вы больше не сможете воспользоваться встроенным масштабированием, предоставляемым Функции Azure. Вам потребуется использовать функции масштабирования Kubernetes, описанные ранее в этой главе.
Объединение бессерверных и контейнеров Docker
Чтобы упаковать функцию Azure в контейнер Docker, установите Функции Azure Core Tools и выполните следующую команду:
func init ProjectName --worker-runtime dotnet --docker
При создании проекта он будет включать Dockerfile и рабочую среду выполнения, настроенную dotnetдля . Теперь вы можете создать и проверить функцию локально. Выполните сборку docker build и запустите ее с помощью команд и docker run команд. Подробные инструкции по началу создания Функции Azure с поддержкой Docker см. в руководстве по созданию функции в Linux с помощью пользовательского руководства по созданию образов.
Объединение бессерверных и Kubernetes с KEDA
В этой главе вы узнали, что платформа Функции Azure автоматически масштабируется для удовлетворения спроса. При развертывании контейнерных функций в AKS вы теряете встроенные функции масштабирования. Для спасения приходит на основе Kubernetes событие, управляемое (KEDA). Он обеспечивает точное масштабирование автомасштабирования для event-driven Kubernetes workloadsконтейнеров.
KEDA предоставляет функции масштабирования на основе событий во время выполнения Функций в контейнере Docker. KEDA может масштабироваться с нуля экземпляров (если события не происходят) в n instancesзависимости от нагрузки. Он обеспечивает автомасштабирование путем предоставления пользовательских метрик автомасштабированию Kubernetes (горизонтальное автомасштабирование pod). Использование контейнеров Функций с KEDA позволяет реплицировать возможности бессерверных функций в любом кластере Kubernetes.
Стоит отметить, что проект KEDA теперь управляется Cloud Native Computing Foundation (CNCF).