排查 Azure 本地 Azure Arc VM 管理问题
适用于:Azure 本地版本 23H2
本文提供有关如何在 Azure 本地实例上收集日志并排查 Azure Arc 虚拟机(VM)问题的指导。 其中还列出了 Azure Arc VM 管理当前存在的限制和已知问题。
本部分描述与 Azure Arc VM 管理相关的错误及建议的解决方法。
尝试运行命令以启用来宾管理时,会看到以下错误:
错误: Deployment failed. Correlation ID: aaaa0000-bb11-2222-33cc-444444dddddd. VM Spec validation failed for guest agent provisioning: Invalid managed identity. A system-assigned managed identity must be enabled in parent resource: Invalid Configuration
此失败是因为未为此 VM 创建托管标识。 启用来宾管理需要系统分配的托管标识。
解决方法:
按照以下步骤验证是否未为此 VM 创建托管标识,然后启用系统分配的托管标识。
在Azure 门户中,转到 VM。 浏览到“ 概述 ”页。 在“属性”选项卡上的“配置”下,来宾管理应显示为“已禁用”。 从右上角选择 JSON 视图。
在参数下
Identity
,type
应显示为None
.若要创建托管标识,请通过 RDP 连接到 Azure 本地计算机。 运行下面的命令:
az extension add --name connectedmachine
验证是否已在系统上安装连接的计算机 CLI 扩展。 下面是已成功安装扩展的示例输出。 指示
connectedmachine
已安装版本 0.7.0。[v-hostl]: PS C:\Clusterstorage\lnfrastructure_l\ArcHci> az version { "azure-cli": "2.53.0", "azure-cli-core": "2.53.0", "azure-cli-telemetry": "1.1.0", "extensions": { "akshybrid": "0.1.1", "arcappliance"^ "1.0.2", "connectedk8s": "1.5.4", "connectedmachine": "0.7.0", "customlocation": "0.1.3", "hybridaks": "0.2.4", "k8s-extension": "1.4.5", "stack-hci-vm": "0.1.8" } } [v-hostl]: PS C:\ClusterStorage\Infrastructure_l\ArcHci> ```
运行以下命令,将系统托管标识分配给 VM。
az connectedmachine update --ids "<Resource Manager ID for the VM>" --set identity.type="SystemAssigned"
转到Azure 门户并浏览到“概述”页。 JSON 视图应指示系统托管标识现在已分配给 VM。
尝试从 Azure 本地存储帐户部署 VM 映像时,会看到以下错误:
错误: {"code":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=AuthorizationPermissionMismatch) =====\nDescription=, Details: (none)\n","message":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=AuthorizationPermissionMismatch) =====\nDescription=, Details: (none)\n"}
或者,你会看到此错误:
错误: {"code":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=NoAuthenticationInformation) =====\nDescription=, Details: (none)\n","message":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=NoAuthenticationInformation) =====\nDescription=, Details: (none)\n"}
失败的原因是创建映像的用户没有从存储帐户访问映像的适当权限。 用户必须在用于映像的存储帐户上具有 存储 Blob 数据参与者 角色。 有关详细信息,请参阅 分配 Azure 角色 以访问 Blob 数据。
解决方法:
将 存储 Blob 数据参与者 角色添加到需要从此存储帐户创建映像的用户。 添加角色后,请重试部署映像。
尝试从存储帐户部署 VM 映像时,也可能看到以下错误:
错误: {"code":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=InvalidBlobType) =====\nDescription=The blob type is invalid for this operation.\nRequestId:5e74055f-e01e-0033-66eb-ff9734000000\nTime:2024-09-05T23:32:56.3001852Z, Details: (none)\n","message":"moc-operator galleryimage serviceClient returned an error while reconciling: rpc error: code = Unknown desc = ===== RESPONSE ERROR (ErrorCode=InvalidBlobType) =====\nDescription=The blob type is invalid for this operation.\nRequestId:5e74055f-e01e-0033-66eb-ff9734000000\nTime:2024-09-05T23:32:56.3001852Z, Details: (none)\n","additionalInfo":[{"type":"ErrorInfo","info":{"category":"Uncategorized","recommendedAction":"","troubleshootingURL":""}}]}
此失败是因为存储帐户中的 Blob 类型不正确。 图像的类型必须为 page blob
类型。
解决方法:
将映像上传到存储帐户, page blob format
然后重试部署映像。
确保用户具有正确的权限,并且 Blob 的格式正确。 有关详细信息,请参阅从Azure 存储帐户添加 VM 映像。
尝试在 Azure 本地部署 Arc VM 时,会看到以下错误:
错误: {"code":"ConflictingOperation","message":"Unable to process request 'Microsoft.AzureStackHCI/virtualMachineInstances'. There is already a previous running operation for resource '/subscriptions/<subscription ID>/resourceGroups/<Resource group name>/providers/Microsoft.HybridCompute/machines/<VM name>/providers/Microsoft.AzureStackHCI/virtualMachineInstances/default'. Please wait for the previous operation to complete."}
此失败是因为 SystemAssigned
托管标识对象不在资源类型下 Microsoft.HybridCompute/machines
。
解决方法:
在部署模板中验证:
托管 SystemAssigned
标识对象位于资源类型下 Microsoft.HybridCompute/machines
,不在资源类型下 Microsoft.AzureStackHCI/VirtualMachineInstances
。
部署模板应与提供的示例模板匹配。 有关详细信息,请参阅 Azure 本地创建 Arc 虚拟机中的示例模板。
尝试删除 Azure 本地实例上的存储路径时,可能会看到类似于以下消息的错误。 资源编号和版本在方案中可能有所不同。
错误: "errorMessage" serviceClient returned an error during deletion: The storage container service returned an error during deletion: rpc error: code = Unknown desc = Container is in ACTIVE use by Resources [6:
- linux-cblmariner-0.2.0.10503
- windows-windows2019-0.2.0.10503
- windows-windows2022-0.2.0.10503
].
Remove all the Resources from this container, before trying to delete: In Use: Failed,
解决方法:
错误消息中列出的映像不同于典型工作负荷,这些工作负荷表示为 Azure 门户 和 CLI 上的 Azure 资源管理器 (ARM) 对象。 发生此错误的原因是这些映像直接下载到文件系统上,Azure 无法识别这些映像。
在尝试删除存储路径之前,请按照以下步骤操作:
- 删除要删除的存储路径上存在的关联工作负载和映像。 在图像名称上查找以下前缀:
linux-cblmariner
、、windows-windows2019
、windows-windows2022
windows_k8s
、aks-image-merged
linux-K8s
。 - 在Azure 门户中提交支持票证。
如果你的环境在安装 Azure CLI 后无法识别它,请运行以下代码块,将 Azure CLI 安装路径添加到环境路径。
if ( -not( $env:PATH -like '*C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin*') ) {
$env:PATH += "C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin;"
Write-Host "Updated path $env:PATH"
}