适用于:Azure Stack HCI 版本 22H2
本文介绍了如何在 Azure Stack HCI 服务器计算机上安装、升级和管理 Azure Arc 扩展。
Azure Stack HCI 上客户管理的 Azure Arc 扩展
可以在 Azure Stack HCI 系统上安装、卸载和更新 Azure Arc 扩展。 借助 Azure Arc,可以在 Azure 门户中运行监视和 Windows Admin Center 等混合服务。
下面是可以安装和管理的各个扩展。
Azure Stack HCI 中的 Azure 托管扩展
向 Azure 成功注册新的 Azure Stack HCI 群集后,Azure 托管扩展将自动安装在群集上。 这些扩展对于系统的功能和质量至关重要,无法卸载。 可以在 Azure 门户中管理这些扩展的行为,方法是导航到“扩展”页并选择“设置”菜单。
如果有现有的 Azure Stack HCI 群集(该群集已注册到 Azure,但没有这些扩展),Azure 门户的“概述”或“扩展”页上会显示一条横幅。 可以使用横幅中的信息来指导你安装这些扩展。
下面是 Azure 托管扩展:
安装扩展
可以从已启用 Azure Stack HCI Arc 的服务器的“功能”选项卡中安装扩展,如屏幕截图所示。 可使用“功能”选项卡安装大多数扩展。
在 Azure 门户中安装扩展时,它是一个群集感知操作。 该扩展安装在群集的所有服务器上。 如果将更多服务器添加到群集,群集上安装的所有扩展将自动添加到新服务器。
设置订阅、资源组和群集的参数
subscription="00000000-0000-0000-0000-000000000000" # Replace with your subscription ID
resourceGroup="hcicluster-rg" # Replace with your resource group name
az account set --subscription "${subscription}"
clusters=($(az graph query -q "resources | where type == 'microsoft.azurestackhci/clusters'| where resourceGroup =~ '${resourceGroup}' | project name" | jq -r '.data[].name'))
若要在资源组下的所有群集上安装 Windows Admin Center 扩展,请运行以下命令:
extensionName="AdminCenter"
extensionType="AdminCenter"
extensionPublisher="Microsoft.AdminCenter"
settingsConfig="{'port':'6516'}"
connectivityProps="{enabled:true}"
for cluster in ${clusters}; do
echo "Enabling Connectivity for cluster $currentCluster"
az stack-hci arc-setting update \
--resource-group ${resourceGroup} \
--cluster-name ${cluster} \
--name "default" \
--connectivity-properties ${connectivityProps}
echo "Installing extension: ${extensionName} on cluster: ${cluster}"
az stack-hci extension create \
--arc-setting-name "default" \
--cluster-name "${cluster}" \
--resource-group "${resourceGroup}" \
--name "${extensionName}" \
--auto-upgrade "true" \
--publisher "${extensionPublisher}" \
--type "${extensionType}" \
--settings "${settingsConfig}"
done
若要在资源组下的所有群集上安装 Azure Monitor 代理扩展,请运行以下命令:
extensionName="AzureMonitorWindowsAgent"
extensionType="AzureMonitorWindowsAgent"
extensionPublisher="Microsoft.Azure.Monitor"
for cluster in ${clusters}; do
echo "Installing extension: ${extensionName} on cluster: ${cluster}"
az stack-hci extension create \
--arc-setting-name "default" \
--cluster-name "${cluster}" \
--resource-group "${resourceGroup}" \
--name "${extensionName}" \
--auto-upgrade "true" \
--publisher "${extensionPublisher}" \
--type "${extensionType}"
done
若要在资源组下的所有群集上安装 Azure Site Recovery 扩展,请运行以下命令:
asrSubscription="00000000-0000-0000-0000-000000000000" # Replace with your ASR subscription ID
asrResourceGroup="asr-rg" # Replace with your ASR resource group
asrVaultName="asr-vault" # Replace with your ASR vault name
asrLocation="China East 2" # Replace with your ASR Location
asrSiteId="00000000-0000-0000-0000-000000000000" # Replace with your ASR Site ID
asrSiteName="asr-site" # Replace with your Site Name
asrSitePolicyId="/subscriptions/${asrSubscription}/resourceGroups/${asrResourceGroup}/providers/Microsoft.RecoveryServices/vaults/${asrVaultName}/replicationPolicies/s-cluster-policy" # Replace with your Site Policy name
extensionName="ASRExtension"
extensionType="Windows"
extensionPublisher="Microsoft.SiteRecovery.Dra"
jsonFile="./tmp-asr.json" #Temp JSON file
echo "{\"SubscriptionId\": \"${asrSubscription}\", \"Environment\": \"AzureChinaCloud\",\"ResourceGroup\": \"${asrResourceGroup}\",\"Location\": \"${asrLocation}\",\"SiteId\": \"${asrSiteId}\", \"SiteName\": \"${asrSiteName}\", \"PolicyId\": \"${asrSitePolicyId}\", \"PrivateEndpointStateForSiteRecovery\": \"None\" }" > ${jsonFile}
for cluster in ${clusters}; do
echo "Installing extension: ${extensionName} on cluster: ${cluster}"
az stack-hci extension create \
--arc-setting-name "default" \
--cluster-name "${cluster}" \
--resource-group "${resourceGroup}" \
--name "${extensionName}" \
--auto-upgrade "true" \
--publisher "${extensionPublisher}" \
--type "${extensionType}" \
--settings "${jsonFile}"
done
设置订阅、资源组和群集的参数:
$subscription = "00000000-0000-0000-0000-000000000000" # Replace with your subscription ID
$resourceGroup = "hcicluster-rg" # Replace with your resource group name
Set-AzContext -Subscription "${subscription}"
$clusters = Get-AzResource -ResourceType "Microsoft.AzureStackHCI/clusters" -ResourceGroupName ${resourceGroup} | Select-Object -Property Name
若要在资源组下的所有群集上安装 Windows Admin Center 扩展,请运行以下命令:
$extensionName = "AdminCenter"
$extensionType = "AdminCenter"
$extensionPublisher = "Microsoft.AdminCenter"
$settingsConfig = @{"port" = 6516 }
foreach ($cluster in $clusters) {
$clusterName = ${cluster}.Name
Write-Output ("Enable connectivity for cluster ${clusterName}")
Invoke-AzRestMethod `
-Method PATCH `
-SubscriptionId ${subscription} `
-ResourceGroupName ${resourceGroup} `
-ResourceProviderName "Microsoft.AzureStackHCI" `
-ResourceType ("clusters/" + ${clusterName} + "/arcSettings") `
-Name "default" `
-ApiVersion "2023-02-01" `
-Payload (@{"properties" = @{ "connectivityProperties" = @{ "enabled" = $true } } } | ConvertTo-Json -Depth 5)
Write-Output ("Installing Extension '${extensionName}' on cluster ${clusterName}")
New-AzStackHciExtension `
-ClusterName "${clusterName}" `
-ResourceGroupName "${resourceGroup}" `
-ArcSettingName "default" `
-Name "${extensionName}" `
-ExtensionParameterPublisher "${extensionPublisher}" `
-ExtensionParameterType "${extensionType}" `
-ExtensionParameterSetting ${settingsConfig} `
-NoWait
}
若要在资源组下的所有群集上安装 Azure Monitor 代理扩展,请运行以下命令:
$extensionName = "AzureMonitorWindowsAgent"
$extensionType = "AzureMonitorWindowsAgent"
$extensionPublisher = "Microsoft.Azure.Monitor"
foreach ($cluster in $clusters) {
$clusterName = ${cluster}.Name
Write-Output ("Installing Extension '${extensionType}/${extensionPublisher}' on cluster ${clusterName}")
New-AzStackHciExtension `
-ClusterName "${clusterName}" `
-ResourceGroupName "${resourceGroup}" `
-ArcSettingName "default" `
-Name "${extensionName}" `
-ExtensionParameterPublisher "${extensionPublisher}" `
-ExtensionParameterType "${extensionType}"
}
若要在资源组下的所有群集上安装 Azure Site Recovery 扩展,请创建 JSON 参数文件,然后运行以下命令:
$settings = @{
SubscriptionId = "<Replace with your Subscription Id>"
Environment = "<Replace with the cloud environment type. For example: AzureChinaCloud>"
ResourceGroup = "<Replace with your Site Recovery Vault resource group>"
ResourceName = "<Replace with your Site Recovery Vault Name>"
Location = "<Replace with your Site Recovery Azure Region>"
SiteId = "<Replace with the ID of your recovery site>"
SiteName = "<Replace with your recovery site name>"
PolicyId = "<Replace with resource ID of your recovery site policy>"
PrivateEndpointStateForSiteRecovery = "None"
}
$extensionName = "ASRExtension"
$extensionType = "Windows"
$extensionPublisher = "Microsoft.SiteRecovery.Dra"
foreach ($cluster in $clusters) {
$clusterName = ${cluster}.Name
Write-Output ("Installing Extension '${extensionType}/${extensionPublisher}' on cluster ${clusterName}")
New-AzStackHciExtension `
-ClusterName "${clusterName}" `
-ResourceGroupName "${resourceGroup}" `
-ArcSettingName "default" `
-Name "${extensionName}" `
-ExtensionParameterPublisher "${extensionPublisher}" `
-ExtensionParameterType "${extensionType}" `
-ExtensionParameterSetting ${settings} `
-NoWait
}
检查扩展状态
可以通过查看网格的状态列,从“扩展”页检查每台服务器上的扩展状态。
设置订阅、资源组、群集名称和扩展名的参数
subscription="00000000-0000-0000-0000-000000000000" # Replace with your subscription ID
resourceGroup="hcicluster-rg" # Replace with your resource group name
clusterName="HCICluster" # Replace with your cluster name
extensionName="AzureMonitorWindowsAgent" # Replace with the extension name
az account set --subscription "${subscription}"
若要列出群集上的所有扩展,请运行以下命令:
az stack-hci extension list \
--arc-setting-name "default" \
--cluster-name "${clusterName}" \
--resource-group "${resourceGroup}" \
-o table
若要筛选出特定扩展(如 AzureMonitorWindowsAgent
),请运行以下命令:
az stack-hci extension list \
--arc-setting-name "default" \
--cluster-name "${clusterName}" \
--resource-group "${resourceGroup}" \
--query "[?name=='${extensionName}'].{Name:name, ManagedBy:managedBy, ProvisionStatus:provisioningState, State:aggregateState, Type:extensionParameters.type}" \
-o table
设置订阅、资源组、群集名称的参数
$subscription = "00000000-0000-0000-0000-000000000000" # Replace with your subscription ID
$resourceGroup = "hcicluster-rg" # Replace with your resource group name
Set-AzContext -Subscription "${subscription}"
$clusters = Get-AzResource -ResourceType "Microsoft.AzureStackHCI/clusters" -ResourceGroupName ${resourceGroup} | Select-Object -Property Name
若要列出群集上的所有扩展,请运行以下命令:
foreach ($cluster in $clusters) {
$clusterName = ${cluster}.Name
Get-AzStackHciExtension `
-ClusterName "${clusterName}" `
-ResourceGroupName "${resourceGroup}" `
-ArcSettingName "default"|Format-Table -Property Name, ParameterType, ParameterPublisher, ParameterEnableAutomaticUpgrade, ProvisioningState
}
扩展升级的工作原理
在扩展发布者团队发布新版本后,扩展升级过程会将现有扩展版本替换为新支持的版本。 除非你明确选择禁用自动升级,否则对于在已启用 Azure Stack HCI Arc 的群集上部署的所有扩展,默认情况下会启用自动扩展升级功能。
目前,自动扩展升级仅在 Windows Admin Center 扩展中受支持,但将来会添加更多扩展。
注意
默认情况下,所有扩展都设置为启用自动升级,即使某个扩展不支持自动扩展升级,也是如此。 然而,在扩展发布者选择支持自动扩展升级之前,此默认设置不起作用。
启用自动扩展升级
对于某些扩展,可以通过扩展管理启用自动升级。
若要启用自动升级,请导航至“扩展”页并执行以下步骤:
选择要为其启用自动升级的扩展。
在顶部菜单中选择“启用自动升级”
当系统提示你确认意图时,请选择“确定”。
若要为特定扩展(如 AzureMonitorWindowsAgent
)安装和启用自动升级,请运行以下命令:
clusterName="HCICluster" # Replace with your cluster name
resourceGroup="hcicluster-rg" # Replace with your resource group name
extensionName="AzureMonitorWindowsAgent"
extensionPublisher="Microsoft.Azure.Monitor"
extensionType="AzureMonitorWindowsAgent"
az stack-hci extension create \
--name "${extensionName}" \
--arc-setting-name "default" \
--cluster-name "${clusterName}" \
--resource-group "${resourceGroup}" \
--publisher ${extensionPublisher} \
--type ${extensionType} \
--auto-upgrade "true"
若要为特定扩展(如 AzureMonitorWindowsAgent
)安装和启用自动升级,请运行以下命令:
$clusterName = "HCICluster" # Replace with your cluster name
$resourceGroup = "hcicluster-rg" # Replace with your resource group name
$extensionName = "AzureMonitorWindowsAgent"
$extensionType = "AzureMonitorWindowsAgent"
$extensionPublisher = "Microsoft.Azure.Monitor"
New-AzStackHciExtension `
-ClusterName "${clusterName}" `
-ResourceGroupName "${resourceGroup}" `
-ArcSettingName "default" `
-Name "${extensionName}" `
-ExtensionParameterPublisher "${extensionPublisher}" `
-ExtensionParameterType "${extensionType}" `
-ExtensionParameterEnableAutomaticUpgrade
通过 Azure 门户手动升级扩展
手动扩展升级类似于自动扩展升级。 在已启用 Azure Stack HCI Arc 的群集上,当你手动升级扩展时,Azure 会保存你选择的版本。 然后,Azure 会尝试将群集中所有服务器上的扩展升级到该版本。
在某些服务器上,如果扩展升级失败,平台会尝试在下一次 Azure Stack HCI 云同步期间升级到所选版本。
对于以下情况请使用手动工作流:
若要手动升级扩展,请执行以下步骤:
转到“扩展”页。
选择要升级的扩展,然后在顶部菜单中选择“设置”。
选择最新版本,然后选择“保存”。
禁用自动扩展升级
可以在 Azure 门户中禁用某些扩展的自动升级。 若要禁用自动升级,请导航至“扩展”页并执行以下步骤:
选择要为其禁用自动升级的扩展。
在顶部菜单中选择“禁用自动升级”。
当系统提示你确认意图时,请选择“确定”。
检查扩展升级历史记录
可以查看已启用 Azure Arc 的单个服务器资源、资源组和订阅的“活动日志”选项卡,以检查单个群集节点的自动扩展升级历史记录。 有关详细信息,请参阅检查自动扩展升级历史记录。
可用性优先更新
如果有一组已启用 Azure Stack HCI Arc 的群集正在进行升级,Azure 平台会使用自动扩展升级模型来协调升级。
自动扩展升级的时间安排
发布受支持扩展的新版本后,可以在已启用 Azure Arc 的服务器上安装和手动升级到该版本。 升级是跨 Azure 区域和订阅分批发布的,因此你可能发现,某些服务器先于其他服务器发生扩展升级。 有关详细信息,请参阅自动扩展升级的时间安排。
若要立即升级扩展,请参阅通过 Azure 门户手动升级扩展。
自动回滚和重试
如果扩展升级失败,Azure 会执行与自动回滚和重试关联的操作以尝试修复该扩展。
如果扩展升级仍然出现问题,你可以禁用自动扩展升级。 禁用自动升级可以防止系统在你排查问题时重试升级。 准备就绪后,可以再次启用自动扩展升级。
涉及多个扩展的升级
如果一台计算机有多个扩展升级可用,则它们可能一同进行批处理。 但是,每个扩展升级都在计算机上单独应用。 有关详细信息,请参阅涉及多个扩展的扩展升级。
卸载扩展
如果需要,你可以在 Azure 门户中从 Azure Stack HCI 群集卸载某些扩展。 若要卸载扩展,请使用以下步骤:
转到“扩展”页。
选择要卸载的扩展。 卸载按钮不适用于 Azure 托管的扩展。
在顶部菜单中选择“卸载”。
确认意图,然后选择“是”。
若要删除特定扩展(如 AzureMonitorWindowsAgent
),请运行以下命令:
extensionName="AzureMonitorWindowsAgent" # Replace with the extension name
resourceGroup="hcicluster-rg" # Replace with your resource group name
clusterName="HCICluster" # Replace with your cluster name
az stack-hci extension delete \
--arc-setting-name "default" \
--name "${extensionName}" \
--cluster-name "${clusterName}" \
--resource-group "${resourceGroup}"
若要删除特定扩展(如 AzureMonitorWindowsAgent
),请运行以下命令:
$clusterName = "HCICluster" # Replace with your cluster name
$resourceGroup = "hcicluster-rg" # Replace with your resource group name
$extensionName = "AzureMonitorWindowsAgent"
Remove-AzStackHciExtension `
-ClusterName "${clusterName}" `
-ResourceGroupName "${resourceGroup}" `
-ArcSettingName "default" `
-Name "${extensionName}"
故障排除扩展错误
扩展状态:失败
建议:对于状态为失败的扩展,请选择“失败(查看详细信息)”链接。 查看有关失败的所有信息并应用故障排除提示。
下一步
了解如何在已启用 Azure Arc 的服务器上进行虚拟机扩展管理。