Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

APM 安装

APM 安装概述

瞻博网络地址池管理器 (APM) 是一款自动化、集中式、基于容器的云原生应用,网络运营商和管理员用它来管理 IP 前缀资源。APM 与托管宽带网络网关 (BNG) 配合使用来监控 BNG 上的地址池。当可用地址数降至设定阈值以下时,BNG 会发出告警。告警会触发 APM 从其全局前缀列表中分配未使用的前缀,并将前缀的子集作为新池配置到 BNG。

APM 可以安装在单个 Kubernetes 群集上,也可以安装在多地理位置、多群集设置上。这两种设置的安装要求和安装过程不同。有关 APM 设置的要求,请参阅以下部分:

注意:

本文档中的术语 BNG 也适用于 BNG CUPS 控制器。

您可以在任何满足要求的硬件上部署 APM。以下章节将介绍如下内容:

  • APM 安装要求

  • 如何安装 APM

  • 如何调整 APM 设置参数

APM 安装要求

要安装 APM,您需要本节中列出的以下硬件和软件要求。

单个地理位置设置的 APM 要求

APM 安装在由物理或虚拟机 (VM) 组成的 Kubernetes 群集上。为了实现可用性,您必须至少有三个节点托管控制平面的 etcd 函数,三个节点托管群集中的工作函数。

APM 已针对 表 1 中描述的单一地理群集进行了鉴定。

表 1:单个 Kubernetes 群集设置要求
类别 详情

Kubernetes 群集

Kubernetes 群集需要以下内容:

  • 节点规格:

    • 对 Kubernetes 分发使用以下一项:

      • RedHat OpenShift Container Platform 4.16.50 或 4.18.31(生产集群需要)。

        配置了 Longhorn (v1.9.1) CSI,以及兼容的 MetalLB、NmState Operator、OVN CNI 和 OpenShift Container Image Registry 软件。

      • BBE Cloudsetup 实用程序 — 仅用于概念验证 (POC) 或演示集群。

        BBE Cloudsetup 实用程序使用 Longhorn CSI、MetalLB、Flannel CNI 和 Docker Container Registry 软件版本构建具有 RKE1 发行版的群集。

    • CPU:14 核或 28 核。如果您计划在群集上运行其他应用程序(例如 BNG CUPS 控制器应用程序),请使用 28 核节点。

    • 内存:256 GB (GiB)

    • 存储:512 GiB 分区为 256 GiB 根,256 GiB /var/lib/longhorn

    • 网络接口:2x10 GE

  • 集群宽度 — 群集必须至少有 3 个具有控制平面、etcd 和工作器功能的组合节点。3 个组合节点支持具有单个控制平面实例的 APM 和 BNG CUPS 控制器。如果要添加其他 BNG CUPS 控制器控制平面实例,则必须为您添加的每对额外的 BNG CUPS 控制器控制平面实例添加另一个工作节点。

跳转主机

跳转主机需要以下内容:
  • 作系统:Ubuntu 版本 22.04 LTS 或 24.04 LTS

  • CPU:2核

  • 内存:8 GB (GiB)

  • 存储:128 (GiB)

跳转主机软件

跳转主机需要以下软件:

存储

名为 jnpr-bbe-storage 的存储类。

网络负载均衡器地址

一个用于 APMi。

注册表存储

每个 APM 版本需要大约 3GiB 的容器镜像。

多地理位置设置的 APM 要求

地理上冗余的多群集 APM 设置由三个独立的 Kubernetes 群集组成。三个群集中的每个在地理位置上都是分开的,因此影响一个群集的服务影响事件不会影响其他群集。组成多群集设置的群集承担特定角色。

一个群集承担管理群集的角色,另外两个群集承担工作负载群集的角色。工作负载集群提供了一个冗余平台,大多数 APM 应用程序都可以在其中运行。管理群集托管 Karmada 多群集编排软件的执行。Karmada 管理 APM 工作负载在工作负载集群中的传播。

多群集中的每个 Kubernetes 群集节点都可以从物理或虚拟机 (VM) 构建。

对于 POC 安装,不能使用 BBE 云设置实用程序来构建多地理位置多群集设置中使用的群集。通过支持,可以使用单独的过程来构建 POC 多地理位置多群集设置。

APM 已针对 表 2 中描述的多地理群集进行了鉴定。

表 2:多地理位置 Kubernetes 群集设置要求
类别 详情

群集

多群集由三个群集组成,每个群集由 3 个混合节点组成。

这三个集群必须由一个管理群集和两个工作负载集群组成。

注意:

确保每个工作负载群集的群集和服务 CIDR 不重叠。每个工作负载群集的群集内部网络通过潜航者 IP 隧道连接。内部 CIDRS 必须是不同的。

管理群集

管理群集需要以下内容:

  • 节点规格:

    • Kubernetes 发行版 - RedHat OpenShift Container Platform 4.16.50 或 4.18.31。

      配置了兼容的 Longhorn CSI、MetalLB、NmState Operator、OVN CNI 和 OpenShift 容器映像注册表软件。

    • 多群集软件:

      • Karmada 1.13.1 — 多群集编排。

      • 潜航者 0.20.0 — 群集间网络隧道。

    • CPU:8核

    • 内存:24 GiB

    • 存储:256 GiB,分区为 160 GiB 根和 96 GiB /var/lib/longhorn

  • 集群宽度 — 群集必须至少有 3 个具有控制平面、etcd 和工作器功能的组合节点。

工作负载群集

每个工作负载群集都需要以下内容:

  • 节点规格:

    • Kubernetes 发行版 - RedHat OpenShift Container Platform 4.16.50 或 4.18.31。

      配置了 Longhorn (v1.9.1) CSI,以及兼容的 MetalLB、NmState Operator、OVN CNI 和 OpenShift Container Image Registry 软件。

      每个工作负载群集都必须使用不重叠的 Pod 和服务 CIDR,才能通过 Submariner 隧道进行连接。

    • 多群集软件 — Submariner 0.20.0,用于群集间网络隧道。

    • CPU:14 核或 28 核。如果您计划在群集上运行其他应用程序(例如 BNG CUPS 控制器应用程序),请使用 28 核节点。

    • 内存:256 GiB

    • 存储:512 GiB 分区为 256 GiB 根和 256 GiB /var/lib/longhorn

    • 网络接口:2x10 GE。

  • 集群宽度 — 群集必须至少有 3 个具有控制平面、etcd 和工作器功能的组合节点。

    集群宽度 — 群集必须至少有 3 个具有控制平面、etcd 和工作器功能的组合节点。3 个组合节点支持具有单个控制平面实例的 APM 和 BNG CUPS 控制器。如果要添加其他 BNG CUPS 控制器控制平面实例,则必须为您添加的每对额外的 BNG CUPS 控制器控制平面实例添加另一个工作节点。

跳转主机

跳转主机需要以下内容:
  • 作系统:Ubuntu 版本 22.04 LTS 或 24.04 LTS

  • CPU:2核

  • 内存:8 GB (GiB)

  • 存储:128 (GiB)

跳转主机软件

跳转主机需要以下用于生产系统的软件:

存储

名为 jnpr-bbe-storage 的存储类

网络负载均衡器地址

APMi 的每个工作负载群集上有一个,bbe-observer 的管理群集上有一个。

注册表存储

每个 APM 版本需要大约 3 GB 的容器映像。每个群集都需要。

注意:

在单个地理 APM 设置中,您可以对群集的参数做出一些基本假设。您可以使用 BBE Cloudsetup 等快速入门工具来创建单个地理 APM。构建具有多个地理位置和多个集群的生产环境 APM 设置需要您进行更多的输入来构建。

其他要求

BNG 是运行 Junos OS 或瞻博网络 BNG CUPS 控制器(BNG CUPS 控制器)的瞻博网络 MX 系列路由器。

我们推荐使用以下版本:
  • Junos OS 23.4R2-S5 或更高版本

  • BNG CUPS 控制器 24.4R2 或更高版本

对于 APM,请确认您拥有有权下载 APM 软件包的 juniper.net 用户帐户。从不属于 Kubernetes 群集的计算机下载并安装 APM 软件。

安装单个地理位置 APM

首次使用本节中的过程安装单个地理位置 APM。

开始之前,请确认您已满足 APM 安装的要求。

建议在 APM 和 BNG 之间使用安全连接。

安装 APM 有以下两个选项:

  • 使用 APM 安装实用程序安装单个地理位置 APM — 您可以使用 APM 实用程序安装 APM,这样可以简化安装过程。

    注意:

    BBE Cloudsetup 是一个实用程序,您可以使用它来快速开始使用 APM。它不是群集的生命周期工具。您无法扩展群集的宽度、执行节点维护、升级基础设施组件等。用于生产目的的 Kubernetes 群集应根据生产环境的要求进行设计和构建,并提供适当的支持,以维持其生命周期。(有关 BBE Cloudsetup 的信息,请参阅 BBE Cloudsetup 安装指南

  • 在不使用 APM 实用程序的情况下安装单个地理位置 APM — 您可以在您选择的预先存在的 Kubernetes 群集上安装 APM。此过程是一个手册过程,不使用 APM 安装包附带的 APM 实用程序。

在开始安装 APM 之前,请确保您具有以下信息:

必填信息:

  • 容器注册表详细信息:
    • 如果您使用的是 BBE Cloudsetup 创建的群集。

      • 外部注册表地址。

      • 外部注册表端口号(通常为 5000)。

    • 如果您使用的是 Red Hat OpenShift Container Platform 群集:

      • 外部注册机构(全限定域名)

      • 内部 (Docker) 注册表地址

      • 内部 (Docker) 注册表端口号

可选信息:

  • APM 初始配置文件。如果未提供配置文件,则会自动生成基本配置文件。
  • 用于创建持久卷声明 (PVC) 的存储类名称(默认值为 jnpr-bbe-storage)。
  • PVC 大小(默认为 90 MiB)。
  • 存档配置详细信息。如果您计划将 APM 配置的副本镜像到外部服务器,则需要这样做。
    • SSH 私钥文件的名称或包含 SSH 私钥的 jnpr-apm 命名空间中存在的 Kubernetes 密钥的名称。

    • 将存档配置文件的服务器的安全复制协议 (SCP) URL。SCP URL 采用 (例如) scp://user@host1.mydomain.com:30443/home/user/configs/apm的形式scp://user-login@server-fqdn:server-port/absolute-file-path

  • Syslog 服务器详细信息。如果您计划将 APM 日志导出到外部系统日志收集器,则需要这样做。
    注意:

    如果检测到在目标群集上运行 BBE 事件收集和可视化 ,则将建议 ECAV 部署的地址和端口值作为默认值。

    • 系统日志服务器地址。

    • Sysylog 服务器端口号。

  • 网络负载均衡器详细信息。如果您计划为 APMi 使用特定的网络负载均衡器池和地址,则需要这样做。
    • 网络负载均衡器池名称。

    • 网络负载均衡器池地址。

  • APMi 详细信息:
    • 端口(默认值为 20557)
    • TLS 详细信息。您将需要以下其中一项:
      • 无(不安全)

      • 密钥和证书文件,或包含密钥和证书信息的 jnpr-apm 命名空间中存在的 Kubernetes 密钥的名称。

  • 服务帐户名称 — 用于将某些作权限绑定到 管理 微服务的 Kubernetes 服务帐户的名称。如果未提供服务帐户名称,APM 会在上线时创建一个名为 apm-svca 的服务帐户。

  • SSH 服务类型 — 如果指定了对 管理 微服务的 SSH 访问 (--ssh <ip>:<port>),则必须指定应将服务创建为节点端口 (NodePort) 服务还是负载均衡器 (LoadBalancer) 服务。如果选中,将 LoadBalancer 创建一个包含提供的外部 IP 地址的 MetalLB 池。在部署时创建的负载均衡器服务将从新创建的 MetalLB 池中分配外部 IP 地址。

  • DBSync 服务类型 — apm multicluster status APM 实用程序命令通过 Kubernetes 服务从 DBSync 微服务收集要显示的状态。默认情况下,为此目的创建了节点端口服务。如果选择 LoadBalancer,系统会提示您输入外部 IP 地址,并创建一个包含提供的外部 IP 地址的 MetalLB 池。 LoadBalancer 系统会为部署时创建的服务分配来自新创建的 MetalLB 池的外部 IP 地址。

  • provman 微服务的工作进程数(默认值为 3)。

使用 APM 安装实用程序安装单个地理位置 APM

如果要安装单个地理位置 APM,则使用本节中的过程。

  1. APM 软件包从瞻博网络 软件下载页面 下载到跳转主机。

    APM 可作为压缩的 TAR (.tgz) 文件使用。文件名中包含版本号作为名称的一部分。版本号的格式为:<Major>.<Minor>.<Maintenance>

    • major 是产品的主要版本号。
    • minor 是产品的次要版本号。
    • maintainance 是修订号。
  2. 跳转主机上解压 APM TAR (.tgz) 文件,方法是输入:
  3. 解压 TAR 文件后运行加载程序脚本。
  4. 使用命令sudo -E apm link --context context-name --version apm-version链接到群集。该link命令将加载的 APM 软件包关联到群集上下文,以准备设置。
    • context-name 是 Kubernetes 上下文。

    • apm-version 是软件版本。

  5. 如果您要在红帽 OpenShift 容器平台群集上安装 APM,请使用 OpenShift CLI 登录,然后继续下一步。
    如果要在 BBE Cloudsetup 创建的群集上安装 APM,请继续执行下一步。
  6. 您必须使用容器注册表进行身份验证才能推送 APM 容器镜像。向注册表进行身份验证的方式取决于您是在 BBE Cloudsetup 创建的群集上还是在 Red Hat OpenShift Container Platform 群集上安装 APM(有关详细信息,请参阅相应的文档)。
  7. 运行 setup 以配置您的安装。该 setup 命令执行以下作:
    • 收集有关群集环境的信息,例如:容器注册表联系信息、保护外部接口所需的密钥和证书、持久存储资源以及与支持 APM 功能相关的其他信息。

    • 建立 Kubernetes 部署的作参数。

      如果未将该选项或template file-name该选项与bbecloudsetup设置命令一起使用,则需要在设置过程中完成以下提示:

      • 如果您使用 BBE Cloudsetup 创建群集。

        • 外部注册表地址。

        • 外部注册表端口号。

      • 如果您使用的是 Red Hat OpenShift Container Platform 群集:

        • 外部注册机构(全限定域名)

        • 内部 (Docker) 注册表地址

        • 内部 (Docker) 注册表端口号

    注意:

    运行 setup时,您可以通过输入 ^d与设置过程进行交互。

    如果要在输入值后更改值,请输入 ^d。输入 ^d后,您之前输入的值将被删除,默认值将自动用于问题。您可以将该 ^d 作用于任何可选或可以提供值列表的任何设置问题。

    注意:

    context context-name 是命令的唯一 setup 必需选项。

    下面列出了可与命令 setup 一起使用的选项:

    • context context-name— Kubernetes 上下文名称。

    • h, help- 显示帮助消息并退出。

    • l, log [error, warning, info, debug]- 调整日志级别。

    • no-color- 打印不带颜色的邮件。

    • bbecloudsetup—填写与 bbecloudsetup 创建的群集一致的作参数,这样您在设置过程中就不必与 APM 交互(有关群集安装说明,请参阅 BBE Cloudsetup 安装指南 )。

      注意:

      仅使用选项 bbecloudsetup 或选项 template file-name 。不要同时使用这两个选项。

    • update- 在设置过程中,系统只会提示您输入缺失值。

    • ssh host:port— 群集的主机名或 IP 地址(群集的任何节点)和用于 SSH 访问 CLI 的开放端口。

      注意:

      启用 SSH 访问需要管理微服务在 特权 模式下运行。

    • secrets—更新 APM 使用的密钥、证书和密钥。

    • verbose- 在每个提示问题之前提供详细说明。

    • configconfig-file-path-name— 您希望 APM 在启动期间使用的初始配置文件的名称。

      注意:

      您可以使用初始配置文件来启动和推出 APM。您可以通过实用程序脚本命令setup上的交换机使用配置文件–-config config-file-path-name

      当 APM 启动或推出时,您在设置过程中提供的配置文件将用于初始化 APM。如果未提供配置文件,APM 将从出厂默认设置开始。如果 BBE 事件收集和可视化应用程序在群集上运行,那么出厂缺省值包括 bbe-ecav syslog 服务器配置。

      提供的配置文件存储在 jumphost 的上下文存储库中。这允许在 APM 启动和停止事件中保留配置。对初始配置的提交不会自动保存到 jumphost 上的永久位置。要更新永久位置的配置,请使用实用程序脚本的 save-config 命令。

      使用该 save-config 命令可确保下次启动和推出 APM 时使用最新配置。要将初始配置恢复到出厂默认设置,请以交互方式进入setup,然后进入 ^d 启动 配置... 问题。

      括号中的作将更改为 remove。按下以 Enter 接受已部署配置的移除。APM 在执行 stop then rollout 命令序列后恢复到出厂默认配置。

      使用实用程序脚本的 setup 命令更改初始配置文件时,必须执行 stop then rollout 命令序列才能使更改生效。

    • template file-name- YAML 格式的文件,其中包含在设置过程中创建的作参数文件的子集。设置过程会自动使用在模板文件中输入的值。使用该 template 选项时,无需在设置过程中手动输入模板文件中包含的信息。使用 Red Hat OpenShift Container Platform 创建群集或创建多地理位置群集时,请使用该 template 选项。 表 3 介绍了可在配置文件中 template 输入的信息。

      注意:

      仅使用选项 bbecloudsetup 或选项 template file-name 。不要同时使用这两个选项。

    • mandatory- 仅在设置过程中询问必填问题。

    • optional- 仅询问设置过程中不需要的问题。

    表 3:安装文件字段说明

    字段

    描述

    外部注册表地址

    外部注册表地址是容器映像推送到的完全限定域名 (FQDN)。

    内部 (Docker) 注册表传输地址 (fqdn:port)

    内部注册表传输地址是在推出期间从中提取容器映像的地址。此地址通常与外部注册表地址不同。

    (选答) 初始 APM 配置文件

    APM 启动时使用的配置文件。

    (选答) 集群存储类名称

    用于创建持久卷声明 (PVC) 的 Kubernetes 存储类的名称。管理微服务使用 PVC 来记录配置状态。

    (选答) 群集存储大小

    PVC 大小,以兆字节 (MiB) 为单位。

    (选答) 配置存档服务器

    配置 配置存档服务器 选项时,APM 会在每次成功提交后将更新配置的副本存档到外部服务器。

    要配置存档配置文件更改的服务器信息,必须输入以下信息:

    • SSH 键信息。提供以下其中一项的信息:

      • APM 命名空间中包含 SSH 私钥数据的 Kubernetes Secret 的名称。

      • SSH 私钥文件的名称。

      注意:

      如果提供了密钥名称,则系统不会提示您输入 SSH 私钥文件。

    • 将存档配置文件的服务器的安全复制协议 (SCP) URL。

      注意:

      URL 必须使用以下格式: scp://user-login@server-fqdn:server-port/absolute-file-path (例如 scp://user@host1.mydomain.com:30443/home/user/configs/apm)。

      成功提交后,候选配置的 SCP 传输将作为压缩文件传输到存档 URL,其名称如下:

      apm-identifier_YYYYMMDD_HHMMSS_juniper.conf.n.gz

      • apm-identifier 是 APMi 接口的外部 IP 地址。

      • YYYYMMDD_HHMMSS 是协调世界时 (UTC) 中的时间戳。

      • n 是压缩配置回滚文件的编号指定。

    (选答) 系统日志详细信息

    如果要将 APM 日志信息导出到外部系统日志收集器,请输入以下系统日志服务器信息:

    • IP 地址或全限定域名

    • 端口号

    系统日志信息包含在生成的出厂默认配置文件中。如果未使用生成的出厂默认配置文件,而是使用了自己的初始配置文件,则必须包含 system syslog host 包含 syslog 服务器连接详细信息的节。

    (选答) 网络负载均衡器池

    如果您希望从特定的网络负载均衡器地址池中分配 APMi 外部地址,请输入以下网络负载均衡器池信息:

    • 网络负载均衡器地址注释(例如:metallb.io/address-pool: myMetalIpAddressPool

    • 网络负载均衡器池注解(例如:metallb.io/loadBalancerIPs:10.1.1.3)

    (选答) APMi 端口

    APMi 端口号(默认为 20557)。

    (选答) APMi 机密

    要保护 APMi(推荐),请输入以下一项:

    • APM 命名空间中包含 TLS 密钥数据(根证书颁发机构证书、证书、私钥)的 Kubernetes 密钥名称

    • 密钥文件(根证书颁发机构证书、证书和私钥)
    注意:

    如果提供了密钥,则在安装过程中系统不会提示您输入密钥文件。

    (选答) 服务帐户名称

    用于将某些作权限绑定到 管理 微服务的 Kubernetes 服务帐户的名称。如果未提供服务帐户名称,APM 会在上线时创建一个名为 apm-svca 的服务帐户。

    (选答) apm SSH 服务类型

    如果指定了 对管理 微服务的 SSH 访问 (--ssh <ip>:<port>),则必须指定该服务是应创建为节点端口 (NodePort) 服务还是负载均衡器 (LoadBalancer) 服务。如果选中,将 LoadBalancer 创建一个包含提供的外部 IP 地址的 MetalLB 池。在部署时创建的负载均衡器服务将从新创建的 MetalLB 池中分配外部 IP 地址。

    (选答) DBSync 服务类型

    apm multicluster status APM 实用程序命令通过 Kubernetes 服务从 DBSync 微服务收集要显示的状态。默认情况下,为此目的创建了节点端口服务。如果选择 LoadBalancer,系统会提示您输入外部 IP 地址,并创建一个包含提供的外部 IP 地址的 MetalLB 池。LoadBalancer系统会为部署时创建的服务分配来自新创建的 MetalLB 池的外部 IP 地址。

    (选答) 工作进程数

    provman 工作进程的数量决定了 provman 如何部署并发进程来处理实体工作负载。我们建议您为每个流程规划 20 个实体。每个进程都可以在其运行的节点上消耗一个 CPU 核心。因此,群集中的节点必须具有足够的 CPU 核心来支持 provman 进程的数量(以及节点上可能运行的任何其他工作负载)。

    可以配置 1 到 10 个工作进程(默认为 3)。

    (选答) 为观察者的控制器管理器提供服务帐户

    控制器管理器的服务帐户。如果选择此提示,系统 True 会提示您输入服务帐户名称。如果选择 Falsebbe-observer-controller-manager 则会创建服务帐户。

    (选答) 为 Observer 的 gRPC 服务器提供服务账号

    gRPC 服务器的服务帐户。如果选择此提示,系统 True 会提示您输入服务帐户名称。如果选择 Falsebbe-observer-grpc-server 则会创建服务帐户。

  8. 通过 运行 apm version 命令验证 APM 安装。
    • context context-name— Kubernetes 上下文名称。

    • detail- 显示所有可用的软件版本。

在单个地理位置设置中启动 APM

使用此过程可在单个地理位置设置中配置和启动 APM。

  1. Enter rollout 开始 APM 安装。您需要将 rollout 命令与 sudo/as root 一起使用。该rollout命令还验证新版本所需的所有值是否存在,并将新版本容器映像加载到注册表。用于sudo -E apm rollout --context context-name启动 APM 服务。例如:
    • context contex-name— Kubernetes 上下文

    注意:

    默认情况下,APM 从您在设置过程中提供的值开始。除非已保存配置,否则初始配置即为设置过程中输入的配置。所有其他持久状态(日志、数据库键等)都将被清除。

  2. 输入以apm status --context context-name [-o|--output json] [--detail]验证 APM 服务是否已启动并正在运行。例如:
    注意:

    收集服务日志,并在出现以下任一情况时联系瞻博网络技术援助中心 (JTAC):

    • 服务未运行。

    • 与其他服务相比,该服务的正常运行时间表明它已重新启动。

在不使用 APM 实用程序的情况下安装单个地理位置 APM

本节中的说明介绍了在您选择的预先存在的 Kubernetes 群集上安装单个地理 APM 的安装步骤。此过程是一个手册过程,不使用 APM 安装包附带的 APM 实用程序。

  1. APM 软件包从瞻博网络 软件下载页面 下载到跳转主机。

    APM 可作为压缩的 TAR (.tgz) 文件使用。文件名中包含版本号作为名称的一部分。版本号的格式为:<Major>.<Minor>.<Maintenance>

    • major 是产品的主要版本号。
    • minor 是产品的次要版本号。
    • maintainance 是修订号。
  2. 跳转主机上解压 APM TAR (.tgz) 文件,方法是输入:
  3. APM 需要的容器镜像存储在 images 子目录中。您必须将映像推送到要从中提取计划应用程序映像的注册表。根据所使用的容器注册表类型,命令可能有所不同。以下命令演示了将容器映像推送到注册表的一种方法:
  4. 要准备 APM 进行部署,您必须为每个微服务创建一个 YAML 配置文件。每个微服务的配置文件都包含微服务的特定配置设置。YAML 配置文件称为 values.yaml,该文件位于每个微服务的 charts 子目录下。您应该为每个微服务创建特定于配置的单独 values.yaml(例如,new-values.yaml)。表 4 描述了微服务配置文件 (values.yaml) 中的字段。
    注意:

    如果不想创建多个 values.yaml 文件,可以创建一个包含所有微服务信息的 values.yaml 。单个 values.yaml 位于 apm/apm/charts/address_pool_manager 文件夹中的伞形图表下方。本节中的过程介绍如何为每个微服务配置单独的 YAML 配置文件。

    为每个微服务创建一个新的 values.yaml 文件,方法是创建文件的副本,然后保存新文件。根据 Kubernetes 群集的信息更新每个文件。
    以下是微服务及其 values.yaml 文件位置:
    • redis 微服务—位于 apm/apm/charts/redis

    • 管理 微服务 — 位于 apm/apm/charts/mgmt

    • addrman 微服务 — 位于 apm/apm/charts/addrman

    • entman 微服务 — 位于 apm/apm/charts/entman

    • provman 微服务 — 位于 apm/apm/charts/provman

    表 4:微服务配置文件字段说明

    字段

    描述

    微服务

    APMi 端口

    APMi 暴露了端口号。

    普罗布曼

    APMi 机密

    • name—要挂载的命名空间机密

    • certificate—证书文件名

    • key—私钥文件名

    • rootca—CA 证书颁发机构证书文件名

    普罗布曼

    apm初始版本

    APM init 软件版本。

    • 管理

    • Redis

    存档网址

    存档配置文件的服务器的安全通道协议 (SCP) URL。

    管理

    db master updateStrategy

    RollingUpdate 支持。

    Redis

    驱逐容错

    节点的不可达容差(以秒为单位)。

    • 地址

    • 恩特曼

    • 管理

    • 普罗布曼

    • Redis

    log_level

    默认日志记录级别。

    • 地址

    • 恩特曼

    • 管理

    • 普罗布曼

    • Redis

    nlbPool注释

    网络负载均衡器池名称。

    普罗布曼

    nlbPoolIp注释

    网络负载均衡器 IP 地址

    普罗布曼

    PVC 配置

    • meta — 用于配置文件存储的持久卷声明 (PVC)。

    • size—PVC 大小 (MiB)。

    管理

    注册表

    注册表信息:

    • host—群集拉取的注册表联系人。

    • port - 群集拉取的注册表端口号。

    • 地址

    • 恩特曼

    • 管理

    • 普罗布曼

    • Redis

    resourceRequests已启用

    是否接受资源请求。

    • 地址

    • 恩特曼

    • 管理

    • 普罗布曼

    • Redis

    资源范围

    所需资源范围:

    • cpuRequest — 运行系统所需的最小毫核数。

    • memRequest — 运行系统所需的最小兆字节 (MiB)。
    • 地址

    • 恩特曼

    • 管理

    • 普罗布曼

    • Redis

    • Redis

    sentinel计数

    要启动的哨兵数量。

    Redis

    启动配置

    用于系统启动的配置。

    管理

    storage_class

    PVC 的存储类名称。

    管理

    tls启用

    指示是否启用了 TLS。

    普罗布曼

    workerProcs

    要启动的工作进程数。

    普罗布曼

  5. values.yaml每个微服务的新文件进行所有所需的更改后,必须使用新values.yaml文件部署微服务。

    运行以下命令:

  6. 要完成provman微服务的配置,必须运行两次helm upgrade命令。双重配置是必需的,因为 provman 微服务在与其实体的协议交换中使用分配给 APMi 负载均衡服务的外部 IP 地址。第一个 helm upgrade 命令建立外部 IP 地址,第二个 helm upgrade 命令将外部 IP 地址传递给 provman 微服务,从而允许其初始化。

    运行以下命令:

  7. 通过运行 Kubernetes 命令行工具命令kubectl get pods验证 APM 安装,并验证 APM Pod 是否正在运行。
  8. 验证服务是否存在。运行 Kubernetes 命令行工具命令 kubectl get services

在多地理位置设置中安装 APM

对于由位于不同地理位置的多个 APM 组成的 APM 设置,请使用本部分中的安装过程。

开始之前,请确认您满足 APM 安装的要求(请参阅 表 2)。

先决条件

在开始安装 APM 之前,请确保您具有以下信息:

有关以下信息的说明,请参阅 表 3

必填信息:

  • 工作负载群集的群集上下文名称、管理群集的 karmada 上下文和管理群集的工作上下文。

    例如,您的上下文输出可能如下所示:

  • Karmada kubeconfig — 管理群集上 Karmada 上下文的 kubeconfig 文件。您可以从 karmada-system 命名空间中的管理群集上下文中提取 Karmada 上下文的 kubeconfig 文件。

    有关要运行的命令的示例,请参阅以下内容:

  • 每个群集的容器注册表详细信息:

    注意:

    您必须为所有三个群集收集以下信息。

    • 外部注册表地址

    • 外部注册表端口号(通常为 5000)

可选信息:

  • 控制器管理器的服务帐户。如果选择此提示,系统 True 会提示您输入服务帐户名称。如果未选择 True,则会创建名为的 bbe-observer-controller-manager 服务帐户。

  • gRPC 服务器的服务帐户。如果选择此提示,系统 True 会提示您输入服务帐户名称。如果未选择 True,则会创建名为的 bbe-observer-grpc-server 服务帐户。

  • APM 初始配置文件。如果未提供配置文件,则会自动生成基本配置文件。
  • 用于创建持久卷声明 (PVC) 的存储类名称(默认值为 jnpr-bbe-storage)。
  • PVC 大小(默认为 90 MiB)。
  • 存档配置详细信息。如果您计划将 APM 配置的副本镜像到外部服务器,则需要这样做。
    • SSH 私钥文件的名称或包含 SSH 私钥的 jnpr-apm 命名空间中存在的 Kubernetes 密钥的名称。

    • 将存档配置文件的服务器的安全复制协议 (SCP) URL。SCP URL 采用 (例如) scp://user@host1.mydomain.com:30443/home/user/configs/apm的形式scp://user-login@server-fqdn:server-port/absolute-file-path

  • Syslog 服务器详细信息。如果您计划将 APM 日志导出到外部系统日志收集器,则需要这样做。
    注意:

    如果检测到在目标群集上运行 BBE 事件收集和可视化 ,则将建议 ECAV 部署的地址和端口值作为默认值。

    • 系统日志服务器地址。

    • Sysylog 服务器端口号。

  • 网络负载均衡器详细信息。如果您计划为 APMi 使用特定的网络负载均衡器池和地址,则需要这样做。
    • 网络负载均衡器池名称。

    • 网络负载均衡器池地址。

  • APMi 详细信息:
    • 端口(默认值为 20557)
    • TLS 详细信息。您将需要以下其中一项:
      • 无(不安全)

      • 密钥和证书文件,或包含密钥和证书信息的 jnpr-apm 命名空间中存在的 Kubernetes 密钥的名称。

  • 服务帐户名称 — 用于将某些作权限绑定到 管理 微服务的 Kubernetes 服务帐户的名称。如果未提供服务帐户名称,APM 会在上线时创建一个名为 apm-svca 的服务帐户。

  • DBSync 服务类型 — apm multicluster status APM 实用程序命令通过 Kubernetes 服务从 DBSync 微服务收集要显示的状态。默认情况下,为此目的创建了节点端口服务。如果选择 LoadBalancer,系统会提示您输入外部 IP 地址,并创建一个包含提供的外部 IP 地址的 MetalLB 池。 LoadBalancer 系统会为部署时创建的服务分配来自新创建的 MetalLB 池的外部 IP 地址。

  • provman 微服务的工作进程数(默认值为 3)。

安装 APM 应用程序(多地理位置设置)

  1. 在管理上下文中创建 jnpr-apm 命名空间/项目。
    • context management-context-name- 管理群集的上下文名称。请注意,此上下文与与管理群集关联的 Karmada 上下文名称不同。

  2. 创建 karmada-kconf 密钥。使用管理群集的 kubeconfig 在 APM 命名空间的管理群集上创建密钥。
    注意:

    karmada-kconf 密钥包含观察者用来监视 CPi 状态的 kubeconfig。如果未创建密钥,观察者(和 APM)将无法正常运行。

    • context management-context-name- 管理群集的上下文名称。请注意,此上下文与与管理群集关联的 Karmada 上下文名称不同。

    • karmada-secret-file- 管理群集的 kubeconfig 文件。

  3. 验证密钥是否已创建。
  4. APM 软件包从瞻博网络 软件下载页面 下载到跳转主机。

    APM 可作为压缩的 TAR (.tgz) 文件使用。文件名中包含版本号作为名称的一部分。版本号的格式为:<Major>.<Minor>.<Maintenance>

    • major 是产品的主要版本号。
    • minor 是产品的次要版本号。
    • maintainance 是修订号。
  5. 跳转主机上解压 APM TAR (.tgz) 文件,方法是输入:
  6. 解压 TAR 文件后运行加载程序脚本。
  7. 使用命令sudo -E apm link链接到群集。在准备运行setup时,该link命令获取工作负载群集上下文列表和观察者上下文,并将它们与加载的 APM 软件包相关联。
    • context karmada-context-name- 在管理群集上安装 Karmada 时创建的 Karmada 上下文的上下文名称。

    • worload-contexts workload-1-context-name workload-2-context-name- 两个工作负载上下文名称。

    • observer-context management-context-name- 管理群集的上下文名称。请注意,此上下文与与管理群集关联的 Karmada 上下文名称不同。

    • version software-release— APM 软件版本,如输出所示 apm_loader

    注意:

    在安装过程中,Karmada 将安装在管理群集上,并且 Karmada 会在管理群集上创建自己的上下文。Karmada 上下文用于定位涉及工作负载集群的任何作。管理群集还具有自己的上下文,用于运行非关键集中式工作负载(例如, BBE 事件收集和可视化)。您可以将此管理群集上下文用于 observer-context.

    图 1 显示了不同上下文在多群集设置中的位置。

    图 1:多个群集上下文 Multiple Cluster Contexts
  8. 使用 RHOCP 群集时,您可以在使用 OpenShift CLI 对 OpenShift 群集和三个 RHOCP 群集(管理和两个工作负载群集)进行身份验证后与其交互。

    有关要运行的命令的示例,请参阅以下内容:

  9. 为了推送 APM 容器镜像,您必须在多群集设置中向每个群集上的注册表进行身份验证。通过以系统用户(在 BBE Cloudsetup 配置文件中输入的系统用户)的身份向群集的注册表传输地址(在 BBE Cloudsetup 配置文件中作为系统地址提供的 FQDN)发出 docker 登录名,向注册表进行身份验证。

    有关要运行的命令的示例,请参阅以下内容:

  10. 运行 setup 以配置您的安装。该 setup 命令执行以下作:
    • 收集有关群集环境的以下信息:

      • 存储类或持久卷的名称

      • 容器注册表的位置

      • 注册表的容器和 Pod 名称

      • TLS 密钥

      • 与支持 APM 功能相关的信息。

    • 初始化 APM 配置。

    在设置过程中将出现以下提示:

    • 输入管理群集的以下信息:

      • 每个群集的外部注册表地址和端口号。输入每个群集的信息后按 Enter 键。

      • 观察者(管理群集)要从中提取的注册表地址和端口号。

      • Karmada kubeconfig 密钥名称

      • 启用 TLS(默认为 False)

      • TLS 密钥名称

    • 为主工作负载群集输入以下内容。输入信息后,按 Enter 键输入备份工作负载群集的信息:

      • 群集名称

      • 群集注册表地址和端口号

    • 为备份工作负载群集输入以下内容:

      • 群集名称

      • 群集注册表地址和端口号

    注意:

    要在多地理位置部署中通过 SSH 设置 CLI 访问,必须使用模板文件(使用 template 命令中的 setup 选项)。这使您能够配置两个工作负载群集地址。

    要配置 SSH,请将每个工作负载群集的以下信息(YAML 格式)添加到您在设置过程中提供的模板文件中:

    有关模板文件中的 SSH 配置的更多信息,请参阅以下内容:

    • ip-address- 用于从跳转主机管理群集的 IP 地址。

    • cluster-name- 命令输出 kubectl get clusters 中显示的工作负载群集的名称。

    • available-port-value- 如果在字段中type输入该NodePort选项,则端口值必须是未在任何工作负载群集节点上使用的 TCP 端口。最佳做法是避免使用已在使用的端口(如常用的 SSH 端口 22),但低于临时端口范围(端口 49152 及更高版本)。这可以避免与节点本身可能发生端口争用。

    • service-name- 您希望创建的服务使用的名称。最佳做法是在名称中包含应用程序名称、用途和工作负载群集(例如,apm-ssh-workload1)。

    下面列出了可与命令 setup 一起使用的选项:

    • context karmada-context-name- 在管理群集上安装 Karmada 时创建的 Karmada 上下文的上下文名称。

    • h, help- 显示帮助消息并退出。

    • l, log [error, warning, info, debug]- 调整日志级别。

    • no-color- 打印不带颜色的邮件。

    • update- 在设置过程中,系统只会提示您输入缺失值。

    • secrets—更新 APM 使用的密钥、证书和密钥。

    • verbose- 在每个提示问题之前提供详细说明。

    • configfile-name— 您希望 APM 在启动期间使用的初始配置文件的名称。

    • template file-name- YAML 格式的文件,其中包含在设置过程中创建的配置文件的子集。设置过程会自动使用在模板文件中输入的值。使用该 template 选项时,无需在设置过程中手动输入模板文件中包含的信息。仅当使用 Red Hat OpenShift Container Platform 创建群集或创建多地理位置群集时,才应使用该 template 选项。 表 3 介绍了需要在配置文件中 template 输入的信息。

    • mandatory- 仅在设置过程中询问必填问题。

    • optional- 仅询问设置过程中不需要的问题。

  11. 通过 运行 apm version 命令验证 APM 安装。
    • context karmada-context-name- 在管理群集上安装 Karmada 时创建的 Karmada 上下文的上下文名称。

    • detail- 显示所有可用的软件版本。

  12. 从 karmada 上下文的 kubeconfig 文件创建 karmada-kubeconfig 密钥(有关更多信息,请参阅先决条件)。该密钥对于在管理上下文中运行的 APM 观察者微服务来说是必要的,以监视工作负载群集调度事件,以便计算 APM 在群集切换过程中使用的代号。
    使用以下命令创建 karmada-kubeconfig 密钥(将密钥 karmada-kconf命名):

在多地理位置设置中启动 APM

使用此过程可在多地理位置设置中配置和启动 APM。

  1. Enter rollout 开始 APM 安装。APM 实用程序允许您为 APM 多地理位置设置中的所有微服务推出不同的软件版本。您需要将命令rollout与 sudo 作为 root 一起使用。该rollout命令还验证新版本所需的所有值是否存在,并将新版本容器映像加载到注册表。用于sudo -E apm rollout --context karmada-context-name --version software-release --service service-name 启动 APM 服务。例如:
    • karmada-context-name- 在管理群集上安装 Karmada 时创建的 Karmada 上下文的上下文名称。

    • service service-name- 要部署的微服务名称。

    • version software-release- 要部署的软件版本(默认为链接到群集的版本)。

    注意:

    上,不需要首次部署service。用于serviceversion推出(升级)特定服务的特定版本。

    注意:

    默认情况下,APM 从您在设置过程中提供的值开始。除非已保存配置,否则初始配置是设置期间提供的配置。所有其他持久状态(日志、数据库键等)都将被清除。

  2. 输入以apm status --context karmada-context-name --detail验证 APM CUPS 控制器服务是否已启动并正在运行。例如:
    注意:

    收集服务日志,并在出现以下任一情况时联系瞻博网络技术援助中心 (JTAC):

    • 服务未运行。

    • 与其他服务相比,服务的正常运行时间表明它已重新启动。