你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure Operator Service Manager (AOSM) 容器化网络功能 (CNF) 部署期间诊断 Helm 安装失败的技术

CNF 可以像具有少量配置参数的单个 helm 包一样简单,也可以像具有数千个配置参数的数十个 helm 包一样复杂。 本文介绍调试 helm 安装失败的一系列常见故障排除步骤。

使用直接 helm 命令确认 helm 包安装正确

AOSM 无法安装通过不正确的 helm 图表或错误配置 values.yaml 文件生成的 CNF。 有两个基本先决条件:

  • CNF 中包含的每个 helm 图表都必须在提供用于部署图表的值集时传递 helm template
  • 直接在 Azure Arc 连接的 Kubernetes 群集上运行时,helm install 必须成功

测试你的 helm 图表是否符合这些先决条件。 请确保使用在通过 AOSM 进行部署时要使用的同一 helm 值进行测试。

  • 可以使用群集连接连接到 Azure 运营商关系 Kubernetes 群集,并使用 helm 安装来安装 helm 图表。

确认你的网络功能 (NF) ARM 模板已将 --atomic 设置为 false

默认情况下,AOSM 会从群集中删除失败的安装以减少资源使用量。 这可以防止故障方案中的详细调试。 NF ARM 模板支持重写此行为。 使用此操作指南配置 AOSM 以保留失败的安装。

确认网络功能 (NF) Azure 资源管理器 (ARM) 模板使用项目存储注入

AOSM 支持对 helm 图表进行零接触载入。 此功能在 NF ARM 模板中配置,如果使用 Az CLI AOSM 扩展载入 CNF,则会自动启用此功能。

  1. 从项目存储下载 NF ARM 模板。
  2. 确认 Microsoft.HybridNetwork/networkFunctionsroleOverrideValues 属性包含以下代码片段。 此代码片段使用从三个独立的 Helm 图表构建的虚构 Contoso CNF。 这些 helm 图表在网络功能定义版本 (NFDV) 中建模为三个网络功能应用程序。 ARM 模板应具有 NFDV 中每个网络功能应用程序的 roleOverrideValues 数组中的一个元素。
roleOverrideValues: ["{\"name\": \"Contoso-one\", \"deployParametersMappingRuleProfile\": {\"applicationEnablement\": \"Enabled\", \"helmMappingRuleProfile\": {\"options\": {\"installOptions\": {\"injectArtifactStoreDetails\":\"true\"}},{\"upgradeOptions\": {\"injectArtifactStoreDetails\":\"true\"}}}}},{\"name\": \"Contoso-two\", \"deployParametersMappingRuleProfile\": {\"applicationEnablement\": \"Enabled\", \"helmMappingRuleProfile\": {\"options\": {\"installOptions\": {\"injectArtifactStoreDetails\":\"true\"}},{\"upgradeOptions\": {\"injectArtifactStoreDetails\":\"true\"}}}}},{\"name\": \"Contoso-three\", \"deployParametersMappingRuleProfile\": {\"applicationEnablement\": \"Enabled\", \"helmMappingRuleProfile\": {\"options\": {\"installOptions\": {\"injectArtifactStoreDetails\":\"true\"}},{\"upgradeOptions\": {\"injectArtifactStoreDetails\":\"true\"}}}}}"]

如果 ARM 模板不包含每个网络功能应用程序的 \"injectArtifactStoreDetails\":\"true\" 设置,请编辑 ARM 模板以在 NFDV 中包含每个网络功能应用程序的设置,并将 ARM 模板上传到项目存储。

使用 AOSM Azure 门户查看 SNS 部署错误

  1. 访问 Azure 门户并打开已将站点网络服务 (SNS) 部署到的资源组
  2. 从“资源组”菜单中选择“部署”页
  3. 打开与失败 SNS 部署对应的部署页面,并选择错误详细信息按钮显示失败站点网络服务部署的错误详细信息的屏幕截图。

使用 AOSM Azure 门户查看 NF 部署错误

  1. 访问 Azure 门户并打开已将 SNS 部署到的资源组
  2. 打开 SNS 概述并单击指向资源属性的链接显示站点网络服务部署的托管资源组的屏幕截图。
  3. 从“资源组”菜单中选择“部署”页。
  4. 选择与失败的 NF 部署对应的部署的错误详细信息按钮 显示网络功能部署失败的错误详细信息的屏幕截图。

使用 AOSM Azure 门户查看网络功能部署参数

  1. 访问 Azure 门户并打开已将 SNS 部署到的资源组
  2. 打开 SNS 概述并单击指向资源属性的链接显示站点网络服务部署的托管资源组的屏幕截图。
  3. 打开 NF 概述,为部署值 属性单击 以 JSON 打开视图 按钮 显示传递给网络功能部署的值的屏幕截图。

此视图显示已传递到 NF 部署操作的值。 这些值包含在用于部署 NF 的 helm install 命令中。 错误配置、意外、缺失或格式不正确的值可能会导致 helm install 命令失败。

使用 AOSM Azure 门户查看网络功能组件部署参数

  1. 访问 Azure 门户并打开已将 SNS 部署到的资源组
  2. 打开 SNS 概述并单击指向资源属性的链接显示站点网络服务部署的托管资源组的屏幕截图。
  3. 打开 NF 概述,然后从资源菜单中导航到“组件”页。
  4. 按下“以 JSON 打开视图”,以获取感兴趣的组件。 显示传递给 helm 安装命令的值的屏幕截图。

此视图显示 helm install 命令上传递给 helm 图表的值。 每个值都使用 --set 传递给 helm install 命令。 错误配置、意外、缺失或格式不正确的值可能会导致 helm install 命令失败。