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 群集设置要求
类别 详细信息

具有 3 个混合节点的单个群集。

Kubernetes 节点

Kubernetes 节点需要满足以下条件:

  • 对于作系统,可以使用以下任一选项:

    • Ubuntu 22.04 LTS(用于 BBE Cloudsetup 群集)

    • Red Hat Enterprise Linux CoreOS (RHCOS) 4.16 或更高版本(适用于 Red Hat OpenShift Container Platform 集群)

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

  • 记忆体: 64 GB

  • 存储:512 GB 存储分区为 128 GB root (/)、128 GB /var/lib/docker 和 256 GB /mnt/longhorn(应用数据)

  • Kubernetes 角色:控制平面 etcd 功能和工作节点

该规范建立了一个可以同时运行 APM 及其配套应用程序(如 BBE 事件收集和可视化以及 BNG CUPS 控制器)的集群。

跳转主机

跳转主机需要满足以下条件:
  • 作系统:Ubuntu 版本 22.04 LTS 或 24.04 LTS

  • 处理器: 2 core

  • 内存:8 GB (GiB)

  • 存储:128 千兆字节 (GiB)

  • 已安装的软件:

    • Python 3.10-venv (Ubuntu 22.04) 或 3.12-venv (Ubuntu 24.04)

    • Helm 实用程序

    • Docker 实用程序

    • OpenShift CLI。如果您使用的是 Red Hat OpenShift Container Platform (RHOCP) 群集,则为必填项。

群集软件

该群集需要以下软件:

  • RKE 版本 1.3.15 (Kubernetes 1.24.4) — Kubernetes 发行版

  • MetalLB 版本 0.13.7 — 网络负载平衡器

  • Keepalived 版本 2.2.8—Kubelet HA VIP 控制器

  • Longhorn 版本 1.2.6—CSI

  • 法兰绒版本 0.15.1—CNI

  • 注册表版本 2.8.1 - 容器注册表

  • OpenShift 版本 4.16 或更高版本 — 面向 RHOCP 的 Kubernetes 发行版。使用 Longhorn (CSI) 以及 MetalLB、OVN (CNI) 和 OpenShift Image Registry 的兼容版本

跳转主机软件

跳转主机需要以下软件:

  • Kubectl 版本 1.28.6+rke2r1 - Kubernetes 客户端

  • Helm 版本 3.12.3 - Kubernetes 包管理器

  • Docker-ce 版本 20.10.21 — Docker 引擎

  • Docker-ce-cli 版本 20.10.21 — Docker 引擎 CLI

  • OpenShift 版本 4.16 或更高版本 — RHOCP 集群的 Kubernetes 发行版。

存储

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

网络负载均衡器地址

一个用于 APMi。

注册表存储

每个 APM 版本大约需要 3 GB (GiB) 的容器映像。

多地理位置设置的 APM 要求

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

一个群集充当管理群集,另外两个群集担任工作负载群集的角色。工作负载群集提供了一个冗余平台,大多数 APM 应用程序都在这里运行。管理集群托管 Karmada 多集群编排软件的执行。Karmada 管理 APM 工作负载在工作负载群集之间的传播。

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

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

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

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

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

注意:

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

管理群集 Kubernetes 节点

管理群集 Kubernetes 节点需要满足以下条件:

  • 对于作系统,可以使用以下任一选项:

    • Ubuntu 22.04 LTS(用于 BBE Cloudsetup 群集)

    • Red Hat Enterprise Linux CoreOS (RHCOS) 4.16 或更高版本(适用于 RHOCP 集群)

  • 处理器: 8

  • 记忆体: 24 GB

  • 存储:根据以下内容划分的 256 GB 存储空间:

    • 在 Rancher Kubernetes Engine 2 (RKE2) 系统上 - 64 GB root (/)、96 GB /var/lib/rancher 和 96 GB /var/lib/longhorn(应用程序数据)

    • 在 RHOCP 系统上 - 64 GB root (/)、96 GB /var/lib/containers 和 96 GB /var/lib/longhorn

  • Kubernetes 角色:控制平面 etcd 功能和工作节点

该规范建立了一个可以同时运行 Karmada 和 ECAV 的集群。

工作负载群集 Kubernetes 节点

工作负载群集 Kubernetes 节点需要满足以下条件:

  • 对于作系统,可以使用以下任一选项:

    • Ubuntu 22.04 LTS(用于 BBE Cloudsetup 群集)

    • Red Hat Enterprise Linux CoreOS (RHCOS) 4.16 或更高版本(适用于 RHOCP 集群)

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

  • 记忆体: 64 GB

  • 存储:512 GB 存储空间,根据以下内容进行分区:

    • 在 RKE2 系统上 — 128 GB 根 (/)、128 GB /var/lib/rancher、256 GB /var/lib/longhorn;

    • 在 RHOCP 系统上 - 128 GB root (/)、128 GB /var/lib/containers 和 256 GB /var/lib/longhorn

  • Kubernetes 角色:控制平面 etcd 功能和工作节点

该规范建立了一个可以同时运行 APM 及其配套应用程序(如 BBE 事件收集和可视化以及 BNG CUPS 控制器)的集群。

跳转主机

跳转主机需要满足以下条件:
  • 作系统:Ubuntu 版本 22.04 LTS 或 24.04 LTS

  • 处理器: 2 core

  • 内存:8 GB (GiB)

  • 存储:128 千兆字节 (GiB)

  • 已安装的软件:

    • Python 3.10-venv (Ubuntu 22.04) 或 3.12-venv (Ubuntu 24.04)

    • Helm 实用程序

    • Docker 实用程序

    • OpenShift CLI。如果您使用的是 RHOCP 群集,则为必需。

群集软件

该群集需要以下软件:

  • RKE2 版本 1.28.6+rke2r1 - Kubernetes 发行版

    • MetalLB 版本 0.14.3 — 网络负载平衡器

    • Kube-vip 版本 0.7.1 — Kubelet HA VIP 控制器

    • Longhorn 版本 1.6.0—CSI

    • 运河 - CNI(RKE2 分布的一部分)

    • 注册表版本 2.8.1 - 容器注册表

  • OpenShift 版本 4.16 或更高版本 — 面向 RHOCP 的 Kubernetes 发行版。使用 Longhorn (CSI) 以及 MetalLB、OVN (CNI) 和 OpenShift Image Registry 的兼容版本。

  • Karmada 版本 1.13.1 — 多集群编排。对于管理群集是必需的。

  • Submariner 版本 0.20.0 — 第 3 层隧道。

跳转主机软件

跳转主机需要以下软件:

  • Kubectl 版本 1.28.6+rke2r1 - Kubernetes 客户端。

  • Helm 版本 3.12.3 - Kubernetes 包管理器。

  • Docker-ce 版本 20.10.21 — Docker 引擎。

  • Docker-ce-cli 版本 20.10.21 - Docker 引擎 CLI。

  • OpenShift CLI Tool (oc) 版本 4.16 或更高版本 — RHOCP 集群的 Kubernetes 发行版。

  • Subctl 版本 0.20.0 - Submariner CLI 实用程序。

  • Kubectl Karmada 版本 1.13.1 - Kubectl karmada 插件。

存储

名为 jnpr-bbe-storage 的存储类

网络负载均衡器地址

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

注册表存储

每个 APM 版本大约需要 3 GB (GiB) 的容器映像。每个群集是必需的。

注意:

在单个地理位置 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 安装实用程序安装单个 Geography APM - 您可以使用 APM 实用程序安装 APM,这简化了安装过程。

    注意:

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

  • 在不使用 APM 实用程序的情况下安装单个 Geography 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-login@server-fqdn:server-port/absolute-file-path 为(例如, scp://user@host1.mydomain.com:30443/home/user/configs/apm)。

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

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

    • Syslog 服务器地址。

    • 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 apm multicluster status 实用程序命令通过 Kubernetes 服务从 DBSync 微服务收集要显示的状态。默认情况下,会为此目的创建节点端口服务。如果选择 LoadBalancer,系统会提示您输入外部 IP 地址,并创建一个包含提供的外部 IP 地址的 MetalLB 池。 LoadBalancer 在推出时创建的服务将从新创建的 MetalLB 池中分配外部 IP 地址。

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

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

    • 建立 Kubernetes 部署的作参数。

      如果未在安装命令中使用 bbecloudsetup 选项或 template file-name 选项,则需要在安装过程中完成以下提示:

      • 如果您使用 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 地址(集群的任何节点)和开放端口,用于对 CLI 进行 SSH 访问。

      注意:

      启用 SSH 访问需要 MGMT 微服务在 权限 模式下运行。

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

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

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

      注意:

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

      启动或推出 APM 时,将在安装过程中提供的配置文件用于初始化 APM。如果未提供配置文件,APM 将以出厂默认设置启动。如果群集上运行的是 BBE 事件收集和可视化应用程序,则默认出厂设置包括 bbe-ecav 系统日志服务器配置。

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

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

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

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

    • 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 地址或全限定域名

    • 端口号

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

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

    如果您希望从特定的网络负载均衡器地址池中分配 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)。

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

    控制器管理器的服务帐户。如果选择 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 实用程序的情况下安装单个 Geography 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),特定于您的配置。微服务的配置文件(values.yaml)中的字段请参见表4
    注意:

    如果不想创建多个 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 证书文件名

    普罗曼

    apmInitVersion

    APM 初始化软件版本。

    • 管理

    • Redis

    archivalUrl

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

    管理

    db master update策略

    RollingUpdate 受支持。

    Redis

    驱逐容忍

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

    • 阿德曼

    • 恩特曼

    • 管理

    • 普罗曼

    • Redis

    log_level

    默认日志记录级别。

    • 阿德曼

    • 恩特曼

    • 管理

    • 普罗曼

    • Redis

    nlbPoolAnnotation

    网络负载均衡器池名称。

    普罗曼

    nlbPoolIpAnnotation

    网络负载均衡器 IP 地址

    普罗曼

    PVC 配置

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

    • size - PVC 尺寸 (MiB)。

    管理

    注册表

    注册表信息:

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

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

    • 阿德曼

    • 恩特曼

    • 管理

    • 普罗曼

    • Redis

    resourceRequests已启用

    是否接受资源请求。

    • 阿德曼

    • 恩特曼

    • 管理

    • 普罗曼

    • Redis

    resourceRanges

    所需资源范围:

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

    • memRequest -作系统所需的最小兆字节 (MiB)。
    • 阿德曼

    • 恩特曼

    • 管理

    • 普罗曼

    • Redis

    • Redis

    哨兵计数

    要启动的哨兵数。

    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 Command Line Tool 命令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-login@server-fqdn:server-port/absolute-file-path 为(例如, scp://user@host1.mydomain.com:30443/home/user/configs/apm)。

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

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

    • Syslog 服务器地址。

    • Sysylog 服务器端口号。

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

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

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

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

  • 服务帐户名称 - 用于将某些作权限绑定到 管理 微服务的 Kubernetes 服务帐户的名称。如果未提供服务帐户名称,APM 将在部署期间创建名为 apm-svca 的服务帐户。

  • DBSync 服务类型 - APM apm multicluster status 实用程序命令通过 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. 从 kubeconfig 文件为 Karmada 上下文创建 karmada-kubeconfig 密钥(有关更多信息,请参阅先决条件)。对于在管理上下文中运行的 APM 观察者微服务来说,该密钥是监视工作负载集群调度事件以计算 APM 在集群切换过程中使用的代号所必需的。
    使用以下命令创建 karmada-kubeconfig 密钥(将密钥 karmada-kconf 命名为):

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

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

  1. Enter rollout 开始 APM 安装。借助 APM 实用程序,您可以为属于 APM 多地理位置设置的所有微服务推出不同的软件版本。您需要以 root 身份使用 sudo 的命令rollout。该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- 要推出的软件版本(默认为链接到群集的版本)。

    注意:

    上,不需要首次部署 serviceservice 与推出(升级)特定服务的特定版本一起 version 使用。

    注意:

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

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

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

    • 服务未运行。

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