Поделиться через


Служба приложений, Функции и Logic Apps в Azure Arc (предварительная версия)

Это важно

Служба приложений Azure в Kubernetes с поддержкой Arc будет прекращена 31 марта 2026 г. С 30 сентября 2025 г. клиенты больше не смогут установить расширение. Мы просим вас перейти на другие решения, такие как Azure Container Apps, в Kubernetes с поддержкой Arc, и миграция также позволяет воспользоваться преимуществами Logic Apps Гибрид для интеграционных рабочих нагрузок.

Вы можете выполнять Службы приложений, Функции и Logic Apps в кластере Kubernetes с поддержкой Azure Arc. Это может быть кластер Kubernetes, размещенный в локальной среде или в облаке стороннего поставщика. Такой подход позволяет разработчикам использовать все преимущества Службы приложений, В то же время IT-администраторы могут поддерживать соответствие корпоративным требованиям, размещая приложения App Service на внутренней инфраструктуре. Другим операторам ИТ-систем это позволит защитить свои вложения в облачные решения, выполняя Службу приложений в уже существующих кластерах Kubernetes.

Примечание.

Чтобы узнать, как настроить кластер Kubernetes для использования Службы приложений, Функций или Logic Apps, см. статью Создание среды Kubernetes для Службы приложений (предварительная версия).

В большинстве случаев разработчикам достаточно лишь знать, как развернуть приложение в нужный регион Azure, который представляет развернутую среду Kubernetes. Тем операторам, которые предоставляют среду и поддерживают базовую инфраструктуру Kubernetes, следует знать и понимать следующие ресурсы Azure:

Ограничения общедоступной предварительной версии

К средам Kubernetes для App Service применяются следующие ограничения публичной предварительной версии. Этот список ограничений обновляется по мере внесения изменений и добавления новых функций.

Ограничение Сведения
Поддерживаемые регионы Azure Восточная часть США, Западная Европа.
Сетевые требования в кластере Должен поддерживать тип службы LoadBalancer
Требование к ОС узла Только Для Linux .
Требование к хранилищу кластера Должен иметь доступ к классу хранилища, подключенному к кластеру, для поддержки развертывания и сборки приложений на основе кода (если применимо)
Компонент: Сеть Недоступно (используйте сетевые возможности кластера)
Компонент: Управляемые идентификационные данные Недоступно
Компонент: Ссылки на хранилище ключей Недоступно (зависит от управляемых удостоверений)
Функция: Извлечение образов из ACR с использованием управляемого удостоверения Недоступно (зависит от управляемых удостоверений)
Компонент: Редактирование Функций и Logic Apps в интерфейсе портала Недоступно
Функция: список функций или ключей на портале Недоступно, если кластер недоступен для общедоступного доступа
Функция: Публикация FTP Недоступно
Логи Log Analytics необходимо настроить как расширение кластера, а не отдельно для каждого сайта

Поды, создаваемые расширением Службы приложений

Когда расширение Службы приложений устанавливается в кластере Kubernetes, поддерживаемом Azure Arc, в указанном пространстве имен для релиза создаются несколько pod. Эти поды позволяют вашему кластеру Kubernetes быть расширением для поставщика ресурсов Microsoft.Web в Azure и поддерживают управление и работу ваших приложений. Вы также можете выбрать, нужно ли вместе с расширением устанавливать KEDA для масштабирования при определенных событиях.

В следующей таблице описаны роли каждого из pod, создаваемых по умолчанию.

Объект pod Описание
<extensionName>-k8se-app-controller Основной pod оператора, который создает ресурсы в кластере и поддерживает состояние его компонентов.
<extensionName>-k8se-envoy Интерфейс уровня прокси для всех запросов уровня данных. Перенаправляет входящий трафик нужным приложениям.
<extensionName>-k8se-activator Альтернативное направление маршрутизации, которое помогает приложениям, масштабированным до нулевого количества экземпляров, пока система ожидает доступности первого экземпляра.
<extensionName>-k8se-build-service Поддерживает операции развертывания и обслуживает функцию расширенных инструментов.
<extensionName>-k8se-http-scaler Отслеживает объем входящих запросов, чтобы предоставлять в KEDA сведения о масштабировании.
<extensionName>-k8se-img-cacher Копирует элементы-заполнители и образы приложений в локальный кэш узла.
<extensionName>-k8se-log-processor Собирает журналы от приложений и других компонентов для отправки в Log Analytics.
placeholder-azure-functions-* Используется для ускорения холодной загрузки Функций Azure.

Среда Kubernetes для Службы приложений

Ресурс среды Kubernetes для Службы приложений должен быть создан до того, как начнется создание приложений. Обеспечивает возможность настройки, общей для приложений в пользовательском местоположении, такие как DNS-суффикс по умолчанию.

В пользовательском расположении может быть создан только один ресурс окружения Kubernetes. В большинстве случаев разработчику приложений не нужно иметь информации об этом ресурсе. Его можно напрямую вывести из предоставленного пользовательского идентификатора расположения. Но при создании шаблонов Azure Resource Manager в ресурсах планов необходимо напрямую указать идентификатор ресурса для этого окружения. Значения пользовательского расположения, указанные для плана и настроенные в указанной среде, должны совпадать.

Вопросы и ответы по Службе приложений, Функциям и Logic Apps в Azure Arc (предварительная версия)

Сколько оно стоит?

Служба приложений в Azure Arc предоставляется бесплатно на период общедоступной предварительной версии.

Поддерживаются ли приложения Windows и Linux?

Поддерживаются только приложения на основе Linux (в формате исходного кода или пользовательских контейнеров). Приложения Windows не поддерживаются.

Можно ли установить расширение на узлах Windows?

Нет, расширение не может быть установлено на узлах Windows. Расширение поддерживает установку только на узлах Linux.

Какие встроенные стеки приложений поддерживаются?

Поддерживаются все встроенные стеки Linux.

Все ли типы развертываний приложения поддерживаются?

Развертывание FTP не поддерживается. В настоящее время не поддерживается также az webapp up. Поддерживаются все остальные методы развертывания, в том числе Git, ZIP, CI/CD, Visual Studio и Visual Studio Code.

Какие функции Службы приложений поддерживаются?

В период предварительной версии мы проверяем некоторые компоненты Службы приложений. Когда начнется их поддержка, на портале Azure станут доступны варианты на панели навигации слева. Функции, которые еще не поддерживаются, отображаются серым цветом.

Все ли функции сети поддерживаются?

№ Сетевые функции, такие как гибридные подключения или интеграция с виртуальной сетью, не поддерживаются. Поддержка возможностей ограничения доступа добавлена в апреле 2022 года. Сетевое взаимодействие должно осуществляться напрямую в правилах сети самого кластера Kubernetes.

Поддерживаются ли управляемые удостоверения?

№ Приложениям невозможно назначить управляемые удостоверения при выполнении в Azure Arc. Если вашему приложению требуется удостоверение для взаимодействия с другим ресурсом Azure, рассмотрите возможность использования прикладного служебного принципала.

Существуют ли ограничения масштабирования?

Все приложения, развернутые с помощью Службы приложений Azure в Kubernetes с поддержкой Azure Arc, могут масштабироваться в пределах базовых кластеров Kubernetes. Если для базового кластера Kubernetes недостаточно вычислительных ресурсов (в первую очередь ЦП и память), тогда приложения смогут масштабироваться только до того количества экземпляров приложения, которое Kubernetes может запланировать с использованием доступного ресурса.

Какие логи собираются?

Все журналы системных компонентов и вашего приложения выводятся в стандартный поток вывода. Оба эти типа журналов можно собирать для анализа с помощью стандартных средств Kubernetes. Вы также можете настроить расширение кластера службы приложений с помощью рабочей области Log Analytics, и все журналы будут отправляться в эту рабочую область.

По умолчанию журналы системных компонентов отправляются команде Azure. Журналы приложений не отправляются. Вы можете запретить передачу этих журналов, установив в конфигурации расширения параметр logProcessor.enabled=false. Этот параметр конфигурации также отключает перенаправление приложения в рабочую область Log Analytics. Отключение обработчика журналов может повлиять на время, необходимое для решения запросов в службу поддержки, и вас попросят собрать журналы из стандартного вывода другими способами.

Что делать, если я вижу ошибку регистрации поставщика?

При создании ресурса среды Kubernetes может появиться ошибка "Зарегистрированный поставщик ресурсов не найден". Сведения об ошибке могут включать набор расположений и версий API, которые считаются допустимыми. Если сообщение об ошибке отображается повторно, в этом случае может понадобиться повторно зарегистрировать подписку с помощью поставщика Microsoft.Web. Эта операция не влияет на существующие приложения или API. Чтобы повторно зарегистрироваться, используйте Azure CLI и выполните команду az provider register --namespace Microsoft.Web --wait. Затем попробуйте повторно выполнить команду среды Kubernetes.

Можно ли развернуть расширение служб приложений в кластере на основе Arm64?

В настоящее время кластеры на основе Arm64 не поддерживаются.

В каких дистрибутивах Kubernetes можно развернуть расширение?

Расширение было проверено на AKS, AKS в Azure Local, Google Kubernetes Engine, Amazon Elastic Kubernetes Service и API кластера Kubernetes.

Отчет о выпуске расширения

Расширение служб приложений версии 0.9.0 (май 2021 г.)

  • Общедоступный предварительный выпуск расширения служб приложения.
  • Поддержка развертывания на основе кода и контейнеров для веб-приложений, функциональных и логических приложений.
  • Поддержка среды выполнения приложения --- .NET 3.1 и 5.0; Node JS 12 и 14; Python 3.6, 3.7 и 3.8; PHP 7.3 и 7.4; Ruby 2.5, 2.5.5, 2.6 и 2.6.2; Java SE 8u232, 8u242, 8u252, 11.05, 11.06 и 11.07; Tomcat 8.5, 8.5.41, 8.5.53, 8.5.57, 9.0, 9.0.20, 9.0.33 и 9.0.37.

Расширение служб приложений версии 0.10.0 (ноябрь 2021 г.)

  • Удалено требование в отношении предварительно назначенного статического IP-адреса, необходимого для назначения конечной точке Envoy
  • Обновление Keda до версии 2.4.0
  • Обновление Envoy до версии 1.19.0
  • Обновление среды выполнения функций Azure до версии 3.3.1
  • Настройка числа реплик по умолчанию для App Controller и Envoy Controller равным 2, чтобы повысить стабильность

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.10.0

Расширение служб приложений версии 0.11.0 (декабрь 2021 г.)

  • Добавлена поддержка Application Insights для веб-приложений Java и .NET
  • Добавлена поддержка веб-приложений .NET 6.0
  • Удален .NET Core 2.0
  • Устранены проблемы, вызвавшие сбой операций переключения слотов
  • Устранены проблемы, с которыми сталкиваются клиенты при создании веб-приложений Ruby

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.0

Расширение служб приложений версии 0.11.1 (декабрь 2021 г.)

  • Незначительный релиз для устранения проблемы с обновлением CRD

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.11.1

Расширение служб приложений версии 0.12.0 (январь 2022 г.)

  • Поддержка исходящего прокси-сервера
  • Поддержка параллельных сборок в службе сборок
  • Обновление Envoy до версии 1.20.1
  • Устранена проблема с поддержкой Application Insights для приложений .NET

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.0

Расширение служб приложений версии 0.12.1 (март 2022 г.)

  • Устранена проблема с поддержкой исходящего прокси-сервера для активации ведения журналов в рабочей области Log Analytics

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.1

Расширение служб приложений версии 0.12.2 (март 2022 г.)

  • Обновление для устранения сбоев обновления при обновлении версии 0.12.0, если длина имени расширения превышает 35 символов

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.12.2

Расширение служб приложений версии 0.13.0 (апрель 2022 г.)

  • Добавлена поддержка бескодовой интеграции Application Insights для приложений Node.js.
  • Добавлена поддержка ограничения доступа с помощью CLI.
  • При сбое установки расширения предоставляется больше информации, чтобы помочь в устранении неполадок.

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.0

Расширение служб приложений версии 0.13.1 (апрель 2022 г.)

  • Выполнено обновление для устранения сбоев, наблюдаемых при автоматическом обновлении кластеров до версии 0.13.0

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.1

Расширение служб приложений версии 0.13.5 (декабрь 2023 г.)

  • Обновление для поддержки Kubernetes версии 1.26 и выше
  • Обновление Envoy до версии 1.2.1
  • Обновление Keda до версии 2.10.0
  • Обновление EasyAuth до версии 1.6.20
  • Обновление базовых образов для поддерживаемых языков

Если ваше расширение было доступно в стабильной версии, а для вспомогательной версии автоматического обновления задано значение True, расширение обновляется автоматически. Чтобы вручную обновить расширение до последней версии, можно выполнить команду:

    az k8s-extension update --cluster-type connectedClusters -c <clustername> -g <resource group> -n <extension name> --release-train stable --version 0.13.5