You need to enable JavaScript to run this app.
导航

多云集群观测实践

最近更新时间2024.04.26 15:29:02

首次发布时间2024.04.26 15:29:02

通过分布式云原生平台纳管三方云或 IDC 容器集群,实现云上统一的观测数据收集、展示与告警。本文为您介绍多云集群观测实践的详细使用方法。

前提条件

  • 已经通过分布式云原生平台注册外部集群,例如:阿里云 ACK 集群。详细介绍参见:快速注册容器集群
  • 确保注册的外部集群已经开启公网访问,能够通过公网收集观测数据。
  • 已经搭建 Grafana 并完成初始化工作,例如:配置端口映射。

操作步骤

步骤一:创建公网 VMP 工作区

创建一个开启公网访问的 VMP 工作区,用于采集多云集群观测数据。

  1. 登录 VMP 服务控制台
  2. 在顶部导航栏,选择目标地域。
  3. 单击左侧导航栏的 工作区,进入工作区列表页面。
  4. 单击 创建工作区,配置工作区相关信息,完成后单击 立即创建,等待系统完成工作区创建即可。

alt

本场景涉及的关键配置说明如下,其他按需配置即可,详细操作步骤和配置项说明参见:创建工作区

配置项说明

Basic Auth

配置 Basic Auth 认证功能,本场景需要开启此配置

  • 当关闭 Basic Auth 认证功能时,工作区仅支持通过 火山引擎 AK/SK 进行认证鉴权,实现对数据的写入和查询。

  • 当开启 Basic Auth 认证功能时,工作区支持通过 用户名/密码火山引擎 AK/SK 进行认证鉴权,实现对数据的写入和查询。

说明

开启 Basic Auth 时,需要自定义配置用户名及密码,用于数据写入与查询。

公网访问

公网访问开关,本场景需要开启此配置。开启后,支持通过公网访问工作区,建议优先使用公钥认证。

说明

若缺少 VMP 工作区的公网访问配额,请联系官方技术支持申请配额。

工作区类型配置工作区的类型,包括:标准版 和 企业版(独占)。本场景选择标准版,因为公网采集方式目前仅支持选择标准版工作区。

步骤二:注册集群安装监控组件

前往分布式云原生平台,为注册集群安装 prometheus-agent 组件,用于采集 Kubernetes 集群监控指标数据到托管 Prometheus 服务。

  1. 登录 分布式云原生控制台,在左侧导航栏选择 容器集群
  2. 单击目标集群名称,在集群管理页面的左侧导航栏选择 运维管理 > 组件管理
  3. 单击 prometheus-agent 组件卡片右上角...中的 安装,根据引导依次配置组件相关信息,完成后单击 确定,等待组件安装完成。

alt

本场景涉及的关键配置说明如下,其他按需配置即可,详细操作步骤和配置项说明参见:prometheus-agent 组件配置

配置项说明
prometheus 工作区开启 通过公网采集监控数据,并选择步骤一中创建的 VMP 工作区。
认证方式选择 Basic Auth 并填写步骤一中配置的用户名及密码。

步骤三:查看注册集群内置监控面板

登录 分布式云原生控制台,前往 Prometheus 监控模块查看集群监控、节点监控、容器组监控、容器监控等内置面板。更多详细介绍参见:Prometheus 监控

alt

步骤四:通过 Grafana 查看集群监控

通过 Basic Auth 认证在 Grafana 中添加数据源,并通过 Query URL 地址将采集到的数据接入到 Grafana 平台。

  1. 登录 VMP 服务控制台,前往目标工作区详情页面,获取 Query URL 地址,用于将采集到的数据接入到 Grafana 或第三方平台。更多详细介绍参见:获取 Remote Write 和 Query 地址

alt

  1. 本地环境(Linux/Mac)中打开浏览器,在地址栏中输入 localhost:3000,进入 Grafana 登录界面,并使用默认用户名admin和密码admin登录。

说明

确保 Grafana 已经配置端口映射,否则无法正常登录。若漏配,可执行kubectl port-forward service/grafana 3000:3000 -n volcano-metrics命令进行配置。

  1. 在左侧导航栏中,选择 Connection > Data Sources,然后单击 Add data source 并选择 Prometheus,创建新的数据源。

alt

  1. 在 HTTP 配置项中,URL 字段处,粘贴工作区的 Query URL 地址。

alt

  1. 在 Auth 配置项中,开启 Basic auth 认证,并在 Basic Auth Details 配置项中,配置工作区认证使用的用户名和密码。

alt

单击页面底部的 Save & Test,系统显示 Successfully queried the Prometheus API,表示工作区已经正确接入 Grafana。

alt

  1. 在 Grafana 左侧导航栏中,选择 Dashboards,单击 New,即可创建或导入观测大盘。

alt

本场景通过导入方式创建 Grafana 监控大盘,配置完成后在 Grafana 左侧导航栏选择 Dashboards,单击进入已经创建的大盘,即可查看配置的监控大盘。Json 示例和效果图如下:

监控面板配置示例效果图
集群总览
Cluster Overview-1699604459449.json
65.77KB
节点总览
Node Overview-1699611867911.json
84.21KB
节点 TOP N
Node TopN-1699841304866.json
20.87KB
工作负载总览
Workload-1699842613054.json
33.90KB
命名空间总览
Namespace Overview-1699605249074.json
39.96KB
Deployment 详情
Kubernetes Deployment-1699843880215.json
82.34KB

步骤五:配置 GPU 指标采集和指标面板

  1. 在注册集群中安装 gpu exporter、rdma exporter,用于统一收集指标到 VMP 中。

说明

建议使用各云厂商提供的 GPU 插件进行安装。

  1. 执行以下命令,创建 serviceMonitor。
kubectl apply -f https://vmp-release-cn-beijing.tos-cn-beijing.volces.com/manifests/crds/promopeartor-crd-servicemonitors.yaml
  1. 在工作负载中添加metric-labels-allowlist配置,为 kube-state-metric 增加 AI 套件指标的白名单权限。

alt

containers:
      - args:
        - --pod=$(POD_NAME)
        - --pod-namespace=$(POD_NAMESPACE)
        - --metric-labels-allowlist=pods=[ai.vke.volcengine.com/task,ai.vke.volcengine.com/job,ai.vke.volcengine.com/team,ai.vke.volcengine.com/user]
  1. 执行kubectl apply -f gpu_metrics_all_in_one.yaml命令,通过守护进程方式,为容器集群安装 GPU 监控组件。示例 Yaml 如下:
gpu_metrics_all_in_one.yaml
12.14KB

alt

说明

可根据不同云厂商 GPU 节点标签配置,修改 Yaml 中的matchExpressions参数的 key 和 operator,调整相应组件的调度策略。

  1. 将以下模板导入 Grafana Dashboard,即可查看 GPU 监控大盘。
监控面板配置示例效果图
集群 AI 监控大盘
集群 AI 监控大盘-1700533521138.json
56.48KB
节点 GPU 大盘
节点 GPU 大盘-1700533501600.json
49.91KB
训练任务大盘
训练任务大盘(node-exporter)-1700533511002.json
74.77KB