工件流式处理故障排除

本文中的故障排除步骤可帮助你解决在 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

若要排查此问题,请检查以下准则:

  1. 验证 AKS 是否有权访问容器注册表 mystreamingtest.azurecr.cn
  2. 确保容器注册表 mystreamingtest.azurecr.cn 可访问并已正确附加到 AKS。

检查“UpgradeIfStreamableDisabled”Pod 条件:

如果 AKS Pod 状态显示“UpgradeIfStreamableDisabled”,请检查映像是否来自于 Azure 容器注册表。

将摘要而不是标记用于流式处理项目:

如果使用摘要而不是标记(例如,mystreamingtest.azurecr.cn/jupyter/all-spark-notebook@sha256:4ef83ea6b0f7763c230e696709d8d8c398e21f65542db36e82961908bcf58d18)部署流式处理项目,AKS Pod 事件和条件消息将不包括流式处理相关信息。 但是,你会看到快速容器作为基础容器引擎启动。 如果检测到实际图像内容已被流式传输,此引擎会将图像流式传输到 AKS。