安装

概述

监控组件为可观测性模块中的监控、告警、检查和健康检查功能提供基础设施。在集群中安装 ACP Basic Monitoring 或 ACP Advanced Monitoring。

要决定安装哪个插件,请先查看监控组件选择指南,然后根据集群规模、存储规划和运维要求选择最合适的选项。

Perses 监控面板需要额外的监控面板组件。在 Operations Center > Monitor > Dashboards (Perses) 中查看、创建或迁移监控面板时,请安装这些组件。

开始之前

INFO

某些监控组件会大量消耗资源。建议通过插件配置将其放置在 infra 节点上。Prometheus 和 VictoriaMetrics 都支持插件级别的 nodeSelector 和 tolerations 设置。如果您正在评估产品且尚未配置 infra 节点,可以将这些设置留空,以便组件在通用节点上运行。

有关规划 infra 节点的指导,请参阅Infra 节点。

安装监控组件前,请确保满足以下条件:

  • 参考监控组件选择指南选择合适的监控组件。
  • 在业务集群中安装时,请确保 global 集群可以访问业务集群的 11780 端口。
  • 如果需要使用存储类或持久卷存储监控数据,请提前在 Storage 部分创建相应资源。
  • 在安装前决定由哪个集群存储监控数据。global 集群会安装完整的组件集,并且仅监控自身。在多集群平台上,请将聚合业务集群指标的 VictoriaMetrics Center 安装在专用业务集群中,而不是安装在 global 集群中;并将每个业务集群安装为仅运行 agent 的模式,指向该集群,从而使管理集群的可用性与应用监控负载相互独立。
  • 如果 global 集群以灾难恢复方式部署,业务集群监控不得指向主集群或备用 global 集群。灾难恢复仅同步 global 集群的 etcd 数据,并排除 cpaas-system 等命名空间,因此监控数据不会被复制,并且在故障转移后不可用。每个 global 集群仅监控自身。有关同步范围,请参阅Global 集群灾难恢复。
  • 如果集群节点运行 Alauda OS 且计划使用 LocalVolume 存储,请勿保留默认存储路径。请参阅Alauda OS 上的 LocalVolume 存储路径。

Alauda OS 上的 LocalVolume 存储路径

两个监控插件默认将 LocalVolume 存储路径设置为 /cpaas/monitoring,该路径属于运行非 Alauda OS 的节点布局。在节点运行 Alauda OS 的集群中,节点具有只读根文件系统,节点本地的平台数据保存在提供商机器配置中声明的持久磁盘上的 /var/cpaas 下。在这些已声明磁盘之外写入的任何内容,在平台替换节点时都不会保留。其他平台组件已遵循此约定;例如,在节点运行 Alauda OS 的集群中,etcd 备份使用 /var/cpaas/backup。请参阅etcd 备份与恢复。

在此类集群中使用 LocalVolume 存储安装任一监控插件时:

  • 将存储路径设置为 /var/cpaas/monitoring,而不是默认路径 /cpaas/monitoring。在控制台中设置 Storage Path;在 YAML 中设置 spec.config.storage.path。

  • 在 spec.config.storage.nodes 中列出的每个节点上使用持久磁盘支持该路径,并根据配置的存储容量确定磁盘大小。平台会在这些节点的此路径下创建数据目录,因此该路径必须可写。请在管理该集群的 provider 的持久磁盘字段中声明该磁盘,以确保其在节点替换后仍然保留:

    Provider持久磁盘字段
    Huawei DCSDCSIpHostnamePool.spec.pool[].persistentDisk
    VMware vSphereVSphereMachineConfigPool.spec.configs[].persistentDisks[]
    Huawei Cloud StackHCSMachineConfigPool.spec.configs[].persistentDisks[]
    Bare MetalMachineInventory.spec.storage.volumes[]

    有关各 provider 的声明操作步骤,请参阅在 Alauda OS 上创建集群。在 Bare Metal 上,磁盘已经连接到物理主机,并且是在长期存在的 MachineInventory 上声明,而不是从 IaaS 平台请求。因此请遵循管理裸金属主机上的数据磁盘中的说明,并在 inventory 仍处于未分配状态时声明该卷。

  • 不要在未进行规划的情况下让监控数据与平台 /var/cpaas 磁盘共享。监控数据会随配置的规模和保留期增长,因此应为 /var/cpaas/monitoring 配置专用磁盘,或调整现有 /var/cpaas 磁盘的大小,使其同时满足监控容量需求。

安装插件时设置此路径。对于 ACP Basic Monitoring,安装后无法修改存储配置。

安装 Perses Dashboard 组件

Perses 监控仪表板依赖以下组件:

组件安装位置用途
Alauda Container Platform Dashboard Essentials仅限 global 集群提供 Perses 仪表板使用的、支持 RBAC 的指标查询服务。
Alauda Container Platform Dashboardglobal 集群运行唯一的 Perses server 实例。业务集群会根据需要安装 operator,以提供 PersesDashboard CRD,但不会创建 Perses 实例。提供 Perses 仪表板后端、渲染、编辑和 PersesDashboard 资源管理功能。

Perses server 和 observe-api 仅在 global 集群中创建。在控制台中选择业务集群时,控制台仍会将 Perses server 请求路由到 global 集群。所选业务集群决定使用哪个集群的指标和 PersesDashboard 资源。observe-api 会查询跨集群指标并实施 RBAC。

请按以下顺序安装组件:

  1. 在 global 集群中安装 Alauda Container Platform Dashboard Essentials。

  2. 在 global 集群中创建一个 ObserveAPI 实例。你可以使用组件或 OperatorHub 条目的 Create 操作,也可以应用如下 CR:

    apiVersion: observe.alauda.io/v1alpha1
    kind: ObserveAPI
    metadata:
      name: observe-api
      namespace: cpaas-system
    spec: {}

    验证 observe-api Deployment 正在运行。

  3. 在 global 集群中安装 Alauda Container Platform Dashboard。

  4. 在 global 集群中创建唯一的 Perses 实例。你可以使用组件或 OperatorHub 条目的 Create 操作,也可以应用如下 CR:

    apiVersion: perses.dev/v1alpha2
    kind: Perses
    metadata:
      name: cpaas-perses
      namespace: cpaas-system
      annotations:
        perses.dev/ingress.enabled: "true"
    spec:
      replicas: 2
      containerPort: 8080
      storage:
        emptyDir: {}
      config:
        frontend:
          disable: true

    验证 cpaas-perses Deployment 正在运行。

  5. 对于用户需要查看或创建 Perses 仪表板的每个业务集群,请安装 Alauda Container Platform Dashboard,以便在该集群中提供 PersesDashboard CRD。不要在业务集群中创建 Perses 实例。

  6. 前往 Operations Center > Monitor > Dashboards (Perses),并确认所选集群中的仪表板列表可用。

如果所选集群尚未安装 Alauda Container Platform Dashboard,Perses 仪表板页面将显示安装指南,而不是仪表板列表。

Perses 仪表板组件会重复使用现有的平台指标存储,例如 VictoriaMetrics 或 Prometheus。它们不会引入单独的指标存储或租户。

安装 operator 只会安装控制器和 CRD。必须先在 global 集群中创建相应的 ObserveAPI 和 Perses 实例,然后才会启动实际的 observe-api 和 Perses server 工作负载。

ACP 基础监控

从控制台安装

  1. 前往 App Store Management > Cluster Plugins,然后选择目标集群。

  2. 找到 ACP Basic Monitoring 插件,然后点击 Install。

  3. 配置以下参数:

    控制台会突出显示最常用的安装选项。有关可配置字段的详细信息,请参阅本节中的 YAML 参考。

    参数描述
    Scale Configuration支持三种配置:Small Scale、Medium Scale 和 Large Scale:
    - 默认值根据平台建议的负载测试值设置
    - 你可以根据实际集群规模选择或自定义配额
    - 默认值会随平台版本更新;对于固定配置,建议使用自定义设置
    Storage Type- LocalVolume:本地存储,数据存储在指定节点上
    - StorageClass:使用存储类自动生成持久卷
    - PV:使用现有持久卷
    注意:安装后无法修改存储配置
    Storage Path当 Storage Type 为 LocalVolume 时显示。用于存储 Prometheus 数据的主机目录;必须使用绝对路径。默认值:/cpaas/monitoring。在 Alauda OS 上,请设置为 /var/cpaas/monitoring;请参阅 Alauda OS 上的 LocalVolume 存储路径。
    Replica Count设置监控组件 Pod 的数量
    注意:Prometheus 仅支持单节点安装
    Advanced Configuration用于配置插件级调度参数的可折叠部分。
    Node Selectors在 Advanced Configuration 中显示。为 Prometheus 插件工作负载配置插件级节点选择器规则。
    Node Tolerations在 Advanced Configuration 中显示。为 Prometheus 插件工作负载配置插件级容忍规则。
    Parameter Configuration可根据需要调整监控组件的数据参数
  4. 点击 Install 完成安装。

使用 YAML 安装

检查可用版本

通过检查 global 集群中的 ModulePlugin 和 ModuleConfig 资源,确保插件已发布:


# kubectl get moduleplugin | grep prometheus
prometheus                       30h
# kubectl get moduleconfig | grep prometheus
prometheus-v4.1.0                30h

这表示集群中存在 ModulePlugin prometheus,并且已发布版本 v4.1.0。

创建 ModuleInfo

创建 ModuleInfo 资源,在不配置任何参数的情况下安装插件:

kind: ModuleInfo
apiVersion: cluster.alauda.io/v1alpha1
metadata:
  name: global-prometheus
  labels:
    cpaas.io/cluster-name: global
    cpaas.io/module-name: prometheus
    cpaas.io/module-type: plugin
spec:
  version: v4.1.0
  config:
    storage:
      type: LocalVolume
      capacity: 40
      nodes:
        - xxx.xxx.xxx.xx
      path: /cpaas/monitoring # On Alauda OS use /var/cpaas/monitoring
      storageClass: ""
      pvSelectorK: ""
      pvSelectorV: ""
    replicas: 1
    components:
      nodeSelector:
        - key: kubernetes.io/os
          value: linux
      tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          operator: Exists
      prometheus:
        retention: 7
        scrapeInterval: 60
        scrapeTimeout: 45
        resources: null
      nodeExporter:
        port: 9100
        resources: null
      alertmanager:
        resources: null
      kubeStateExporter:
        resources: null
      prometheusAdapter:
        resources: null
      thanosQuery:
        resources: null
    size: Small

资源设置示例(Prometheus):

spec:
  config:
    components:
      prometheus:
        resources:
          limits:
            cpu: 2000m
            memory: 2000Mi
          requests:
            cpu: 1000m
            memory: 1000Mi

有关更多详细信息,请参阅 监控组件容量规划。

YAML 字段参考(Prometheus):

字段路径描述
metadata.labels.cpaas.io/cluster-name安装插件的目标集群名称。
metadata.labels.cpaas.io/module-name必须为 prometheus。
metadata.labels.cpaas.io/module-type必须为 plugin。
metadata.nameModuleInfo 名称(例如 <cluster>-prometheus)。
spec.version要安装的插件版本。
spec.config.storage.type存储类型:LocalVolume、StorageClass 或 PV。
spec.config.storage.capacityPrometheus 的存储大小(Gi)。建议至少为 30 Gi。
spec.config.storage.nodes使用 storage.type=LocalVolume 时的节点列表。最多支持 1 个节点。
spec.config.storage.path使用 storage.type=LocalVolume 时的 LocalVolume 基础路径。默认值:/cpaas/monitoring。在 Alauda OS 上,请设置为 /var/cpaas/monitoring;请参阅 Alauda OS 上的 LocalVolume 存储路径。
spec.config.storage.storageClass使用 storage.type=StorageClass 时的 StorageClass 名称。
spec.config.storage.pvSelectorK使用 storage.type=PV 时的 PV 选择器键。
spec.config.storage.pvSelectorV使用 storage.type=PV 时的 PV 选择器值。
spec.config.replicas副本数量;仅适用于 StorageClass/PV 类型。
spec.config.components.nodeSelector可选。Prometheus 插件工作负载的插件级节点选择器规则。
spec.config.components.tolerations可选。Prometheus 插件工作负载的插件级容忍规则。
spec.config.components.prometheus.retention数据保留天数。
spec.config.components.prometheus.scrapeInterval抓取间隔(秒);适用于不带 interval 的 ServiceMonitor。
spec.config.components.prometheus.scrapeTimeout抓取超时时间(秒);必须小于 scrapeInterval。
spec.config.components.prometheus.resourcesPrometheus 的资源设置。
spec.config.components.nodeExporter.portNode Exporter 端口(默认 9100)。
spec.config.components.nodeExporter.resourcesNode Exporter 的资源设置。
spec.config.components.alertmanager.resourcesAlertmanager 的资源设置。
spec.config.components.kubeStateExporter.resourcesKube State Exporter 的资源设置。
spec.config.components.prometheusAdapter.resourcesPrometheus Adapter 的资源设置。
spec.config.components.thanosQuery.resourcesThanos Query 的资源设置。
spec.config.size监控规模:Small、Medium 或 Large。

验证安装

由于 ModuleInfo 名称会在创建后发生变化,请通过标签查找资源,以检查插件状态和版本:

kubectl get moduleinfo -l cpaas.io/module-name=prometheus
NAME                                             CLUSTER         MODULE        DISPLAY_NAME   STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
global-e671599464a5b1717732c5ba36079795          global          prometheus    prometheus     Running   v4.1.0           v4.1.0            v4.1.0

字段说明:

  • NAME:ModuleInfo 资源名称
  • CLUSTER:安装插件的集群
  • MODULE:插件名称
  • DISPLAY_NAME:插件的显示名称
  • STATUS:安装状态;Running 表示已成功安装并运行
  • TARGET_VERSION:计划安装的版本
  • CURRENT_VERSION:安装前的版本
  • NEW_VERSION:可安装的最新版本

将 Prometheus 工作负载放置在基础设施节点上

如果希望 Prometheus 插件工作负载在专用基础设施节点上运行,请在安装或升级期间配置插件级调度规则,而不要在安装后修补生成的工作负载。

  • 在控制台中,使用 Advanced Configuration 设置 Node Selectors 和 Node Tolerations。
  • 在 YAML 中设置 spec.config.components.nodeSelector 和 spec.config.components.tolerations。

示例:

config:
  components:
    nodeSelector:
      - key: kubernetes.io/os
        value: linux
    tolerations:
      - effect: NoSchedule
        key: node-role.kubernetes.io/infra
        operator: Exists

在应用这些调度规则之前,请确保基础设施节点规划与存储放置相兼容。有关规划注意事项,请参阅 How To 中的 Monitoring 指南,包括 Planning Infra Nodes for Monitoring。

访问已安装的组件

安装完成后,可以通过以下地址访问组件(将 <> 替换为实际值):

组件访问地址
Thanos<platform_access_address>/clusters/<cluster>/prometheus
Prometheus<platform_access_address>/clusters/<cluster>/prometheus-0
Alertmanager<platform_access_address>/clusters/<cluster>/alertmanager

ACP 高级监控

前提条件

  • 如果仅安装 VictoriaMetrics agent,请确保已在其他集群中安装 VictoriaMetrics Center。

从控制台安装

  1. 导航至 应用商店管理 > 集群插件,然后选择目标集群。

  2. 找到 ACP 高级监控 插件,然后点击 安装。

  3. 配置以下参数:

    控制台会突出显示最常用的安装选项。有关可配置字段的详细信息,请参阅本节中的 YAML 参考。

    参数描述
    规模配置支持三种配置:小规模、中规模和大规模:
    - 默认值根据平台推荐的负载测试值设置
    - 可以根据实际集群规模选择或自定义配额
    - 默认值会随平台版本更新;如需固定配置,建议使用自定义设置
    仅安装 Agent- 关闭:安装完整的 VictoriaMetrics 组件套件
    - 开启:仅安装 VMAgent 采集组件,该组件依赖 VictoriaMetrics Center
    VictoriaMetrics Center选择已安装完整 VictoriaMetrics 组件的集群
    存储类型- LocalVolume:使用本地存储,数据存储在指定节点上
    - StorageClass:使用存储类自动生成持久卷
    - PV:使用现有持久卷
    存储路径当 存储类型 为 LocalVolume 时显示。指定监控数据的基础存储路径。默认值:/cpaas/monitoring。在 Alauda OS 上设置为 /var/cpaas/monitoring;请参阅 Alauda OS 上的 LocalVolume 存储路径。
    副本数当 存储类型 为 StorageClass 或 PV 时显示。设置监控组件 Pod 的数量。当 存储类型 为 LocalVolume 时,所选节点数决定 VMStorage 副本数。
    高级配置用于插件级调度参数的可折叠部分。
    节点选择器在 高级配置 中显示。为 VictoriaMetrics 插件工作负载配置插件级节点选择器规则。
    节点容忍度在 高级配置 中显示。为 VictoriaMetrics 插件工作负载配置插件级容忍度规则。
    参数配置可以调整监控组件的数据参数
    注意:数据在删除前可能会暂时超过保留期限
  4. 点击 安装 完成安装。

使用 YAML 安装

检查可用版本

通过检查 global 集群中的 ModulePlugin 和 ModuleConfig 资源,确保插件已发布:


# kubectl get moduleplugin | grep victoriametrics
victoriametrics                       30h
# kubectl get moduleconfig | grep victoriametrics
victoriametrics-v4.1.0                30h

这表示 ModulePlugin victoriametrics 存在于集群中,并且已发布版本 v4.1.0。

创建 ModuleInfo

创建 ModuleInfo 资源,在不配置任何参数的情况下安装插件:

kind: ModuleInfo
apiVersion: cluster.alauda.io/v1alpha1
metadata:
  name: business-1-victoriametrics
  labels:
    cpaas.io/cluster-name: business-1
    cpaas.io/module-name: victoriametrics
    cpaas.io/module-type: plugin
spec:
  version: v4.1.0
  config:
    storage:
      type: LocalVolume
      capacity: 40
      nodes:
        - xxx.xxx.xxx.xx
      path: /cpaas/monitoring # On Alauda OS use /var/cpaas/monitoring
      storageClass: ""
      pvSelectorK: ""
      pvSelectorV: ""
    replicas: 1
    agentOnly: false
    agentReplicas: 1
    crossClusterDependency:
      victoriametrics: ""
    components:
      nodeSelector:
        - key: kubernetes.io/os
          value: linux
      tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/infra
          operator: Exists
      nodeExporter:
        port: 9100
        resources: null
      vmstorage:
        retention: 7
        resources: null
      kubeStateExporter:
        resources: null
      vmalert:
        resources: null
      prometheusAdapter:
        resources: null
      vmagent:
        scrapeInterval: 60
        scrapeTimeout: 45
        resources: null
      vminsert:
        resources: null
      alertmanager:
        resources: null
      vmselect:
        resources: null
    size: Small

资源设置示例(vmagent):

spec:
  config:
    components:
      vmagent:
        resources:
          limits:
            cpu: 2000m
            memory: 2000Mi
          requests:
            cpu: 1000m
            memory: 1000Mi

有关详细信息,请参阅 监控组件容量规划。

YAML 字段参考(VictoriaMetrics):

字段路径描述
metadata.labels.cpaas.io/cluster-name安装插件的目标集群名称。
metadata.labels.cpaas.io/module-name必须为 victoriametrics。
metadata.labels.cpaas.io/module-type必须为 plugin。
metadata.nameModuleInfo 名称(例如 <cluster>-victoriametrics)。
spec.version要安装的插件版本。
spec.config.storage.type存储类型:LocalVolume、StorageClass 或 PV。
spec.config.storage.capacityVictoriaMetrics 的存储大小(Gi)。建议最小为 30 Gi。
spec.config.storage.nodes使用 storage.type=LocalVolume 时的节点列表。可以选择一个或多个节点。
spec.config.storage.path使用 storage.type=LocalVolume 时的基础 LocalVolume 路径。默认值:/cpaas/monitoring。在 Alauda OS 上设置为 /var/cpaas/monitoring;请参阅 Alauda OS 上的 LocalVolume 存储路径。
spec.config.storage.storageClass使用 storage.type=StorageClass 时的 StorageClass 名称。
spec.config.storage.pvSelectorK使用 storage.type=PV 时的 PV 选择器键。
spec.config.storage.pvSelectorV使用 storage.type=PV 时的 PV 选择器值。
spec.config.replicas副本数;适用于 StorageClass 和 PV 类型。
spec.config.agentOnly是否仅安装 vmagent,而不是完整的 VictoriaMetrics 组件集。
spec.config.agentReplicas仅 Agent 模式启用时 vmagent 的副本数。
spec.config.crossClusterDependency.victoriametrics仅 Agent 模式启用时提供 VictoriaMetrics Center 的目标集群。
spec.config.components.nodeSelector可选。VictoriaMetrics 插件工作负载的插件级节点选择器规则。
spec.config.components.tolerations可选。VictoriaMetrics 插件工作负载的插件级容忍度规则。
spec.config.components.vmstorage.retentionvmstorage 的数据保留天数。
spec.config.components.vmagent.scrapeInterval抓取间隔(秒);适用于不含 interval 的 ServiceMonitor。
spec.config.components.vmagent.scrapeTimeout抓取超时时间(秒);必须小于 scrapeInterval。
spec.config.components.vmstorage.resourcesvmstorage 的资源设置。
spec.config.components.vmalert.resourcesvmalert 的资源设置。
spec.config.components.nodeExporter.portNode Exporter 端口(默认 9100)。
spec.config.components.nodeExporter.resourcesNode Exporter 的资源设置。
spec.config.components.alertmanager.resourcesAlertmanager 的资源设置。
spec.config.components.kubeStateExporter.resourcesKube State Exporter 的资源设置。
spec.config.components.prometheusAdapter.resourcesPrometheus Adapter 的资源设置(用于 HPA/自定义指标)。
spec.config.components.vmagent.resourcesvmagent 的资源设置。
spec.config.components.vminsert.resourcesvminsert 的资源设置。
spec.config.components.vmselect.resourcesvmselect 的资源设置。
spec.config.size监控规模:Small、Medium 或 Large。

验证安装

由于 ModuleInfo 名称会在创建时发生变化,请通过标签定位资源,以检查插件状态和版本:

kubectl get moduleinfo -l cpaas.io/module-name=victoriametrics
NAME                                             CLUSTER         MODULE            DISPLAY_NAME     STATUS    TARGET_VERSION   CURRENT_VERSION   NEW_VERSION
global-e671599464a5b1717732c5ba36079795          global          victoriametrics   victoriametrics  Running   v4.1.0           v4.1.0            v4.1.0

字段说明:

  • NAME:ModuleInfo 资源名称
  • CLUSTER:安装插件的集群
  • MODULE:插件名称
  • DISPLAY_NAME:插件显示名称
  • STATUS:安装状态;Running 表示已成功安装并运行
  • TARGET_VERSION:计划安装的版本
  • CURRENT_VERSION:安装前的版本
  • NEW_VERSION:可安装的最新版本

将 VictoriaMetrics 工作负载放置在基础设施节点上

如果希望 VictoriaMetrics 插件工作负载运行在专用基础设施节点上,请在安装或升级期间配置插件级调度规则,而不是在安装后修改生成的工作负载。

  • 在控制台中,使用 高级配置 设置 节点选择器 和 节点容忍度。
  • 在 YAML 中设置 spec.config.components.nodeSelector 和 spec.config.components.tolerations。

示例:

config:
  components:
    nodeSelector:
      - key: kubernetes.io/os
        value: linux
    tolerations:
      - effect: NoSchedule
        key: node-role.kubernetes.io/infra
        operator: Exists

在应用这些调度规则之前,请确保基础设施节点规划与存储放置相兼容。有关规划注意事项,请参阅 How To 中的 Monitoring 指南,包括 Planning Infra Nodes for Monitoring。

访问已安装的组件

安装完成后,可以通过以下地址访问组件(将 <> 替换为实际值):

组件访问地址
VictoriaMetrics UI<platform_access_address>/clusters/<cluster>/vmselect-ui/vmui/?#/metrics
INFO

如果启用了 仅安装 Agent,集群不会在本地部署 vmselect 组件,因此无法在该集群中访问 VictoriaMetrics UI 地址。