Приложения контейнеров Azure в Azure Arc

Вы можете запускать приложения-контейнеры на AKS с поддержкой Azure Arc или на локальном кластере Azure AKS.

Запуск в кластере Kubernetes с поддержкой Azure Arc позволяет:

  • Разработчики, чтобы воспользоваться преимуществами функций контейнерных приложений
  • ИТ-администраторы должны поддерживать корпоративное соответствие, размещая контейнерные приложения на внутренней инфраструктуре.

Узнайте, как настроить кластер Kubernetes для контейнерных приложений с помощью настроенного для Azure Arc кластера Kubernetes для запуска контейнерных приложений Azure

При настройке кластера выполняются следующие действия:

Ограничения

Следующие ограничения применяются к приложениям контейнеров Azure в Kubernetes с поддержкой Azure Arc.

Ограничение Сведения
Поддерживаемые регионы Azure Восточная Австралия, центральная часть США, Восточная Азия, Восточная ЧАСТЬ США, Северная часть США, Юго-Восточная Азия, Центральная Швеция, Южная Часть Великобритании, Западная Европа, Западная часть США
Сетевые требования в кластере Должен поддерживать тип службы LoadBalancer
Требование к ОС узла Только Для Linux .
Компонент: Управляемые идентификационные данные Недоступно
Функция: Извлечение образов из ACR с использованием управляемого удостоверения Недоступно (зависит от управляемых удостоверений)
Функция: хранилище файлов Azure Драйвер SMB (>= v1.18.0) необходимо установить перед использованием хранилища SMB-файлов Azure
Логи Log Analytics необходимо настроить с расширением кластера; не для каждого приложения

Поддерживаются следующие функции:

  • Наклейки
  • Метрики
  • Простая аутентификация
  • Поток логов
  • Устойчивость
  • Личные домены
  • Задания контейнерных приложений
  • Управление редакциями
  • Консоль контейнера приложений

Внимание

При развертывании в AKS в Azure Local убедитесь, что вы настроили HAProxy в качестве подсистемы балансировки нагрузки, прежде чем пытаться установить расширение. Убедитесь, что настраиваемый CoreDNS включен.

Для получения информации о включении пользовательских CoreDNS в AKS см. документацию по «CLI» az containerapp arc.

Ресурсы, созданные расширением "Приложения контейнеров"

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

Вы также можете выбрать, нужно ли вместе с расширением устанавливать KEDA для масштабирования при определенных событиях. Однако в кластере разрешена только одна установка KEDA. Если у вас есть установка, отключите установку KEDA при установке расширения кластера.

В следующей таблице описывается роль каждой редакции, созданной для вас:

Объект pod Описание Число экземпляров ЦП Память Тип
<extensionName>-k8se-activator Используется в составе конвейера масштабирования 2 100 миллипу 500 МБ РепликаСет
<extensionName>-k8se-billing Создание записей выставления счетов 3 100 миллипу 100 МБ РепликаСет
<extensionName>-k8se-containerapp-controller Основной pod оператора, который создает ресурсы в кластере и поддерживает состояние его компонентов. 2 100 миллипу 1 ГБ РепликаСет
<extensionName>-k8se-envoy Интерфейсный уровень прокси-сервера для всех http-запросов уровня данных. Перенаправляет входящий трафик нужным приложениям. 3 1 ядро 1536 МБ РепликаСет
<extensionName>-k8se-envoy-controller Оператор, который создает конфигурацию Envoy 2 200 миллиСPU 500 МБ РепликаСет
<extensionName>-k8se-event-processor Альтернативное направление маршрутизации, которое помогает приложениям, масштабированным до нулевого количества экземпляров, пока система ожидает доступности первого экземпляра. 2 100 миллипу 500 МБ РепликаСет
<extensionName>-k8se-http-scaler Отслеживает объем входящих запросов, чтобы предоставлять в KEDA сведения о масштабировании. 1 100 миллипу 500 МБ РепликаСет
<extensionName>-k8se-keda-cosmosdb-scaler Масштабировщик KEDA Cosmos DB 1 10 м 128 МБ РепликаСет
<extensionName>-k8se-keda-metrics-apiserver Сервер метрик KEDA 1 1 ядро 1000 МБ РепликаСет
<extensionName>-k8se-keda-operator Масштабирование рабочих нагрузок в или из диапазона от 0/1 до N экземпляров 1 100 миллипу 500 МБ РепликаСет
<extensionName>-k8se-log-processor Собирает журналы от приложений и других компонентов для отправки в Log Analytics. 2 200 миллиСPU 500 МБ DaemonSet
<extensionName>-k8se-mdm Агент метрик и логов 2 500 миллиЦПУ 500 МБ РепликаСет
dapr-metrics Модуль pod метрик Dapr 1 100 миллипу 500 МБ РепликаСет
dapr-operator Управление обновлениями компонентов и конечными точками службы для Dapr 1 100 миллипу 500 МБ РепликаСет
dapr-placement-server Используется только для субъектов— создает таблицы сопоставления, сопоставляющие экземпляры субъектов с pod 1 100 миллипу 500 МБ StatefulSet
dapr-sentry Управляет мТЛС между службами и выполняет роль ЦС. 2 800 миллиЦП 200 МБ РепликаСет

Часто задаваемые вопросы о приложениях контейнеров Azure в Azure Arc

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

Проверьте портал для получения актуального списка. Функции, которые не поддерживаются, отображаются на портале серым цветом.

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

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

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

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

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

Все журналы системных компонентов и вашего приложения выводятся в стандартный поток вывода.

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

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

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

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

Как установить драйвер SMB?

Драйвер SMB можно установить с помощью следующей команды Helm. Дополнительные методы установки см. в разделе "Установка драйвера" в кластере Kubernetes.

helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts
helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.18.0

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

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

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

Нет. Кластеры на основе Arm64 не поддерживаются.