排查发布基于 Kubernetes 应用程序的容器产品/服务时出现的问题
发布后,基于 Kubernetes 应用程序的容器产品/服务将经历以下高级流进行捆绑处理。
首先,云本机应用程序捆绑包(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,如以下示例所示:
通过将“allowExisting”属性设置为 true,可以将应用程序部署到不为空的资源组。 有关示例 CreateUIDefinition 文件,请参阅createUiDefinition.json的示例。
发布失败并出现平台错误
错误 | 说明 | 操作 |
---|---|---|
内部服务器错误 | 可能是暂时性错误。 | 请尝试再次发布。 |
漏洞扫描
也可能因映像中的漏洞而遇到错误。 有关漏洞扫描以及如何缓解问题的详细信息,请参阅 容器认证故障排除。