Настройка собственной инфраструктуры для приложений логики "Стандартный" с помощью гибридного развертывания (предварительная версия)
Область применения: Azure Logic Apps (стандартная версия)
Примечание.
Эта возможность доступна в предварительной версии, взимает плату за использование и распространяется на дополнительные условия использования для предварительных версий Microsoft Azure.
Иногда необходимо настроить собственную инфраструктуру и управлять ею, чтобы обеспечить соответствие нормативным требованиям, конфиденциальность данных или ограничения сети. Azure Logic Apps предлагает модель гибридного развертывания, чтобы можно было развертывать и размещать рабочие процессы приложения логики уровня "Стандартный" в локальных, частных облаках или в общедоступных облачных сценариях. Эта модель предоставляет возможности размещения решений интеграции в частично подключенных средах, когда необходимо использовать локальную обработку, хранилище данных и сетевой доступ. С помощью гибридного варианта у вас есть свобода и гибкость, чтобы выбрать оптимальную среду для рабочих процессов.
Как работает гибридное развертывание
Рабочие процессы приложения логики уровня "Стандартный" с параметром гибридного развертывания используются средой выполнения Azure Logic Apps, размещенной в расширении приложений контейнеров Azure. В рабочем процессе все встроенные операции выполняются локально с средой выполнения, чтобы получить более высокую пропускную способность для доступа к локальным источникам данных. Если вам нужен доступ к не локальным ресурсам данных, например облачным службам, таким как Microsoft Office 365, Microsoft Teams, Salesforce, GitHub, LinkedIn или ServiceNow, можно выбрать операции из 1000+ соединителей, размещенных в Azure , чтобы включить в рабочие процессы. Дополнительные сведения см. в разделе "Управляемые (общие) соединители". Хотя вам нужно иметь подключение к Интернету для управления приложением логики в портал Azure, полусоединенный характер этой платформы позволяет поглощать любые временные проблемы с подключением к Интернету.
Например, если у вас есть локальный сценарий, в следующем обзоре архитектуры показано, где размещаются рабочие процессы приложения логики "Стандартный" и выполняются в гибридной модели. Частично подключенная среда включает следующие ресурсы для размещения и работы с приложениями логики уровня "Стандартный", которые развертываются в качестве ресурсов приложений контейнеров Azure:
- Кластеры Служба Azure Kubernetes с поддержкой Azure Arc (AKS)
- База данных SQL для локального хранения журнала выполнения рабочих процессов, входных данных и выходных данных для обработки
- Общий файловый ресурс блока сообщений сервера (SMB) для локального хранения артефактов, используемых рабочими процессами
Для размещения можно также настроить и использовать кластеры Kubernetes с поддержкой Azure Arc в гиперконвергентной инфраструктуре Azure Stack (HCI) или кластерах Kubernetes с поддержкой Azure Arc в Windows Server.
Дополнительные сведения см. в следующей документации:
- Что такое Служба Azure Kubernetes?
- Основные понятия для Служба Azure Kubernetes (AKS)
- Пользовательские расположения для кластеров Kubernetes с поддержкой Azure Arc
- Что такое приложения контейнеров Azure?
- Приложения контейнеров Azure в Azure Arc
В этом руководстве показано, как настроить необходимые локальные ресурсы в инфраструктуре, чтобы можно было создавать, развертывать и размещать рабочий процесс приложения логики уровня "Стандартный" с помощью гибридной модели развертывания.
Как работает выставление счетов
При использовании гибридного варианта вы отвечаете за следующие элементы:
- Инфраструктура Kubernetes с поддержкой Azure Arc
- Лицензия SQL Server
- Плата за выставление счетов в размере 0,18 долл. США за виртуальный ЦП/час для поддержки рабочих нагрузок приложения логики уровня "Стандартный"
В этой модели выставления счетов вы платите только за необходимые ресурсы и масштабируйте ресурсы для динамических рабочих нагрузок без необходимости покупать пиковое использование. Для рабочих процессов, использующих операции соединителя, размещенные в Azure, такие как Microsoft Teams или Microsoft Office 365, существующие цены на стандартный (один клиент) применяются к этим выполнениям операций.
Ограничения
Гибридное развертывание в настоящее время доступно и поддерживается только для следующих кластеров Kubernetes с поддержкой Azure Arc:
- Кластеры Kubernetes с поддержкой Azure Arc
- Кластеры Kubernetes с поддержкой Azure Arc в Azure Stack HCI
- Кластеры Kubernetes с поддержкой Azure Arc в Windows Server
Необходимые компоненты
Учетная запись и подписка Azure. Если у вас нет ее, вы можете зарегистрироваться для получения бесплатной учетной записи Azure.
Базовое понимание основных концепций AKS
Технические требования к приложениям контейнеров Azure в Kubernetes с поддержкой Azure Arc, включая доступ к общедоступному или частному реестру контейнеров, например к Реестр контейнеров Azure.
Создание кластера Kubernetes
Прежде чем развернуть приложение логики уровня "Стандартный" в качестве локального ресурса в кластере Kubernetes с поддержкой Azure Arc в подключенной среде приложений контейнеров Azure, сначала потребуется кластер Kubernetes. Позже вы подключите этот кластер к Azure Arc, чтобы иметь кластер Kubernetes с поддержкой Azure Arc.
Кластер Kubernetes требует входящего и исходящего подключения к базе данных SQL, которую вы позже создаете в качестве поставщика хранилища, а также общую папку блока сообщений сервера, которую вы позже создаете для хранилища артефактов. Эти ресурсы должны существовать в одной сети.
Примечание.
Вы также можете создать кластер Kubernetes в инфраструктуре Azure Stack HCI или кластере Kubernetes в Windows Server и применить действия, описанные в этом руководстве, чтобы подключить кластер к Azure Arc и настроить подключенную среду. Дополнительные сведения о Azure Stack HCI и AKS в Windows Server см. в следующих ресурсах:
Задайте следующие переменные среды для кластера Kubernetes, который требуется создать:
SUBSCRIPTION="<Azure-subscription-ID>" AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>" AKS_NAME="<aks-cluster-name>" LOCATION="eastus"
Параметр Обязательное поле значение Описание ПОДПИСКА Да <Azure-subscription-ID> Идентификатор подписки Azure AKS_CLUSTER_GROUP_NAME Да <aks-cluster-resource-group-name> Имя группы ресурсов Azure, используемой в кластере Kubernetes. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки (()) и точки (.).
В этом примере используется hybrid-RG.AKS_NAME Да <aks-cluster-name> Имя кластера Kubernetes. LOCATION Да <Azure-region> Регион Azure, поддерживающий приложения контейнеров Azure в Kubernetes с поддержкой Azure Arc.
В этом примере используется eastus.Выполните следующие команды с помощью среды Bash в Azure Cloud Shell или локально с помощью Azure CLI, установленной на компьютере:
Примечание.
Обязательно измените значения максимального количества и минимального количества узлов на основе требований к нагрузке.
az login az account set --subscription $SUBSCRIPTION az provider register --namespace Microsoft.KubernetesConfiguration --wait az extension add --name k8s-extension --upgrade --yes az group create --name $AKS_CLUSTER_GROUP_NAME --location $LOCATION az aks create \ --resource-group $AKS_CLUSTER_GROUP_NAME \ --name $AKS_NAME \ --enable-aad \ --generate-ssh-keys \ --enable-cluster-autoscaler \ --max-count 6 \ --min-count 1
Параметр Обязательное поле значение Описание max count
No <max-nodes-value> Максимальное количество узлов, используемых для автомасштабирования при включении enable-cluster-autoscaler
параметра. Это значение диапазонов от 1 до 1000.min count
No <min-nodes-value> Минимальное количество узлов, используемых для автомасштабирования при включении enable-cluster-autoscaler
параметра. Это значение диапазонов от 1 до 1000.Дополнительные сведения см. на следующих ресурсах:
Подключение кластера Kubernetes к Azure Arc
Чтобы создать кластер Kubernetes с поддержкой Azure Arc, подключите кластер Kubernetes к Azure Arc.
Примечание.
Действия, описанные в этом разделе, можно найти в репозитории GitHub с именем Azure/logicapps, чтобы создать подключенную среду в скрипте с именем EnvironmentSetup.ps1. Этот скрипт можно изменить и использовать для удовлетворения ваших требований и сценариев.
Скрипт не назначен, поэтому перед запуском скрипта выполните следующую команду Azure PowerShell от имени администратора, чтобы задать политику выполнения:
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Дополнительные сведения см. в разделе Set-ExecutionPolicy.
Установите следующие расширения Azure CLI:
az extension add --name connectedk8s --upgrade --yes az extension add --name k8s-extension --upgrade --yes az extension add --name customlocation --upgrade --yes az extension add --name containerapp --upgrade --yes
Дополнительные сведения см. на следующих ресурсах:
Зарегистрируйте следующие обязательные пространства имен:
az provider register --namespace Microsoft.ExtendedLocation --wait az provider register --namespace Microsoft.KubernetesConfiguration --wait az provider register --namespace Microsoft.App --wait az provider register --namespace Microsoft.OperationalInsights --wait
Дополнительные сведения см. на следующих ресурсах:
Установите интерфейс командной строки Kubernetes с именем kubectl:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) choco install kubernetes-cli -y
Дополнительные сведения см. на следующих ресурсах:
Установите диспетчер пакетов Kubernetes с именем Helm:
choco install kubernetes-helm
Дополнительные сведения см. на следующих ресурсах:
Установите драйвер SMB с помощью следующих команд Helm:
Добавьте указанный репозиторий диаграмм, получите последнюю информацию для доступных диаграмм и установите указанный архив диаграммы.
helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts helm repo update helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.15.0
Дополнительные сведения см. на следующих ресурсах:
Убедитесь, что драйвер SMB установлен, выполнив следующую команду kubectl , которая должна содержать список smb.csi.k8s.io:
kubectl get csidriver
Дополнительные сведения см . в разделе kubectl get.
Подключение кластера Kubernetes к Azure Arc
Проверьте подключение к кластеру, получив файл kubeconfig:
az aks get-credentials \ --resource-group $AKS_CLUSTER_GROUP_NAME \ --name $AKS_NAME \ --admin kubectl get ns
По умолчанию файл kubeconfig сохраняется в пути ~/.kube/config. Эта команда применяется к нашему примеру кластера Kubernetes и отличается для других типов кластеров Kubernetes.
Дополнительные сведения см. на следующих ресурсах:
На основе развертывания кластера Kubernetes задайте следующую переменную среды, чтобы указать имя для группы ресурсов Azure, содержащей кластер и ресурсы с поддержкой Azure Arc:
GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
Параметр Обязательное поле значение Описание GROUP_NAME Да <Azure-Arc-cluster-resource-group-name> Имя группы ресурсов Azure, используемой с кластером с поддержкой Azure Arc и другими ресурсами, такими как расширение "Приложения контейнеров Azure", пользовательское расположение и подключенная среда приложений контейнеров Azure. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки (()) и точки (.).
В этом примере используется Hybrid-Arc-RG.Создайте группу ресурсов Azure для кластера и ресурсов с поддержкой Azure Arc:
az group create \ --name $GROUP_NAME \ --location $LOCATION
Дополнительные сведения см. на следующих ресурсах:
Задайте следующую переменную среды, чтобы указать имя кластера Kubernetes с поддержкой Azure Arc:
CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
Параметр Обязательное поле значение Описание CONNECTED_CLUSTER_NAME Да <Azure-Arc-cluster-resource-group-name-cluster> Имя, используемое для кластера с поддержкой Azure Arc. Это имя должно быть уникальным во всех регионах и может содержать только буквы, цифры, дефисы (-), символы подчеркивания (_), круглые скобки (()) и точки (.).
В этом примере используется гибридный кластер Arc-RG-cluster.Подключите ранее созданный кластер Kubernetes к Azure Arc:
az connectedk8s connect \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME
Дополнительные сведения см. на следующих ресурсах:
Проверьте подключение между Azure Arc и кластером Kubernetes:
az connectedk8s show \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME
Если выходные данные показывают, что значение свойства provisioningState не задано как "Успешно", выполните команду снова через одну минуту.
Дополнительные сведения см. на следующих ресурсах:
Создание рабочей области Azure Log Analytics
Вы можете создать необязательную рабочую область Azure Log Analytics, которая предоставляет доступ к журналам для приложений, работающих в кластере Kubernetes с поддержкой Azure Arc.
Задайте следующую переменную среды, чтобы указать имя рабочей области Log Analytics:
WORKSPACE_NAME="$GROUP_NAME-workspace"
Параметр Обязательное поле значение Описание WORKSPACE_NAME Да <Azure-Arc-cluster-resource-group-name-workspace> Имя, используемое для рабочей области Log Analytics. Это имя должно быть уникальным в группе ресурсов.
В этом примере используется рабочая область Hybrid-Arc-RG-workspace.Создайте рабочую область Log Analytics:
az monitor log-analytics workspace create \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME
Дополнительные сведения см. на следующих ресурсах:
Получите идентификатор в кодировке Base64 и общий ключ для рабочей области Log Analytics. Эти значения потребуются для последующего шага.
LOG_ANALYTICS_WORKSPACE_ID=$(az monitor log-analytics workspace show \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query customerId \ --output tsv) LOG_ANALYTICS_WORKSPACE_ID_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_WORKSPACE_ID)) LOG_ANALYTICS_KEY=$(az monitor log-analytics workspace get-shared-keys \ --resource-group $GROUP_NAME \ --workspace-name $WORKSPACE_NAME \ --query primarySharedKey \ --output tsv) LOG_ANALYTICS_KEY_ENC=[Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($LOG_ANALYTICS_KEY))
Параметр Обязательное поле значение Описание LOG_ANALYTICS_WORKSPACE_ID Да Идентификатор рабочей области Log Analytics. LOG_ANALYTICS_WORKSPACE_ID_ENC Да Идентификатор в кодировке Base64 для рабочей области Log Analytics. LOG_ANALYTICS_KEY Да Общий ключ для рабочей области Log Analytics. LOG_ANALYTICS_ENC Да Общий ключ в кодировке Base64 для рабочей области Log Analytics. Дополнительные сведения см. на следующих ресурсах:
Создание и установка расширения "Приложения контейнеров Azure"
Теперь создайте и установите расширение Azure Container Apps с кластером Kubernetes с поддержкой Azure Arc в качестве локального ресурса.
Внимание
Если вы хотите развернуть в AKS в Azure Stack HCI, перед созданием и установкой расширения приложений контейнеров Azure убедитесь, что вы настроили HAProxy или настраиваемую подсистему балансировки нагрузки.
Задайте следующие переменные среды следующим значениям:
EXTENSION_NAME="logicapps-aca-extension" NAMESPACE="logicapps-aca-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
Параметр Обязательное поле значение Описание EXTENSION_NAME Да logicapps-aca-extension Имя расширения "Приложения контейнеров Azure". ПРОСТРАНСТВО ИМЕН Да logicapps-aca-ns Пространство имен кластера, в котором требуется подготовить ресурсы. CONNECTED_ENVIRONMENT_NAME Да <имя подключенной среды> Уникальное имя, используемое для подключенной среды приложений контейнеров Azure. Это имя становится частью доменного имени для приложения логики уровня "Стандартный", которое вы создаете, развертываете и размещаете в подключенной среде приложений контейнеров Azure. Создайте и установите расширение с поддержкой Log Analytics для кластера Kubernetes с поддержкой Azure Arc. Позже вы не можете добавить Log Analytics в расширение.
az k8s-extension create \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --cluster-type connectedClusters \ --cluster-name $CONNECTED_CLUSTER_NAME \ --extension-type 'Microsoft.App.Environment' \ --release-train stable \ --auto-upgrade-minor-version true \ --scope cluster \ --release-namespace $NAMESPACE \ --configuration-settings "Microsoft.CustomLocation.ServiceAccount=default" \ --configuration-settings "appsNamespace=${NAMESPACE}" \ --configuration-settings "keda.enabled=true" \ --configuration-settings "keda.logicAppsScaler.enabled=true" \ --configuration-settings "keda.logicAppsScaler.replicaCount=1" \ --configuration-settings "containerAppController.api.functionsServerEnabled=true" \ --configuration-settings "envoy.externalServiceAzureILB=false" \ --configuration-settings "functionsProxyApiConfig.enabled=true" \ --configuration-settings "clusterName=${CONNECTED_ENVIRONMENT_NAME}" \ --configuration-settings "envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group=${GROUP_NAME}" \ --configuration-settings "logProcessor.appLogs.destination=log-analytics" \ --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.customerId=${LOG_ANALYTICS_WORKSPACE_ID_ENC}" \ --configuration-protected-settings "logProcessor.appLogs.logAnalyticsConfig.sharedKey=${LOG_ANALYTICS_KEY_ENC}"
Параметр Обязательное поле Описание Microsoft.CustomLocation.ServiceAccount Да Учетная запись службы, созданная для пользовательского расположения.
Рекомендация. Задайте значение по умолчанию.appsNamespace Да Пространство имен, используемое для создания определений и редакций приложений. Это значение должно соответствовать пространству имен выпуска для расширения "Приложения контейнеров Azure". clusterName Да Имя для среды Kubernetes расширения приложений контейнеров Azure для создания расширения. keda.enabled Да Включите автомасштабирование на основе событий Kubernetes (KEDA). Это значение является обязательным и должно иметь значение true. keda.logicAppsScaler.enabled Да Включите масштабировщик Azure Logic Apps в KEDA. Это значение является обязательным и должно иметь значение true. keda.logicAppsScaler.replicaCount Да Начальное число масштабировщиков приложений логики для запуска. Значение по умолчанию, равное 1. Это значение масштабируется вверх или масштабируется до 0, если в среде нет приложений логики. containerAppController.api.functionsServerEnabled Да Включите службу, отвечающую за преобразование триггеров рабочего процесса приложения логики в масштабируемые объекты KEDA. Это значение является обязательным и должно иметь значение true. envoy.externalServiceAzureILB Да Определяет, действует ли посланник как внутренняя подсистема балансировки нагрузки или общедоступная подсистема балансировки нагрузки.
- True: посланник выступает в качестве внутренней подсистемы балансировки нагрузки. Среда выполнения Azure Logic Apps доступна только в частной сети.
- false: посланник выступает в качестве общедоступной подсистемы балансировки нагрузки. Среда выполнения Azure Logic Apps доступна через общедоступную сеть.functionsProxyApiConfig.enabled Да Включите прокси-службу, которая упрощает доступ API к среде выполнения Azure Logic Apps из портал Azure. Это значение является обязательным и должно иметь значение true. envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group Да, но только если базовый кластер Служба Azure Kubernetes. Имя группы ресурсов, в которой существует кластер Kubernetes. logProcessor.appLogs.destination No Назначение для журналов приложений. Значением является log-analytics или нет, что отключает ведение журнала. logProcessor.appLogs.logAnalyticsConfig.customerId Да, но только если для logProcessor.appLogs.destination задано значение log-analytics. Идентификатор в кодировке Base64 для рабочей области Log Analytics. Не забудьте настроить этот параметр в качестве защищенного параметра. logProcessor.appLogs.logAnalyticsConfig.sharedKey Да, но только если для logProcessor.appLogs.destination задано значение log-analytics. Общий ключ в кодировке Base64 для рабочей области Log Analytics. Не забудьте настроить этот параметр в качестве защищенного параметра. Дополнительные сведения см. на следующих ресурсах:
Сохраните значение идентификатора расширения "Приложения контейнеров Azure", чтобы использовать его позже:
EXTENSION_ID=$(az k8s-extension show \ --cluster-type connectedClusters \ --cluster-name $CONNECTED_CLUSTER_NAME \ --resource-group $GROUP_NAME \ --name $EXTENSION_NAME \ --query id \ --output tsv)
Параметр Обязательное поле значение Описание EXTENSION_ID Да <идентификатор расширения> Идентификатор расширения "Приложения контейнеров Azure". Дополнительные сведения см. на следующих ресурсах:
Прежде чем продолжить, дождитесь полной установки расширения. Чтобы сеанс терминала ждал завершения установки, выполните следующую команду:
az resource wait \ --ids $EXTENSION_ID \ --custom "properties.provisioningState!='Pending'" \ --api-version "2020-07-01-preview"
Дополнительные сведения см. на следующих ресурсах:
Создание пользовательского расположения
Задайте для указанных значений следующие переменные среды:
CUSTOM_LOCATION_NAME="my-custom-location" CONNECTED_CLUSTER_ID=$(az connectedk8s show \ --resource-group $GROUP_NAME \ --name $CONNECTED_CLUSTER_NAME \ --query id \ --output tsv)
Параметр Обязательное поле значение Описание CUSTOM_LOCATION_NAME Да my-custom-location Имя, используемое для пользовательского расположения. CONNECTED_CLUSTER_ID Да <Azure-Arc-cluster-ID> Идентификатор кластера Kubernetes с поддержкой Azure Arc. Дополнительные сведения см. на следующих ресурсах:
Создайте пользовательское расположение:
az customlocation create \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --host-resource-id $CONNECTED_CLUSTER_ID \ --namespace $NAMESPACE \ --cluster-extension-ids $EXTENSION_ID \ --location $LOCATION
Примечание.
При возникновении проблем с созданием настраиваемого расположения в кластере может потребоваться включить функцию пользовательского расположения в кластере. Этот шаг необходим, если вы вошли в Azure CLI с помощью субъекта-службы или если вы вошли в систему в качестве пользователя Microsoft Entra с ограниченными разрешениями на ресурс кластера.
Дополнительные сведения см. на следующих ресурсах:
Убедитесь, что пользовательское расположение успешно создано:
az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME
Если выходные данные показывают, что значение свойства provisioningState не задано как "Успешно", выполните команду снова через одну минуту.
Сохраните идентификатор пользовательского расположения для использования на следующем шаге:
CUSTOM_LOCATION_ID=$(az customlocation show \ --resource-group $GROUP_NAME \ --name $CUSTOM_LOCATION_NAME \ --query id \ --output tsv)
Параметр Обязательное поле значение Описание CUSTOM_LOCATION_ID Да <my-custom-location-ID> Идентификатор пользовательского расположения. Дополнительные сведения см. на следующих ресурсах:
Создание подключенной среды для приложений контейнеров Azure
Теперь создайте подключенную среду приложений контейнеров Azure для используемого приложения логики уровня "Стандартный".
az containerapp connected-env create \
--resource-group $GROUP_NAME \
--name $CONNECTED_ENVIRONMENT_NAME \
--custom-location $CUSTOM_LOCATION_ID \
--location $LOCATION
Дополнительные сведения см. на следующих ресурсах:
Создание поставщика хранилища SQL Server
Рабочие процессы приложения логики в модели гибридного развертывания используют базу данных SQL в качестве поставщика хранилища для данных, используемых рабочими процессами и средой выполнения Azure Logic Apps, например журнал выполнения рабочих процессов, входные данные, выходные данные и т. д.
Для базы данных SQL требуется входящее и исходящее подключение к кластеру Kubernetes, поэтому эти ресурсы должны существовать в той же сети.
Настройте любой из следующих выпусков SQL Server:
- SQL Server на локальном компьютере
- База данных SQL Azure
- Управляемый экземпляр SQL Azure
- SQL Server, включенный Azure Arc
Дополнительные сведения см. в разделе "Настройка хранилища базы данных SQL для рабочих процессов приложения логики уровня "Стандартный".
Убедитесь, что база данных SQL находится в той же сети, что и кластер Kubernetes с поддержкой Arc и общий файловый ресурс SMB.
Найдите и сохраните строка подключения для созданной базы данных SQL.
Настройка общей папки SMB для хранилища артефактов
Для хранения артефактов, таких как карты, схемы и сборки для ресурса приложения логики (приложения-контейнера), вам потребуется общий файловый ресурс, использующий протокол SMB.
Вам нужен доступ администратора для настройки общей папки SMB.
Общая папка SMB должна существовать в той же сети, что и кластер Kubernetes и база данных SQL.
Для общей папки SMB требуется входящее и исходящее подключение к кластеру Kubernetes. Если вы включили ограничения виртуальной сети Azure, убедитесь, что общая папка существует в той же виртуальной сети, что и кластер Kubernetes или в одноранговой виртуальной сети.
Не используйте одинаковый путь к общей папке для нескольких приложений логики.
Вы можете использовать отдельные общие папки SMB для каждого приложения логики или использовать разные папки в одной общей папке SMB, если эти папки не вложены. Например, у приложения логики нет корневого пути, а затем другое приложение логики использует вложенную папку.
Чтобы развернуть приложение логики с помощью Visual Studio Code, убедитесь, что локальный компьютер с Visual Studio Code может получить доступ к общей папке.
Настройка общей папки SMB в Windows
Убедитесь, что общая папка SMB существует в той же виртуальной сети, что и кластер, в котором вы подключаете общую папку.
В Windows перейдите в папку, которую хотите предоставить общий доступ, откройте контекстное меню и выберите "Свойства".
На вкладке "Общий доступ" выберите "Общий доступ".
В открывшемся поле выберите человека, которому требуется доступ к общей папке.
Выберите "Общий доступ" и скопируйте ссылку для сетевого пути.
Если локальный компьютер не подключен к домену, замените имя компьютера в сетевом пути IP-адресом.
Сохраните IP-адрес для последующего использования в качестве имени узла.
Настройка Файлы Azure в качестве общей папки SMB
Кроме того, в целях тестирования можно использовать Файлы Azure в качестве общей папки SMB. Убедитесь, что общая папка SMB существует в той же виртуальной сети, что и кластер, в котором вы подключаете общую папку.
В портал Azure создайте учетную запись хранения Azure.
В меню учетной записи хранения в разделе хранилища данных выберите общие папки.
На панели инструментов страницы общих папок выберите +Файловый ресурс и укажите необходимые сведения для общей папки SMB.
После завершения развертывания выберите Перейти к ресурсу.
В меню общей папки выберите "Обзор", если он не выбран.
На панели инструментов "Обзор" выберите "Подключиться". На панели "Подключиться" выберите "Показать сценарий".
Скопируйте следующие значения и сохраните их в безопасном месте для последующего использования:
- Имя узла общей папки, например mystorage.file.core.windows.net
- Путь к общей папке
- Имя пользователя без
localhost\
- Пароль
На панели инструментов "Обзор" выберите +Добавить каталог и укажите имя, используемое для каталога. Сохраните это имя для последующего использования.
Эти сохраненные значения необходимы для предоставления сведений о общей папке SMB при развертывании ресурса приложения логики.
Дополнительные сведения см. в статье "Создание общей папки SMB Azure".
Подтверждение подключения к общей папке SMB
Чтобы проверить подключение между кластером Kubernetes с поддержкой Arc и общей папкой SMB, а также проверить правильность настройки общей папки, выполните следующие действия.
Если общая папка SMB не находится в одном кластере, убедитесь, что операция ping работает из кластера Kubernetes с поддержкой Arc, на виртуальную машину с общей папкой SMB. Чтобы проверить, работает ли операция проверки ping, выполните следующие действия.
В кластере Kubernetes с поддержкой Arc создайте тестовый модуль pod , на котором выполняется любой образ Linux, например BusyBox или Ubuntu.
Перейдите к контейнеру в pod и установите пакет iputils-ping , выполнив следующие команды Linux:
apt-get update apt-get install iputils-ping
Чтобы убедиться, что общая папка SMB настроена правильно, выполните следующие действия:
В тестовом модуле pod с тем же образом Linux создайте папку с именем mnt/smb.
Перейдите в корневой или домашний каталог, содержащий папку mnt .
Выполните следующую команду:
- mount -t cifs //{ip-address-smb-computer}/{file-share-name}/mnt/smb -o username={user-name}, password={password}
Чтобы убедиться, что артефакты правильно передаются, подключитесь к пути к общей папке SMB и проверьте, существуют ли файлы артефактов в правильной папке, указанной во время развертывания.