Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

自定义 JCNR 配置

总结 阅读本主题可了解如何使用 ConfigMap 自定义 JCNR 配置。

JCNR 配置图

从瞻博网络云原生路由器 (JCNR) 23.3 版开始,JCNR 支持在 L3 模式下部署时使用 ConfigMap 自定义配置。在基于云的部署中,如果节点发生故障,JCNR Pod 可能会在更新或不同的节点上生成。配置映射将配置参数与节点名称分离,改为基于节点标签。这使 JCNR CNI 部署人员能够使用配置参数,将其应用于 cRPD 配置模板并呈现配置,只要节点有匹配的标签即可。

配置映射是一个 API 对象,用于将数据存储在键值对中。配置映射定义与标签匹配的节点使用的每节点变量。键值对用于通过 go 模板呈现配置。配置的模板必须在目录中可用 Juniper_Cloud_Native_Router_release_number/helmchart/charts/jcnr-cni/files/ ,以便将配置应用于 cRPD 容器。

注意:

在安装 JCNR 之前,您必须应用 ConfigMap,以使用自定义配置创建 cRPD Pod。如果您希望在安装 JCNR 之后的任何时候应用配置参数,则必须删除并重新生成 cRPD 容器。默认情况下,配置参数将应用于任何新生成的 cRPD Pod。通过 ConfigMap 进行的 JCNR 自定义是可选的。

注意:

JCNR 还支持通过节点注释进行自定义,以便向后兼容以前的版本。考虑到节点注释与节点名称相结合,强烈建议通过 ConfigMap 自定义 JCNR,特别是用于云部署。有关更多信息,请参阅 使用节点注释自定义 JCNR 配置

配置示例

示例配置映射和模板文件可在目录下 Juniper_Cloud_Native_Router_<release-number>/helmchart/cRPD_examples 找到。

您可以为集群中的不同节点标签定义键值对。下面提供了该文件 jcnr-params-configmap.yaml 的示例:

您在注释中定义的键值对用于通过 go 模板呈现 cRPD 配置。下面提供了模板文件的示例 jcnr-cni-custom-config-cm.tmpl

注意:

您可以在模板中定义其他 cRPD 配置层次结构。要从 中 jcnr-params-configmap.yaml 定义的配置映射呈现的值必须定义为 {{.Params.var-name}}。任何环境变量(如 中 values.yaml定义的变量)都必须定义为 {{.Env.variable_name}}

完成以下步骤以应用自定义项。

  1. 根据配置映射中使用的键标记每个节点。

  2. 使用下面提供的命令将配置映射应用于群集节点:
  3. 配置模板后,必须将 jcnr-cni-custom-config.tmpl 文件 Juniper_Cloud_Native_Router_release_number/helmchart/charts/jcnr-cni/files/ 复制到目录中。
  4. 部署云原生路由器组件,包括 cRPD。安装完成后, 访问 cRPD CLI 并在模式下发出 show configuration | display set 命令 cli 以查看您应用的自定义配置。

修改配置映射

如果您希望在 JCNR 安装后随时更改配置映射,则必须删除 cRPD Pod 并使用以下命令重生它: 这将触发所有 cRPD Pod 的滚动重启。或者,您可以识别配置映射已更改的节点上的 cRPD Pod,并手动删除该 Pod。配置映射更改将自动应用于任何重新生成的 Pod。

故障 排除

如果通过 go 模板呈现和应用无效的配置,cRPD Pod 将继续以状态重新启动 CrashLoopBackOff 。呈现的配置将保存在 /config JCNR 主机上的目录中,为 juniper.conf.master。您可以将渲染的配置手动应用于正在运行的 cRPD 容器,以验证配置并识别问题。对于 AWS EKS 部署,您可以在目录中的 cRPD Pod 中找到 /config 呈现的配置。