Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
本文详细介绍如何对适用于 Linux 的基于 Kubernetes 的新自承载集成运行时进行故障排除。
可在以下错误指南中查找你看到的任何错误。 若要获得 SHIR 问题的支持和故障排除指导,可能需要生成日志上传 ID 并联系 Azure 支持部门。
收集 Kubernetes 自承载集成运行时日志
若要为 Microsoft 支持部门生成日志上传 ID,请执行以下操作:
- 扫描显示“失败”状态后,导航到安装了 IRCTL 工具的 VM 或计算机。
- 使用
./irctl log upload命令。 - 上传日志后,保留打印的日志上传 ID 记录。
- 如果自承载集成运行时无法注册,请使用以下指南将日志下载到本地并将其发送到 Azure 支持
若要收集自承载集成运行时日志和扫描运行日志来排查 SHIR 问题,请使用 ./irctl log download命令。
例如:
./irctl log download --destination "C:\Users\user\logs\"
日志将下载到目标路径。
注意
日志保留 14 天。 通过将它上传到 Azure 或将其下载到本地计算机来保留它。
IRCTL 与 Kubernetes 连接错误
你可能从 Kubernetes 管理员处获取了 Kubernetes 上下文配置,而注册可能失败并显示以下错误消息之一:
Error: invalid flag context [] .kube/config: no such file or directory[Warning] Failed to create kube client with context [] with error
原因
安装自承载集成运行时时,需要正确的 Kubernetes 配置和稳定的连接。
解决方法
- 确保 Kubernetes 上下文文件位于正确的路径。
- 确保 IRCTL 计算机可以连接到 Kubernetes 群集 API 服务器。
IRCTL 权限错误
连接时可能会出现以下错误消息:
[Error] Failed to list namespaces to get Running SHIR[Error] Failed to get configmap/ create job/ etc.
原因
安装自承载集成运行时时,需要对多个 Kubernetes 资源具有足够的权限。
解决方法
使用管理员角色重新生成 Kubernetes 服务帐户令牌。
IRCTL 与 Microsoft Purview 服务终结点连接错误
尝试注册 Kubernetes 支持的自承载集成运行时时,IRCTL create 命令可能会返回以下错误:
[Error] Failed to register SHIR with error: Post “https://[REGION].compute.governance.azure.com/purviewAccounts/[]/integrationruntimes/[]/registerselfhostedintegrationruntime: []”
原因
IRCTL 无法连接到服务后端。 此类问题通常是由网络设置或防火墙导致的。
解决方法
检查 IRCTL 主机的网络拓扑。 请参阅常规集成运行时故障排除页面的以下部分:防火墙、DNSServer、SSL 证书信任和 http 代理。
注册密钥未获授权
尝试注册 Kubernetes 支持的自承载集成运行时时,IRCTL create 命令可能会返回以下错误:
[Error] failed to register SHIR with error: Request is not authorized.
原因
它们已过期或被手动撤销。
解决方法
从 Microsoft Purview 门户中的集成运行时页面重新生成密钥并再次注册。
Kubernetes 自承载 IR 创建超时错误
当你尝试注册 Kubernetes 支持的自承载集成运行时时,IRCTL create 命令可能会运行很长时间,并且最终超时。
可以首先检查 irctl describe 命令提到的命名空间下的 Pod 的状态。
例如:
./irctl describe
K8s SHIR Name:shir-demo
Purview AccountName: shirdemopurview
Installation ID: 00000000-0000-0000-0000-000000000000
Kubernetes Namespace: shirdemopurview-shir-demo, compute-fleet-system(control-plane)
K8s SHIR Version: Unknown (Installation not completed)
Status: Initializing
Healthiness: Unhealthy
kubectl get pods --namespace shirdemopurview-shir-demo
NAME READY STATUS RESTARTS AGE
batch-defaultspec-4pbwx 0/1 Pending 0 10m
batch-defaultspec-7t9bl 0/1 Pending 0 10m
dynamic-config-provider-778c686fdc-9mkjb 0/1 Pending 0 10m
interactive-schemaprocess-bcrmf 0/1 Pending 0 10m
interactive-schemaprocess-fn66x 0/1 Pending 0 10m
logagent-ds-84jqn 0/1 Pending 0 10m
logagent-ds-k7vw8 0/1 Pending 0 10m
user-credential-proxy-579c899b64-d4q5v 0/1 Pending 0 10m
有两个潜在原因:
原因 - 与 Microsoft Purview 服务终结点的连接
Kubernetes 无法连接到 MCR (mcr.microsoft.com)。 此错误通常是由网络设置或防火墙导致的。
如果看到状态为“ImagePullBackOff”,则表示 Kubernetes 无法连接到 MCR (mcr.microsoft.com) 来下载 Pod 映像。 此错误通常是由网络设置或防火墙导致的。
解决方法 -与 Microsoft Purview 服务终结点的连接
检查 Kubernetes 群集的网络拓扑。 例如,对于 Azure Kubernetes,应该检查:
注意
每个 Kubernetes 提供程序所需的故障排除步骤各不相同。 部署位置和各个网络详细信息因网络而异。 你需要查看通过组织网络的连接性。
检查 IRCTL 主机的网络拓扑。 请参阅常规集成运行时故障排除页面的以下部分:防火墙、DNSServer、SSL 证书信任和 http 代理。
原因 - Kubernetes 节点配置错误
如果某些 Pod 的状态停滞在“挂起”,请使用 describe pod 命令查看 Pod 的详细信息。
例如:
kubectl describe pod batch-defaultspec-4pbwx --namespace shirdemopurview-shir-demo
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 13m default-scheduler 0/5 nodes are available: 1 Too many pods. preemption: 0/5 nodes are available: 5 No preemption victims found for incoming pod..
describe 命令中的事件可以告知 Pod 挂起的原因。 带有详细消息的 FailedScheduling 错误显示 Pod 总数超过了节点上 Pod 的最大数目。 无法将新的 Pod 计划到所选节点。
注意
如果说明下没有看到事件,请尝试通过 kubectl delete pod 命令手动删除 Pod 并跟踪新创建的 Pod。
解决方法 - Kubernetes 节点配置错误
为 kubernetes 集成运行时保留 20 个 Pod 编号,以支持正常利用率和升级应用场景。
Kubernetes 与 Microsoft Purview 服务终结点连接错误
当你尝试注册 Kubernetes 支持的自承载集成运行时时,IRCTRL create 命令可能会运行很长时间,并且最终超时。或者,成功安装后,自承载集成运行时状态在 Microsoft Purview 门户中显示为不正常或脱机状态。
使用以下命令检查日志:kubectl logs [podName] -n compute-fleet-system
可能会看到以下错误之一:
“TraceMessage”:”HttpRequestFailed”, “Host”: “fleet.[REGION].compute.governance.azure.com”Exception":"System.Net.Http.HttpRequestException: Connection refused fleet.[REGION].compute.governance.azure.com:443System.AggregateException: Failed to acquire identity token from https://fleet. [REGION].compute.governance.azure.com:443
原因
Kubernetes 无法连接到服务后端。 此错误通常是由网络设置或防火墙导致的。
解决方法
检查 Kubernetes 群集的网络拓扑。 例如,对于 Azure Kubernetes,应该检查:
注意
每个 Kubernetes 提供程序所需的故障排除步骤各不相同。 部署位置和各个网络详细信息因网络而异。 你需要查看通过组织网络的连接性。
检查 IRCTL 主机的网络拓扑。 请参阅常规集成运行时故障排除页面的以下部分:防火墙、DNSServer、SSL 证书信任和 http 代理。
取消注册本地资源不可用的运行时
如果本地自承载集成运行时意外从 Kubernetes 群集中删除,则无法使用 命令将其删除irctl delete,并且无法将其安装到另一个 Kubernetes 群集。
原因
自承载集成运行时只能安装在一个 Kubernetes 群集上。 注册后,在取消注册之前无法将其安装在其他群集上。
解决方法
检查自承载集成本地状态。 应会出现未找到正在运行的自承载集成运行时的错误。
$./irctl describe在 Microsoft Purview 门户中检查自承载集成运行时。 应会看到“脱机”状态。 (不过,令牌过期时间有一个小时的延迟。)
选择状态旁边的“取消注册安装”并确认操作。
完成取消注册后,可以看到状态显示为“未注册”。
选择集成运行时并获取注册密钥。