你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用混合部署为标准逻辑应用设置自己的基础结构(预览版)
适用于:Azure 逻辑应用(标准)
注意
此功能目前处于预览阶段,使用时需付费,且须遵守 Microsoft Azure 预览版补充使用条款。
有时,必须设置和管理自己的基础结构,以满足法规合规性、数据隐私或网络限制的特定需求。 Azure 逻辑应用提供混合部署模型,以便你在本地、私有云或公有云场景中部署和托管标准逻辑应用工作流。 如果需要使用本地处理、数据存储和网络访问,此模型支持在部分连接的环境中托管集成解决方案。 通过使用混合选项,你可以自由灵活地为工作流选择最佳环境。
混合部署的工作原理
使用混合部署选项的标准逻辑应用工作流由 Azure 逻辑应用运行时提供支持,该运行时托管在 Azure 容器应用扩展中。 在工作流中,任何内置操作都与运行时一起在本地运行,以便你在访问本地数据源时获得更高的吞吐量。 如果需要访问非本地数据资源,例如基于云的服务(如 Microsoft Office 365、Microsoft Teams、Salesforce、GitHub、LinkedIn 或 ServiceNow),则可以从 Azure 中托管的 1,000 多个连接器中选择要包含在工作流中的操作。 有关更多信息,请参阅托管(共享)连接器。 虽然需要有互联网连接才能在 Azure 门户中管理逻辑应用,但该平台的半连接特性可以便于你应对任何临时的互联网连接问题。
例如,如果你是用的是本地方案,以下体系结构概述显示了标准逻辑应用工作流在混合模型中的托管和运行位置。 部分连接的环境包括用于托管和使用标准逻辑应用的以下资源,系统会将这些应用部署为 Azure 容器应用资源:
- 已启用 Azure Arc 的 Azure Kubernetes 服务 (AKS) 群集
- 用于本地存储工作流运行历史记录、输入和输出以进行处理的 SQL 数据库
- 用于本地存储工作流使用的项目的服务器消息块 (SMB) 文件共享
对于托管,还可以在 Azure Stack 超融合基础结构 (HCI) 上设置和使用启用 Azure Arc 的 Kubernetes 群集,或在 Windows Server 上设置和使用启用 Azure Arc 的 Kubernetes 群集。
有关详细信息,请参阅以下文档:
- 什么是 Azure Kubernetes 服务?
- Azure Kubernetes 服务 (AKS) 的核心概念
- 已启用 Azure Arc 的 Kubernetes 群集的自定义位置
- 什么是 Azure 容器应用?
- Azure Arc 上的 Azure 容器应用
本操作指南介绍如何在基础结构中设置必要的本地资源,以便你可以使用混合部署模型创建、部署和托管标准逻辑应用工作流。
计费原理
在使用混合选项的情况下,你需要具备以下项目:
- 已启用 Azure Arc 的 Kubernetes 基础结构
- SQL Server 许可证
- 每个 vCPU 每小时 0.18 美元的计费费用,以支持标准逻辑应用工作负载
在这种计费模式中,只需为所需的资源付费,并可以根据变化的工作负载扩展资源,而无需为高峰使用情况购买资源。 对于使用 Azure 托管连接器操作(例如 Microsoft Teams 或 Microsoft Office 365)的工作流,现有的标准(单租户)定价适用于这些操作执行。
限制
混合部署当前可用,且仅支持以下启用 Azure Arc 的 Kubernetes 群集:
- 已启用 Azure Arc 的 Kubernetes 群集
- Azure Stack HCI 上已启用 Azure Arc 的 Kubernetes 群集
- Windows Server 上已启用 Azure Arc 的 Kubernetes 群集
先决条件
Azure 帐户和订阅。 如果没有订阅,可以注册免费的 Azure 帐户。
基本了解核心 AKS 概念
已启用 Azure Arc 的 Kubernetes 上的 Azure 容器应用的技术需求,包括访问公共或私有容器注册表,例如 Azure 容器注册表。
创建 Kubernetes 群集
在将标准逻辑应用作为本地资源部署到 Azure 容器应用连接环境中启用 Azure Arc 的 Kubernetes 群集之前,首先需要一个 Kubernetes 群集。 稍后需要将此群集连接到 Azure Arc,以便你拥有启用 Azure Arc 的 Kubernetes 群集。
Kubernetes 群集需要与你稍后创建为存储提供程序的 SQL 数据库以及稍后为工件存储创建的服务器消息块文件共享建立入站和出站连接。 这些资源必须存在于同一网络中。
注意
还可以在 Azure Stack HCI 基础结构上创建 Kubernetes 群集或在 Windows Server 上创建 Kubernetes 群集,并应用本指南中的步骤将群集连接到 Azure Arc 并设置连接环境。 有关 Windows Server 上的 Azure Stack HCI 和 AKS 的详细信息,请参阅以下资源:
为要创建的 Kubernetes 群集设置以下环境变量:
SUBSCRIPTION="<Azure-subscription-ID>" AKS_CLUSTER_GROUP_NAME="<aks-cluster-resource-group-name>" AKS_NAME="<aks-cluster-name>" LOCATION="eastus"
参数 必须 值 说明 SUBSCRIPTION 是 <Azure-subscription-ID> 你的 Azure 订阅的 ID AKS_CLUSTER_GROUP_NAME 是 <aks-cluster-resource-group-name> 要用于 Kubernetes 群集的 Azure 资源组的名称。 该名称在各个区域中必须独一无二,并且只能包含字母、数字、连字符 (-)、下划线 (_)、括号 (()) 和句点 (.)。
在此示例中为 Hybrid-RG。AKS_NAME 是 <aks-cluster-name> Kubernetes 群集的名称。 LOCATION 是 <Azure-region> 已启用 Azure Arc 的 Kubernetes 上支持 Azure 容器应用的 Azure 区域。
本示例使用 eastus。使用 Azure Cloud Shell 中的 Bash 环境或使用计算机上安装的 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
否 <max-nodes-value> 包含 enable-cluster-autoscaler
选项时自动缩放程序使用的最大节点数。 此值介于 1 到 1000 之间。min count
否 <min-nodes-value> 包含 enable-cluster-autoscaler
选项时自动缩放程序使用的最小节点数。 此值介于 1 到 1000 之间。有关更多信息,请参阅以下资源:
将 Kubernetes 群集连接到 Azure Arc
若要创建支持 Azure Arc 的 Kubernetes 群集,请将 Kubernetes 群集连接到 Azure Arc。
注意
可以在本节及后续步骤中找到有关在名为 EnvironmentSetup.ps1 的脚本中创建连接环境的步骤,该脚本位于名为 Azure/logicapps 的 GitHub 存储库中。 可以修改和使用此脚本来满足你的要求和方案。
脚本未签名,因此在运行脚本之前,请以管理员身份运行以下 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
有关更多信息,请参阅以下资源:
安装名为 kubectl 的 Kubernetes 命令行接口 (CLI):
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
有关更多信息,请参阅以下资源:
安装名为 Helm 的 Kubernetes 包管理器:
choco install kubernetes-helm
有关更多信息,请参阅以下资源:
使用以下 Helm 命令安装 SMB 驱动程序:
添加指定的图表存储库,获取可用图表的最新信息,并安装指定的图表存档。
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
有关更多信息,请参阅以下资源:
通过运行以下 kubectl 命令确认 SMB 驱动程序已安装就绪,该命令应列出 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 Arc 的群集和资源的 Azure 资源组提供一个名称:
GROUP_NAME="<Azure-Arc-cluster-resource-group-name>"
参数 必须 值 说明 GROUP_NAME 是 <Azure-Arc-cluster-resource-group-name> 要与启用 Azure Arc 的群集和其他资源(例如 Azure 容器应用扩展、自定义位置和 Azure 容器应用连接环境)一起使用的 Azure 资源组的名称。 该名称在各个区域中必须独一无二,并且只能包含字母、数字、连字符 (-)、下划线 (_)、括号 (()) 和句点 (.)。
在此示例中为 Hybrid-Arc-RG。为已启用 Azure Arc 的群集和资源创建 Azure 资源组:
az group create \ --name $GROUP_NAME \ --location $LOCATION
有关更多信息,请参阅以下资源:
设置以下环境变量,为已启用 Azure Arc 的 Kubernetes 群集提供名称:
CONNECTED_CLUSTER_NAME="$GROUP_NAME-cluster"
参数 必须 值 说明 CONNECTED_CLUSTER_NAME 是 <Azure-Arc-cluster-resource-group-name>-cluster 要用于已启用 Azure Arc 的群集的名称。 该名称在各个区域中必须独一无二,并且只能包含字母、数字、连字符 (-)、下划线 (_)、括号 (()) 和句点 (.)。
在此示例中为 Hybrid-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 属性值未设置为 Succeeded,请在一分钟后再次运行该命令。
有关更多信息,请参阅以下资源:
创建一个 Azure Log Analytics 工作区
(非必要,但建议)创建 Azure Log Analytics 工作区,该工作区提供对已启用 Azure Arc 的 Kubernetes 群集中运行的应用的日志的访问权限。
设置以下环境变量以为 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
有关更多信息,请参阅以下资源:
获取 Log Analytics 工作区的 base64 编码 ID 和共享密钥。 需要在后续步骤中用到这些值。
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 工作区的 ID。 LOG_ANALYTICS_WORKSPACE_ID_ENC 是 Log Analytics 工作区的 base64 编码 ID。 LOG_ANALYTICS_KEY 是 Log Analytics 工作区的共享密钥。 LOG_ANALYTICS_ENC 是 Log Analytics 工作区的 base64 编码共享密钥。 有关更多信息,请参阅以下资源:
创建并安装 Azure 容器应用扩展
现在,使用已启用 Azure Arc 的 Kubernetes 群集创建并安装 Azure 容器应用扩展作为本地资源。
重要
如果要部署到 Azure Stack HCI 上的 AKS,请在创建并安装 Azure 容器应用扩展之前,确保设置 HAProxy 或自定义负载均衡器。
将以下环境变量设置为以下值:
EXTENSION_NAME="logicapps-aca-extension" NAMESPACE="logicapps-aca-ns" CONNECTED_ENVIRONMENT_NAME="<connected-environment-name>"
参数 必须 值 说明 EXTENSION_NAME 是 logicapps-aca-extension Azure 容器应用扩展的名称。 NAMESPACE 是 logicapps-aca-ns 要在其中预配资源的群集命名空间。 CONNECTED_ENVIRONMENT_NAME 是 <connected-environment-name> 用于 Azure 容器应用连接环境的唯一名称。 此名称属于在 Azure 容器应用连接环境中创建、部署和托管的标准逻辑应用的域名。 为已启用 Azure Arc 的 Kubernetes 群集创建并安装启用了 Log Analytics 的扩展。 之后无法将 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 是 为自定义位置创建的服务帐户。
建议:将值设置为 default。appsNamespace 是 用于创建应用定义和修订的命名空间。 此值必须与 Azure 容器应用扩展的发布命名空间匹配。 clusterName 是 要为扩展创建的 Azure 容器应用扩展 Kubernetes 环境的名称。 keda.enabled 是 启用 Kubernetes 事件驱动的自动缩放 (KEDA)。 此值为必要项,必须设置为 true。 keda.logicAppsScaler.enabled 是 在 KEDA 中启用 Azure 逻辑应用缩放程序。 此值为必要项,必须设置为 true。 keda.logicAppsScaler.replicaCount 是 要启动的逻辑应用缩放程序的初始数量。 默认值设置为 1。 如果环境中不存在逻辑应用,则此值将增大或减小到 0。 containerAppController.api.functionsServerEnabled 是 启用负责将逻辑应用工作流触发器转换为 KEDA 缩放对象的服务。 此值为必要项,必须设置为 true。 envoy.externalServiceAzureILB 是 确定 envoy 是充当内部负载均衡器还是公开负载均衡器。
true- :envoy 充当内部负载均衡器。 Azure 逻辑应用运行时只能在专用网络中访问。
false- :envoy 充当公开负载均衡器。 可以通过公用网络访问 Azure 逻辑应用运行时。functionsProxyApiConfig.enabled 是 启用代理服务,以便从 Azure 门户通过 API 访问 Azure 逻辑应用运行时。 此值为必要项,必须设置为 true。 envoy.annotations.service.beta.kubernetes.io/azure-load-balancer-resource-group 是必要项,但仅当基础群集是 Azure Kubernetes 服务时才需要。 Kubernetes 群集所在的资源组的名称。 logProcessor.appLogs.destination 否 要用于应用程序日志的目标。 该值可以是 log-analytics 或 none,表示禁用日志记录。 logProcessor.appLogs.logAnalyticsConfig.customerId 是必要项,但仅当 logProcessor.appLogs.destination 设置为 log-analytics 时才需要。 Log Analytics 工作区的 base64 编码 ID。 请确保将此参数配置为受保护的设置。 logProcessor.appLogs.logAnalyticsConfig.sharedKey 是必要项,但仅当 logProcessor.appLogs.destination 设置为 log-analytics 时才需要。 Log Analytics 工作区的 base64 编码共享密钥。 请确保将此参数配置为受保护的设置。 有关更多信息,请参阅以下资源:
保存 Azure 容器应用扩展的 ID 值以供稍后使用:
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 是 <extension-ID> Azure 容器应用扩展的 ID。 有关更多信息,请参阅以下资源:
请等待扩展完全安装就绪后再继续。 若要让终端会话等待安装完成,请运行以下命令:
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> 已启用 Azure Arc 的 Kubernetes 群集的 ID。 有关更多信息,请参阅以下资源:
创建自定义位置:
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 属性值未设置为 Succeeded,请在一分钟后再次运行该命令。
保存自定义位置 ID,以便在后面的步骤中使用:
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> 自定义位置的 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 逻辑应用运行时使用的数据的存储提供程序,例如工作流运行历史记录、输入、输出等。
SQL 数据库需要与 Kubernetes 群集建立入站和出站连接,因此这些资源必须存在于同一网络中。
设置以下任一 SQL Server 版本:
- 本地 SQL Server
- Azure SQL 数据库
- Azure SQL 托管实例
- 已启用 Azure Arc 的 SQL Server
有关详细信息,请参阅为标准逻辑应用工作流设置 SQL 数据库存储。
确认 SQL 数据库与已启用 Arc 的 Kubernetes 群集和 SMB 文件共享位于同一网络中。
查找并保存所创建的 SQL 数据库的连接字符串。
为项目存储设置 SMB 文件共享
若要存储逻辑应用(容器应用)资源的映射、架构和程序集等项目,需要具有使用服务器消息块 (SMB) 协议的文件共享。
需要管理员访问权限才能设置 SMB 文件共享。
SMB 文件共享必须与 Kubernetes 群集和 SQL 数据库位于同一网络中。
SMB 文件共享需要与 Kubernetes 群集建立入站和出站连接。 如果启用了 Azure 虚拟网络限制,请确保文件共享与 Kubernetes 群集或对等互连虚拟网络位于同一虚拟网络中。
不要对多个逻辑应用使用相同的文件共享路径。
可以对每个逻辑应用使用单独的 SMB 文件共享,也可以在同一 SMB 文件共享中使用不同的文件夹,前提是这些文件夹未采用嵌套结构。 例如,不要让逻辑应用使用根路径,然后让另一个逻辑应用使用子文件夹。
若要使用 Visual Studio Code 部署逻辑应用,请确保具有 Visual Studio Code 的本地计算机可以访问文件共享。
在 Windows 上设置 SMB 文件共享
请确保 SMB 文件共享与装载文件共享的群集位于同一虚拟网络中。
在 Windows 中,转到要共享的文件夹,打开快捷菜单,选择“属性”。
在“共享”选项卡上,选择“共享”。
在打开的框中,选择要访问文件共享的人员。
选择“共享”,然后复制网络路径的链接。
如果本地计算机未连接到域,请将网络路径中的计算机名称替换为 IP 地址。
保存 IP 地址以稍后用作主机名。
将 Azure 文件设置为 SMB 文件共享
或者,出于测试目的,可以将 Azure 文件用作 SMB 文件共享。 请确保 SMB 文件共享与装载文件共享的群集位于同一虚拟网络中。
在存储帐户菜单的“数据存储”下,选择“文件共享”。
在“文件共享”页面工具栏中,选择“+ 文件共享”,并提供 SMB 文件共享所需的信息。
部署完成后,选择“转到资源”。
在文件共享菜单上,选择“概述”(如果未选中)。
在“概述”窗格工具栏上,选择“连接”。 在“连接”窗格中,选择“显示脚本”。
复制以下值并将其保存在安全的地方供以后使用:
- 文件共享的主机名,例如 mystorage.file.core.windows.net
- 文件共享路径
- 不含
localhost\
的用户名 - 密码
在“概述”页工具栏上,选择“+ 添加目录”,并提供用于目录的名称。 保存此名称以供以后使用。
部署逻辑应用资源时,需要这些已保存的值来提供 SMB 文件共享信息。
有关详细信息,请参阅创建 SMB Azure 文件共享。
确认 SMB 文件共享连接
若要测试已启用 Arc 的 Kubernetes 群集与 SMB 文件共享之间的连接,并检查文件共享是否已正确设置,请执行以下步骤:
如果 SMB 文件共享不在同一群集上,请确认 ping 操作是否适用于已启用 Arc 的 Kubernetes 群集,以及具有 SMB 文件共享的虚拟机。 若要检查 ping 操作是否正常运行,请执行以下步骤:
在已启用 Arc 的 Kubernetes 群集中,创建运行任何 Linux 映像(例如 BusyBox 或 Ubuntu)的测试 Pod。
转到 Pod 中的容器,并通过运行以下 Linux 命令安装 iputils-ping 包:
apt-get update apt-get install iputils-ping
若要确认 SMB 文件共享已正确设置,请执行以下步骤:
在具有相同 Linux 映像的测试 pod 中,创建一个名为 mnt/smb 路径的文件夹。
转到包含 mnt 文件夹的根目录或主目录。
运行下面的命令:
- mount -t cifs //{ip-address-smb-computer}/{file-share-name}/mnt/smb -o username={user-name}, password={password}
若要确认项目已正确上传,请连接到 SMB 文件共享路径,并检查项目文件是否存在于部署期间指定的正确文件夹中。