Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

如何使用命令行工具管理 APM

安装地址池管理器 (APM) 应用程序后,您可以执行以下管理功能。

地址池管理器为您提供了两个用于执行管理员任务的命令行选项。您可以使用 APM 实用程序脚本 (apm) 或 Kubernetes 命令行工具来管理 APM。

访问 APM 实用程序命令

使用 APM 实用程序命令执行管理功能。

您可以使用 APM 实用程序脚本 (apm) 来管理应用程序并访问用于配置地址管理功能的 CLI。瞻博网络 APM 安装将实用程序脚本放在 /var/local/apm 中,并在 /usr/local/bin/apm 中创建指向该脚本的符号链接。

您可以使用 apm 实用程序脚本(使用 Kubernetes 命令行工具和 Helm 命令)执行以下作:

  • 创建和删除对象。
  • 提供日志访问权限。
  • 使用 Pod 容器进行交互式会话。
  • 显示 APM 对象的状态。

apm使用实用程序脚本可以简化您的许多管理职责。该脚本执行管理 APM 所需的任务,同时掩盖命令的kubectl复杂性。

表 1 列出了可以使用 apm 实用程序脚本调用的命令,并描述了发生的作。许多单独的命令都有您可以指定的选项。

注意:

如果您在位于多个地理位置的设置中使用这些命令,则对于该 context context-name 选项,您必须输入与管理集群关联的 Karmada 上下文的上下文名称。

表 1:APM 实用程序脚本命令
名称

sudo -E apm clean --context context-name [--docker] [--release software-release] [--dry-run] [--uninstall]

清理不需要的版本和 Docker 缓存。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

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

  • no-color- 打印不带颜色的消息。

  • docker- 仅清理本地 Docker 缓存,所有其他文件都保留。

  • release software-release- 指定用于清理或清理所有可能版本的版本。

  • dry-run- 标识要删除的版本和 docker 映像,并将它们打印到控制台。此命令实际上不会清理任何版本或 Docker 缓存。

  • uninstall- 从磁盘中卸载所有 APM 材料。该命令不会影响正在运行的应用程序。

  • clustr-repos- 清除已移除集群的集群存储库。

apm cli --context context-name [-p|--pipe]

允许您访问可用于配置 APM 功能的 CLI。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

  • pipe- 允许您通过管道将输入输入到命令中。

apm contexts [-o|--output json]

显示可用于使用 APM 进行控制的上下文。

此命令提供以下选项:

  • contexts- 列出可用上下文。

  • output json- 允许您请求 JSON 格式的输出。

sudo -E apm db --context context-name --service redis-microservice-instance-name

提供对 Redis 数据库 CLI 的访问。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • service redis-microservice-instance-name- 将命令定向到指定 Redis 微服务实例中的 master 数据库实例。

    注意:

    在多个地理位置的设置中,此选项是必需的。

apm db-info --context context-name --service redis-microservice-instance-name

显示 APM 数据库微服务的当前状态,包括当前版本、有状态集 Pod 及其角色。
注意:对于位于多个地理位置的设置,将 apm db-info显示工作负载群集的 redis 角色。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • service redis-microservice-instance-name- 显示指定 Redis 微服务的数据库信息。

    service如果指定了参数,则输出还包括两个工作负载集群中 Redis 微服务实例的数据库信息

sudo -E apm db-switchover --context context-name --services redis-micro-service-instance-name

强制主数据库 Pod 切换到符合条件的备份数据库 Pod。要运行此命令,您需要 sudo 权限。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • services redis-micro-service-instance-name- 将命令定向到指定 Redis 微服务实例中的 master 数据库实例。

注意:

db-switchover 是服务中断事件,并且只能在升级过程中使用它。

apm ip --context context-name [-o| --output json] [--detail]

使用外部 IP 地址显示每个服务的 IP 地址。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • output json- 允许您请求 JSON 格式的输出。

  • detail—显示详细的 IP 信息。

位于单一地理位置的设置使用:sudo -E apm link [--version software-release] [--context context-name] [--log info] [--no-color] [--from-running]

多个地理位置的设置使用:

sudo -E apm link [--context karmada-context-name] [--log info] [--no-color][--workload-contexts workload-1-context-name workload-2-context-name] [--observer-context observer-context-name] [--version software-release] [--from-running]

将群集链接到特定软件版本。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • version software-release- 指定要链接到集群特定存储库的软件版本。

  • context context-name- 链接到软件版本的 Kubernetes 上下文名称。输入上下文的名称。

  • context karmada-context-name- 在管理集群上安装 Karmada 时创建的 Karmada 上下文的上下文名称。仅与位于多个地理位置的设置配合使用。输入上下文的名称。

  • workload-contexts workload-1-context-name workload-2-context-name- 两个工作负载上下文名称。仅与位于多个地理位置的设置配合使用。输入上下文的名称。

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

  • no-color- 打印不带颜色的消息。

  • observer-context management-context-name- 管理集群的上下文名称。仅与位于多个地理位置的设置配合使用。输入上下文的名称。

  • from-running- 尝试匹配正在运行的地址池管理器的软件版本。

    from-running 选项用于从正在运行的应用程序部署中恢复版本和用户设置。这可以帮助您恢复故障的跳转主机或同步跳转主机网络。

apm logs --logset logset-type --services services-names --context context-name --log info --follow --previous --nocolor

显示 APM 微服务的日志。如果运行命令时不带services选项,则会显示、addrmanentman、微provman服务的日志。

此命令提供以下选项:
  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

  • logset logset-type- 用于指示要显示日志的微服务类型。此命令具有以下选项:

    • apm

      - 显示addrmanentman、、和provman微服务日志。logset 如果未配置该选项,apm则该选项为默认作,您只能看到上述微服务的日志。
    • apm-infra

      - 显示configserverdbsyncmgmt、和redis实例微服务日志。
  • services services-names- 列出要显示其日志的特定微服务。日志按时间顺序显示。

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

  • nocolor- 禁用彩色输出。

  • f, follow- 关注所有微服务的日志。

  • p, previous- 查看以前容器实例中的日志。

注意:

如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。此外,由于在多地理位置部署中存在多个 redis 实例,因此必须指定 redis 实例。例如:

$ apm logs --context karmada-context --services redis-workload1 --logset apm-infra

apm multi-cluster dbsync-stats --context karmada-context-name

显示工作负载群集之间的数据库同步状态。

此命令提供以下选项:

  • context karmada-context-name- 与管理集群关联的 Karmada 上下文的上下文名称。输入上下文的名称。

注意:

此命令仅在位于多个地理位置的设置中受支持。

apm multi-cluster status --context karmada-context-name

从应用程序的角度显示工作负载群集的状态。

此命令提供以下选项:

  • context karmada-context-name- 与管理集群关联的 Karmada 上下文的上下文名称。输入上下文的名称。

注意:

此命令仅在位于多个地理位置的设置中受支持。

sudo -E apm multi-cluster switchover --context karmada-context-name [--force]

启动到其他工作负载群集的切换。APM 微服务将在另一个工作负载群集上重新调度。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context karmada-context-name- 与管理集群关联的 Karmada 上下文的上下文名称。输入上下文的名称。

此命令的输出指示成功或失败。如果发生故障,命令将停止,故障状态为 Multi-cluster switchover failed (database is not synchronizing)

注意:

此命令仅在位于多个地理位置的设置中受支持。

sudo -E apm rename-context --context context-name --new-name new-name

重命名上下文。该命令不会影响群集上当前运行的 APM。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- 要重命名的旧 Kubernetes 上下文名称。输入上下文的名称。

  • new-name new-name- Kubernetes 上下文的新名称。输入新名称。

sudo -E apm restart --context context-name [--force] [--wait] microservice-name

重新启动一个或多个指定的服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- 要重新启动服务的 Kubernetes 上下文名称。输入上下文的名称。

  • force—在未验证微服务是否安全重启的情况下,强行重启微服务。

  • wait- 等待新容器完全启动。

  • microservice-name- 输入要重新启动的微服务名称。

sudo -E apm rollout --context context-name [--service service name --version software-release]

升级或启动 APM 服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- 要推出新软件版本的 Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • sevice service name- 要推出的微服务名称。输入微服务的名称。

  • version software-release- 要推出的软件版本。输入软件版本号。

sudo -E apm save-config -- context context-name

将地址池管理器的当前配置保存到 Pod 外部的文件中。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

sudo -E apm setup --context context-name [--help] [--log info] [--no color] [--bbecloudsetup] [--update] [--ssh ip-address:port-number] [--secrets] [--verbose] [--config file-name] [--template file-name] [--mandatory] [--optional]

在安装过程中设置 APM 应用程序。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- 要在其上运行启动的 Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

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

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

  • no-color- 打印不带颜色的消息。

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

    注意:

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

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

  • ssh ip-address:port-number- 对控制平面实例启用 SSH。输入控制平面实例侦听 SSH 的 SSH IP 地址和端口号(在配置中启用时)。IP 地址也可以是 DNS 名称。

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

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

  • config file-name- 您希望 APM 在启动时使用的初始配置文件。

  • template file-name- 一个 YAML 格式的文件,其中包含在安装过程中创建的配置文件的子集。在模板文件中输入的值将由安装过程自动使用。使用该 template 选项时,无需在设置过程中手动输入模板文件中包含的信息。只有在使用 Red Hat OpenShift Container Platform 创建集群或创建多地理集群时,才应使用该 template 选项。 表 3 描述了需要输入到配置文件中 template 的信息。

    注意:

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

  • mandatory—仅在设置过程中提出必答问题。

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

sudo -E apm shell --context context-name [-p|--pipe] microservice-name

将您连接到正在运行的微服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • microservice-name- 要连接到的微服务的名称。

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • pipe- 允许您通过管道将输入输入到命令中。

sudo -E apm start --context context-name

启动所有 APM 服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- 要启动 APM 的 Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

apm status --context context-name [-o|--output json] [--terse] [--detail]

显示 APM 服务的当前状态。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • output- 允许您请求 JSON 格式的输出。

  • terse- 显示系统运行状况的汇总输出。

  • detail- 显示每个 Pod 的信息。

sudo -E apm stop --context context-name [--now]

停止所有 APM 服务。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- 要停止 APM 的 Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

  • now- 立即停止 APM,而不是等待两分钟的延迟。

apm storage --context context-name

提供 APM 的存储驱动程序的状态。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

sudo -E apm unlink --context context-name

取消链接与上下文关联的组件。要运行此命令,您需要 sudo root 权限。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

apm version --context context-name

显示 APM 实例中每个正在运行的微服务的版本以及 APM 实用程序。它还列出了系统上所有可用的 APM 软件版本。

此命令提供以下选项:

  • context context-name- Kubernetes 上下文名称。输入上下文的名称。

    注意:

    如果在多个地理位置的设置中使用此命令,则必须输入与管理集群关联的 Karmada 上下文的上下文名称。

使用以下常规语法发出命令:

  • 对于简短选项:

  • 对于长选项:

要将命令定位到特定群集上下文,请使用选项 context

要显示带有简要说明的可用命令列表,请使用 hhelp 选项:

要显示特定命令的选项,请执行以下作:

要指定 no-color 禁用彩色文本输出的选项(用于区分日志和不同的微服务),请执行以下作:

使用 APM 安装实用程序将 APM 升级到新版本

使用此过程可升级到安装在类似群集部署(单地理位置或多个地理位置)上的新版本的 APM。此过程假定您的系统上正在运行 APM。

注意:不能在单一地理位置和多个地理位置部署之间进行升级。

使用此过程可升级到新版本的 APM,该版本安装在由 BBE Cloudsetup 实用程序或 Red Hat OpenShift Container Platform Console 创建的集群上。此过程假定您的系统上正在运行 APM。

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

    APM 以压缩压缩包映像 (.tgz) 的形式提供。文件名包含作为名称一部分的版本号。版本号的格式为:<Major>.<Minor>.<Maintenance>

    • major 是产品的主要版本号。
    • minor 是产品的次要版本号。
    • maintenance 是修订号。
  2. 通过输入以下内容,解压缩跳转主机上的 APM tarball (.tgz) 文件:
  3. 解压缩压缩包后,运行加载程序脚本。
  4. 使用link命令链接到群集。命令link将加载的 APM 软件包与群集相关联,以准备安装。您为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合您的部署的命令:
    • 单一地理位置:

    • 多个地理位置:

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

    • apm-version—APM 软件版本。

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

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

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

  5. 如果您要在 Red Hat OpenShift Container Platform 集群上升级 APM,请使用 OpenShift CLI 登录,然后继续执行下一步。
    如果要在 BBE Cloudsetup 创建的集群上安装 APM,请继续执行下一步。
  6. 您必须使用每个集群的容器注册表进行身份验证,才能推送 APM 容器映像。对于单一地理位置部署。您可以使用单个群集的容器注册表进行身份验证。对于多地理位置部署,您需要使用管理层的容器注册表以及两个工作负载群集进行身份验证。您向注册表进行身份验证的方式会有所不同,具体取决于您是在 BBE Cloudsetup 创建的集群上还是在 Red Hat OpenShift Container Platform 集群上安装 APM(有关详细信息,请参阅相应的文档)。
  7. setup运行命令以完成任何其他环境值的设置。您为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合您的部署的命令:
    • 单一地理位置:

    • 多个地理位置:

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

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

    • update 仅提示缺少值(主要在加载新软件版本后使用)。

  8. 显示正在运行的数据库以查看哪个 Pod 是主 Pod,并确定是否升级持久状态数据库。您为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合您的部署的命令:
    • 单一地理位置:

    • 多个地理位置:

  9. 显示新包中的数据库版本:
    注意:

    例如,数据库版本 6.2.16-debian-12-r3 高于正在运行的版本 (6.2.14),因此您需要升级数据库。

  10. 如果不是jnpr-apm-redis-0主数据库,则启动数据库切换。您为单个地理位置或多个地理位置部署输入的命令是不同的。运行以下适合您的部署的命令:
    • 单一地理位置:

    • 多个地理位置:

  11. 使用rollout命令升级微服务。按以下顺序输入部署的命令(单个或多个地理位置):
    注意:如果 、 、 或 (redis) 微服务的版本 observer没有更改,则无需为其运行 rollout命令。 db configsvr dbSync
    • 单一地理位置:

    • 多个地理区域

  12. 验证所有微服务是否都在运行新版本的软件:

在不使用 APM 实用程序的情况下将 APM 升级到新版本

本部分中的说明介绍了在所选的预先存在的单一地理位置 Kubernetes 集群上安装 APM 的升级步骤。此过程是一个手动过程,不使用 APM 安装包附带的 APM 实用程序。

注意:此升级过程仅适用于单个地理部署。
  1. 从瞻博网络软件下载页面将 APM 软件包下载到跳转主机。

    APM 以压缩压缩包映像 (.tgz) 的形式提供。文件名包含作为名称一部分的版本号。版本号的格式为:<Major>.<Minor>.<Maintenance>

    • major 是产品的主要版本号。
    • minor 是产品的次要版本号。
    • maintainance 是修订号。
  2. 通过输入以下内容,解压缩跳转主机上的 APM tarball (.tgz) 文件:
  3. APM 所需的容器映像存储在 images 子目录中。您必须将映像推送到注册表,从中提取计划的应用程序映像。根据所使用的容器注册表类型,命令可能会有所不同。以下命令演示了将容器映像推送到注册表的一种方法:
  4. 要准备要升级的 APM,请为每个微服务创建新的 YAML 配置文件。(微服务的配置文件中的字段如表4所示。
    注意:

    在初始安装过程中,您可能创建了一个 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

  5. 创建 APM ServiceAccount 对象:
  6. 运行依赖项更新命令:
  7. 在对每个微服务的新values.yaml文件进行所有所需的更改后,微服务必须与新values.yaml文件一起部署。

    运行以下命令:

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

使用 APM 实用程序启动或停止 APM 服务

apm使用实用程序脚本启动或停止所有 APM 服务。服务按依赖项顺序启动。基本服务(db 和 mgmt)首先开始,然后是其他服务。服务按依赖关系的相反顺序停止。

  • 要启动所有 APM 服务,请执行以下作:

    注意:

    我们建议您使用 sudo -E apm start ––services 选项来启动单个服务或一组服务,仅用于故障排除。在瞻博网络支持代表的指导下使用。请谨慎使用,因为此命令类似于重新启动到出厂默认设置。

    注意:

    当您执行 apm setup 命令时,APM 从其初始设置开始。执行命令时 apm stop ,任何持久状态都将丢失。可以使用 apm save-config 命令保存当前配置。保存的配置是下次启动 APM 时使用的配置。

  • 要停止所有 APM 服务,请执行以下作:

使用 Kubernetes 命令行工具重新启动 APM 服务

kubectl delete pods使用 Kubernetes 命令重新启动 APM 服务。例如:

注意:

要确定 Pod 名称,可以使用 kubectl get pods -n jnpr-apm Kubernetes 命令(请参阅 使用 Kubernetes 命令行工具检查 APM 服务的状态)。

使用 APM 实用程序设置密钥

您可以在安装过程中设置密钥,也可以运行以 sudo -E apm setup --context context-name --secrets 设置密钥或更新密钥。

注意:

如果为机密名称输入值,则不会要求你提供密钥或认证文件。

使用 APM 实用程序显示数据库信息

命令 apm db-info 显示 APM 数据库微服务的当前状态,包括当前版本、有状态集 Pod 及其角色。

注意:对于位于多个地理位置的设置,将 apm db-info显示工作负载群集的 redis 角色。

单一地理位置设置

多个地理位置的设置

使用 Kubernetes 命令行工具显示正在运行的数据库

kubectl exec使用 Kubernetes 命令显示正在运行的数据库,查看哪个 Pod 是主 Pod,并确定是否升级持久状态数据库。您应该在主 Redis 服务器实例和辅助 Redis 服务器实例上运行。kubectl exec例如:

使用 Kubernetes 命令行工具执行数据库切换

要强制持久状态数据库主 Pod 切换到符合条件的备份 Pod,请执行以下作:

  1. kubectl get pods运行Kubernetes 命令以确定哨兵 Pod 的名称。
  2. 选择三个哨兵 Pod 中的任何一个以配合kubectl exec命令使用。以下示例使用 jnpr-apm-redis-sentinels-0 sentinel pod。运行以下命令后,redis 实例的角色将受到重视(redis-0 是辅助实例,redis-1 是主实例)。

使用 APM 实用程序检查 APM 服务的状态

apm status使用实用程序脚本检查表 2 中列出的每个 APM 服务(功能组件)的状态。状态显示服务是正在运行、已退出还是尚未启动。它还会在 Kubernetes Pod 上显示服务名称。您可以比较服务的正常运行时间,以快速查看是否有任何服务已重新启动。

注意:您可以使用 apm status实用程序脚本检查多地理位置、多集群设置的每个 APM 服务的状态。
表 2:使用状态命令显示的服务

微服务

Pod 前缀

addrman - 地址管理器。

JNPR-APM-ADDRMAN

mgmt — CLI 管理。

JNPR-APM-管理

redis (远程词典服务器)—由一组提供持久数据库的 Pod 组成。

jnpr-apm-redis

entman - 实体管理器。

jnpr-apm-entman

provman - 调配管理器。

jnpr-apm-provman

dbSync - 数据库同步。

jnpr-apm-dbSync

cfgServer - 配置文件复制。

jnpr-apm-cfg服务器

bbe-observer - 观察多个集群调度事件以计算代号。

JNPR-APM-BBE-OBSERVER

要检查状态,请执行以下作:

  1. 显示服务状态。
  2. (可选)以 JavaScript 对象表示法 (JSON) 格式呈现版本信息,这对于编写脚本接口很有用。

例如:

使用 Kubernetes 命令行工具检查 APM 服务的状态

使用 Kubernetes 命令行工具检查 表 2 中列出的每个 APM 服务(功能组件)的状态。状态显示服务是正在运行、已退出还是尚未启动。它还会在 Kubernetes Pod 上显示服务名称。您可以比较服务的正常运行时间,以快速查看是否有任何服务已重新启动。

注意:您仅将本节中的过程用于位于单个地理位置的 APM 设置。
表 3:使用状态命令显示的服务

微服务

Pod 前缀

addrman - 地址管理器。

JNPR-APM-ADDRMAN

mgmt — CLI 管理。

JNPR-APM-管理

redis (远程词典服务器)—由一组提供持久数据库的 Pod 组成。

jnpr-apm-redis

entman - 实体管理器。

jnpr-apm-entman

provman - 调配管理器。

jnpr-apm-provman

dbSync - 数据库同步。

jnpr-apm-dbSync

cfgServer - 配置文件复制。

jnpr-apm-cfg服务器

bbe-observer - 观察多个集群调度事件以计算代号。

JNPR-APM-BBE-OBSERVER

要检查状态,请运行以下命令:

例如:

使用 APM 实用程序显示 APM IP 地址

apm ip使用实用程序脚本显示编排 APM Pod 所需的 Kubernetes 对象。例如:

使用 Kubernetes 命令行工具显示 APM IP 地址

kubectl get services使用 Kubernetes 命令显示编排 APM Pod 所需的 Kubernetes 对象。例如:

使用 APM 实用程序显示日志记录

apm logs使用实用程序脚本显示 APM 运行时发生的事件的日志。您还可以使用 BBE 事件收集和可视化实用程序来显示自 APM 启动以来收集和存储的基于文件的日志。BBE 事件收集和可视化是一个基于云的集中式实用程序,它提供了一种捕获跨越 APM 微服务生命周期的 APM 日志的方法。设置 APM 时,您可以链接到 BBE 事件收集和可视化日志记录实用程序。请参阅《宽带边缘事件收集和可视化安装指南》。

显示 APM 日志记录

BBE 事件收集和可视化是一个基于云的集中式实用程序,它提供了一种捕获跨越 APM 微服务生命周期的 APM 日志的方法。如果 BBE 事件收集和可视化正在运行,则在 APM 设置期间,您可以指向 BBE 事件收集和可视化来执行日志记录。BBE Event Collection and Visualization 具有基于 Web 的 OpenSearch 功能界面,用于对收集的系统日志事件进行高级搜索、聚合、查看和数据分析。

apm logs使用实用程序脚本显示 APM 运行时发生的事件的日志。事件日志包括以下非详尽列表中显示的事件:

  • 池域注册事件

  • 地址分配失败

  • 网络实体连接失败

  • 启动消息

  • 网络实体重新同步事件

  • 池和分区利用率阈值和耗尽警告

默认情况下,APM 将日志发送到服务的标准输出 (stdout)。输出显示所有服务或指定服务的循环缓冲区。您还可以启用日志记录以跟踪正在运行的服务的日志输出。遵循日志输出会创建一个打开的会话,该会话会连续将日志流式传输到 stdout。

APM 日志记录功能掩盖了收集日志信息的命令的底层复杂性 kubectl log 。您仍然可以使用命令 kubectl log ,但这不在本文档的讨论范围之内。

注意:

可以使用第三方应用程序捕获和重定向容器的 stdout 流。请参阅您的第三方文档以获取帮助。您还可以使用不同的日志记录驱动程序配置 Docker 以重定向 stdout。请参阅 Docker 文档以获取帮助。

要显示所有服务的 APM 日志,请执行以下作:

最佳实践:

apm logs ––services仅当在瞻博网络支持代表的指导下进行故障排除时,才使用选项。

要遵循所有服务的日志,请指定以下选项 (-f):

要在 Kubernetes Pod 中查看容器先前实例的日志,请指定先前的容器选项 (-p):

您可以使用标准 Ubuntu 约定将日志重定向到文件或终端和文件。有关更多信息,请参阅 Ubuntu 文档,但您可以使用以下示例作为起点:

  • 仅将所有日志重定向到一个文件。

  • 将所有日志重定向到屏幕和文件。

最佳实践:

仅在瞻博网络支持代表的指导下将该 ––services 选项用于故障排除。

您可以按严重性递增的顺序指定以下任一严重性级别:

表 4:严重性级别
严重性级别 说明
debug 通常仅在您尝试诊断问题时才感兴趣的详细信息。这些日志通常非常频繁。
info 关注的事件或非错误条件。此级别的日志可确认一切正在按预期工作。这些日志通常不是很频繁。
warning 表示发生了一些意外的事情,或者在不久的将来可能会出现一些问题。后者的一个简单示例是 磁盘空间不足 警告,该警告表示您可能很快就会耗尽磁盘空间。在任何一种情况下,软件仍按预期工作,但您可能需要更密切地监视它。这些日志通常不是很频繁。
error 表示更严重的问题阻止了软件执行某些功能,但软件已尽可能优雅地处理了问题以继续运行。
critical 指示程序本身可能无法继续运行的严重错误。

--logset您可以使用选项仅显示 APM 服务的日志,也可以仅显示预构建服务的日志。如果不使用此选项,则仅显示 APM 服务日志。

要仅显示 APM 服务的日志,请执行以下作:

要显示预构建服务的日志,请执行以下作:

预构建服务是从其他来源借用的服务,用于为 APM 提供基础架构功能。这些来源包括 mgmt、redis 和 redis-sentinel。例如,redis 提供数据库和消息服务,mgmt 提供配置和 CLI 服务等。

使用 Kubernetes 命令行工具显示日志

要显示 APM 运行时发生的所有事件日志,请运行以下命令:

要显示特定微服务的日志,请将标签选择器 (-l jnpr/logset=jnpr-apm) 替换为 Pod 名称。例如:

注意:

要确定 Pod 名称,可以使用 kubectl get pods -n jnpr-apm Kubernetes 命令(请参阅 使用 Kubernetes 命令行工具检查 APM 服务的状态)。

使用 APM 实用程序确定 APM 版本

apm version [--context <context name>] [-o|--output json] [--detail| --compare <software-version>]使用实用程序脚本确定已安装的 APM 版本的版本号。

要显示发行版:

要将指定的软件版本版本与指定上下文的当前部署版本进行比较,请执行以下作:

-j使用选项以 JavaScript 对象标记 (JSON) 格式呈现版本信息。

使用 Kubernetes 命令行工具存档 APM 配置

要存档当前正在运行的 APM 配置的副本,请输入以下命令:

使用 APM 实用程序卸载和删除 APM

apm使用实用程序脚本卸载 APM 配置。该uninstall命令将恢复您在设置 APM 时执行的作。使用此命令可将 APM 恢复到安装应用程序后、执行任何设置配置之前的状态。

要卸载 APM,请执行以下作:

卸载 APM 后,我们建议您使用 Debian 卸载过程移除整个软件包。

apm clean有关命令选项,请参阅以下内容:

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

  • --log-l {error | warn | info | debug} - 调整实用程序代码库的日志级别。

  • --no-color- 打印不带颜色的消息。

  • --docker- 清理本地 docker 缓存。

  • --release release-number- 要清理的版本(默认为未使用的版本)。

  • --dry-run- 列出要删除的版本或容器。

  • --uninstall- 卸载所有软件版本并从系统中删除 APM。

  • --cluster-repos- 清除已移除集群的集群存储库。

在不使用 APM 实用程序的情况下卸载和删除 APM

这是未使用 APM 实用程序创建的 APM 部署的卸载过程。 helm uninstall 使用命令卸载 APM 配置。要完全删除 APM,您必须为每个微服务运行 helm uninstall 命令。

要卸载 APM,请运行以下命令:

如何使用 APM 实用程序访问 APM 配置和作命令

使用 APM 实用程序访问 APM CLI

要访问 CLI 提示符,请输入以下 apm 实用程序脚本命令:

输入问号以查看可用的顶级 CLI 命令。此命令列表是 Junos OS 顶级命令的子集。

有关 Junos OS CLI 基础知识的概述,请参阅 第一天:探索 Junos CLI。有关详细信息,请参阅 CLI 用户指南

使用 APM 实用程序访问和使用 CLI 配置语句

  1. 使用 APM 实用程序命令apm cli访问顶级 CLI 提示符。
  2. 访问配置模式以配置 APM 以及 APM 用于配置托管路由器的信息。
  3. 输入 CLI 语句以配置 APM 管理的 BNG、池域、池和系统属性。
  4. 保存并激活配置。仅当没有配置语法错误时,此命令才会成功。
  5. (可选)退出配置模式并返回到顶级 CLI 提示符。

使用 APM 实用程序访问和使用 CLI作命令

要监控 APM,请查看 APM 配置和统计信息,或手动运行某些作:

  1. 使用 APM 实用程序命令apm cli访问顶级 CLI 提示符。
  2. 输入特定命令。
    • 使用 show 命令显示统计信息以及分区、BNG、池域和池之间的关系。

    • 使用 request 命令手动启动某些 APM作。

如何在不使用 APM 实用程序的情况下使用 APM 命令行工具

本节介绍如何使用 Kubernetes 命令行工具命令执行管理功能。

您可以使用 Kubernetes 命令行工具管理应用程序并访问用于配置地址管理功能的 CLI。

您可以使用 Kubernetes 命令行工具执行以下作:

  • 创建和删除对象。
  • 提供日志访问权限。
  • 使用 Pod 容器进行交互式会话。
  • 显示 APM 对象的状态。

访问 APM 命令行工具,而无需使用 APM 实用程序

要使用 Kubernetes 命令访问 APM 命令行工具,请输入以下内容:

输入问号以查看可用的顶级 CLI 命令。