工件流式处理故障排除
本文中的故障排除步骤可帮助你解决在 Azure 容器注册表中使用项目流式处理时可能遇到的常见问题。 这些步骤和建议有助于诊断和解决与项目流式处理相关的问题,并提供基础过程和日志的见解进行调试。
现象
- 由于发生未知错误,转换操作失败。
- 排查 AKS Pod 部署失败的问题。
- Pod 条件指示“UpgradeIfStreamableDisabled”。
- 对流式处理项目使用摘要而不是标记。
原因
- 出现身份验证、网络延迟、图像检索、流式处理操作或其他问题。
- 出现映像拉取或流式处理、流式处理项目配置、映像源和资源约束问题。
- 出现 ACR 配置或权限问题。
转换操作失败
错误代码 | 错误消息 | 故障排除信息 |
---|---|---|
UNKNOWN_ERROR | 由于发生未知错误,转换操作失败。 | 由内部错误引起。 在这种情况下,重试会有所帮助。 如果重试失败,请联系支持人员。 |
RESOURCE_NOT_FOUND | 由于找不到目标资源,转换操作失败。 | 如果在注册表中找不到目标映像,请验证映像摘要中是否存在拼写错误、 是否已删除映像,或目标区域中缺少映像(例如,复制一致性不是即时的) |
UNSUPPORTED_PLATFORM | 映像平台当前不支持转换。 | 最初仅支持 linux/amd64 映像。 |
NO_SUPPORTED_PLATFORM_FOUND | 索引中的任何映像平台当前都不支持转换。 | 最初仅支持 linux/amd64 映像。 目标索引中找不到具有此平台的图像。 |
UNSUPPORTED_MEDIATYPE | 映像 MediaType 不支持转换。 | 转换只能针对媒体类型的映像:application/vnd.oci.image.manifest.v1+json、application/vnd.oci.image.index.v1+json、application/vnd.docker.distribution.manifest.v2+json 或 application/vnd.docker.distribution.manifest.list.v2+json |
UNSUPPORTED_ARTIFACT_TYPE | 映像 ArtifactType 不支持转换。 | 流式处理项目(项目类型:application/vnd.azure.artifact.streaming.v1)无法再次转换。 |
IMAGE_NOT_RUNNABLE | 不可运行的映像不支持转换。 | 最初仅支持 linux/amd64 可运行映像。 |
排查 AKS Pod 部署失败的问题
如果 AKS Pod 部署失败,并出现与映像拉取相关的错误,如以下示例所示。
Failed to pull image "mystreamingtest.azurecr.cn/jupyter/all-spark-notebook:latest":
rpc error: code = Unknown desc = failed to pull and unpack image
"mystreamingtest.azurecr.cn/latestobd/jupyter/all-spark-notebook:latest":
failed to resolve reference "mystreamingtest.azurecr.cn/jupyter/all-spark-notebook:latest":
unexpected status from HEAD request to http://localhost:8578/v2/jupyter/all-spark-notebook/manifests/latest?ns=mystreamingtest.azurecr.cn:503 Service Unavailable
若要排查此问题,请检查以下准则:
- 验证 AKS 是否有权访问容器注册表
mystreamingtest.azurecr.cn
。 - 确保容器注册表
mystreamingtest.azurecr.cn
可访问并已正确附加到 AKS。
检查“UpgradeIfStreamableDisabled”Pod 条件:
如果 AKS Pod 状态显示“UpgradeIfStreamableDisabled”,请检查映像是否来自于 Azure 容器注册表。
将摘要而不是标记用于流式处理项目:
如果使用摘要而不是标记(例如,mystreamingtest.azurecr.cn/jupyter/all-spark-notebook@sha256:4ef83ea6b0f7763c230e696709d8d8c398e21f65542db36e82961908bcf58d18)部署流式处理项目,AKS Pod 事件和条件消息将不包括流式处理相关信息。 但是,你会看到快速容器作为基础容器引擎启动。 如果检测到实际图像内容已被流式传输,此引擎会将图像流式传输到 AKS。