排查发布基于 Kubernetes 应用程序的容器产品/服务时出现的问题

发布后,基于 Kubernetes 应用程序的容器产品/服务将经历以下高级流进行捆绑处理。

A diagram showing the three stages of bundle processing, flowing from 'Copy the bundle to a Microsoft-owned registry' to 'Vulnerability scanning' to 'Extension type registration'.

首先,云本机应用程序捆绑包(CNAB)的内容从自己的注册表复制到 Microsoft 拥有的Azure 容器注册表(ACR)。 在此处执行漏洞扫描以确保映像安全。 最后,Kubernetes 应用程序注册为 Azure Kubernetes 服务 (AKS) 群集的扩展类型。 如果发布失败,则可能是其中一个组件出现问题。 有关常见错误和相关缓解步骤,请参阅下文。

发布失败,CNAB 中缺少项目

错误 说明 操作
“extensionRegistrationParameters 在包的 manifest.yaml 中不能为 null 或为空。 有关详细信息,请参阅 创建清单文件 Kubernetes 应用程序打包为 AKS 群集扩展。 清单文件为创建扩展类型提供输入。 阅读每个属性的说明并提供信息。
“在包的 manifest.yaml 中的 extensionRegistrationParameters 中,defaultScope 的命名空间不能为 null 或为空。 有关详细信息,请参阅 创建清单文件 群集范围内安装的 Kubernetes 应用程序使用作为命名空间提供的默认范围。 请务必在清单文件中的节中 extensionRegistrationParameters 提供命名空间

将项目从 ACR 复制到 Microsoft 拥有的 ACR 时发布失败

错误 说明 操作
“对注册表 {sourceACRName} 的访问被拒绝。 必须提供 MarketPlace 对注册表的访问权限。 有关详细信息,请参阅授予对Azure 容器注册表的访问权限 在发布过程中,Microsoft 会将 Kubernetes 应用程序(打包为 CNAB)并将其上传到 ACR,并将其上传到 Microsoft 拥有的注册表。

为此,必须向负责此过程的 Microsoft 第一方应用提供权限。 如果在未提供权限的情况下完成市场发布,则会出现此错误。
有关详细信息,请参阅 为 Microsoft 的第一方应用提供适当的权限
注册表 {sourceACRName} 中找不到 CNAB 存储库 {cnabBundle}。 必须提供 MarketPlace 对注册表的访问权限。 有关详细信息,请参阅授予对Azure 容器注册表的访问权限 在 ACR 中找不到使用 CPA 工具打包的 Kubernetes 应用程序。 确保捆绑包已成功上传到注册表,并为 Microsoft 的第一方应用提供适当的权限
“CNAB 在未更新版本的情况下进行了更新。 必须再次发布,并将版本从 {latestBundle.tag} 递增到 {currentTag.Major}。{currentTag.Minor}。{currentTag.Build + 1}。” 已使用不同的 CNAB 发布具有相同版本的计划。 如果 CNAB 内容已更改,请递增计划版本,然后重试发布。

发布失败,出现“CreateUIDefinition 配置”错误时,“ResourceGroup AllowExisting 必须设置为 true”

如果文件中的参数 > 配置 > basics > resourceGroup > allowExisting 属性 createUiDefinition.json 不存在或未设置为 true,则会发生此错误。

若要修复此错误,请确保属性设置为 true,如以下示例所示:

Screenshot of createUiDefinition.json file with appropriate parameters.

通过将“allowExisting”属性设置为 true,可以将应用程序部署到不为空的资源组。 有关示例 CreateUIDefinition 文件,请参阅 createUiDefinition.json 中的示例。

发布失败并出现平台错误

错误 说明 操作
内部服务器错误 可能是暂时性错误。 请尝试再次发布。

漏洞扫描

也可能因映像中的漏洞而遇到错误。 有关漏洞扫描以及如何缓解问题的详细信息,请参阅 容器认证故障排除