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

部署 VM Agent

最近更新时间2023.12.25 10:37:58

首次发布时间2023.02.28 17:57:43

采用高可用采集方案,您需要首先在目标集群中部署 VM Agent 采集器。本文为您详细介绍 VM Agent 采集器的基本概念、部署步骤和参数配置。

注意

  • VM Agent 为 VictoriaMetrics 原生版本,暂时不支持火山引擎 AK/SK 鉴权方式。
  • 如果您使用的是火山引擎容器服务(VKE)集群,建议您直接在集群中使用 组件管理 功能安装采集器和组件,详情请参见 容器服务接入

概述

高可用性说明

VM Agent 采集器自带 Operator,能够实现采集器和 kube-state-metrics 组件的分片和数据采集,性能和可用性较高。
alt

组件说明

当您在集群中安装 VM Agent 采集器时,会同时安装 vm-operator、kube-state-metrics 和 node-exporter 组件。每个组件的名称、类型和作用说明如下表所示。

组件名称负载类型命名空间说明
vmagentStatefulSetvolcano-metrics采集集群内 kubelet、kubelet-cadvisor 、kube-state-metrics 、node-exporter 暴露的指标。
vm-operatorDeploymentvolcano-metricsVM Agent 控制组件。
kube-state-metricsStatefulSetvolcano-metrics提供 Kubernetes 资源信息指标数据。
node-exporterDaemonSetvolcano-metrics提供节点资源信息指标数据。

在此场景下,VM Agent 充当 VMP 服务的数据采集组件,直接抓取监控对象的监控数据,并将监控数据发送至 VMP 服务进行保存。默认情况下,监控数据包括: node-exporter、 kubelet metrics/cadvisor、kubelet metrics、kube-state-metrics 和 agent 自身。

默认规格

VM Agent 采集器中涉及的组件,默认的实例规格如下表所示。

组件名称默认 CPU 请求值默认内存请求值默认 CPU 上限值默认内存上限值
vmagent2 Core2 GiB4 Core4 GiB
kube-state-metrics0.2 Core512 MiB0.8 Core2 GiB
node-exporter0.05 Core128 MiB0.1 Core256 MiB

前提条件

  • 已创建自建 Kubernetes 集群,并通过 云企业网 等方式打通私有网络(VPC)与云下数据中心(IDC)。
  • 已创建 VMP 工作区,详情请参见 创建工作区
  • 使用脚本安装 VM Agent 时,需要使用本地环境(Linux/Mac)中的 wget、echo、curl 和 sed 工具,请保证您的系统中已经正确安装上述命令行工具。

注意

VM Agent 采集器与容器服务集群中的 promethues-agent 组件冲突,不能同时使用,部署 VM Agent 前,请确认您的集群中没有安装 promethues-agent 组件。详情请参见 容器服务接入

部署实例(默认配置)

您可以使用部署脚本,快速部署 VM Agent 采集器。当采用缺省配置部署时,操作步骤如下:

  1. 在本地环境中下载脚本,详情请参见 获取脚本
  2. 使用 kubectl 正确连接 Kubernetes 集群。
  3. 执行以下命令,部署 VM Agent 采集器。
./install.sh \
--agent vmagent \ # 采集器类型。
--region cn-beijing \ # VM 工作区所在地域。
--remote-write-url http://write.prometheus-cn-beijing.ivolces.com/workspaces/b762e1a3-37***/api/v1/write \ # VMP 工作区的 Remote Write 地址,并添加 api/vi/write 后缀。
--namespace volcano-metrics \ # 部署采集器的命名空间。
--basic-auth-username username-demo \ # VMP 工作区 Basic Auth 认证模式下的认证用户名。
--basic-auth-password password-demo  # VMP 工作区 Basic Auth 认证模式下的认证密码。

说明

上述配置中,请根据您的实际情况,修改 regionremote-write-urlnamespacebasic-auth-usernamebasic-auth-password 参数。

部署实例(自定义配置)

如果采集器的默认规格无法满足您的需求,支持在部署前,使用部署脚本中的预定义参数,修改实例配置(例如:采集器的 CPU 和内存容量)。操作步骤如下:

  1. 在本地环境中下载脚本,详情请参见 获取脚本
  2. 使用 kubectl 正确连接 Kubernetes 集群。
  3. 执行以下命令,修改配置项并部署 VM Agent 采集器。
./install.sh \
--region cn-beijing \ # VMP 工作区所在地域。
--remote-write-url http://write.prometheus-cn-beijing.ivolces.com/workspaces/b762e1a3-37***/api/v1/write \ # VMP 工作区的 URL 地址,并添加 api/v1/write 后缀。
--basic-auth-username username-demo \ # VMP 工作区 Basic Auth 认证模式下的认证用户名。
--basic-auth-password password-demo \ # VMP 工作区 Basic Auth 认证模式下的认证密码。
--agent vmagent \ # 采集器类型。
--namespace volcano-metrics \ # 部署采集器的命名空间。
--agent-scrape-interval 15s \ # 采集器的数据采集间隔。
--vmagent-replicas 1 \ # VM Agent 采集器的副本数。
--vmagent-shards 2 \ # VM Agent 采集器的分片数。
--vmagent-resources-requests-cpu 100m \ # VM Agent 采集器的 CPU 请求值。
--vmagent-resources-requests-memory 200Mi \ # VM Agent 采集器的内存请求值。
--vmagent-resources-limits-cpu 100m \ # VM Agent 采集器的 CPU 上限值。
--vmagent-resources-limits-memory 200Mi \ # VM Agent 采集器的内存上限值。
--kube-state-metrics-shards 2 \ # kube-state-metrics 组件的分片数。
--kube-state-metrics-resources-requests-cpu 50m \ # kube-state-metrics 的 CPU 请求值。
--kube-state-metrics-resources-requests-memory 100Mi \ # kube-state-metrics 的内存请求值。
--kube-state-metrics-resources-limits-cpu 50m \ # kube-state-metrics 的 CPU 上限值。
--kube-state-metrics-resources-limits-memory 100Mi # kube-state-metrics 的内存上限值。

部署实例(自定义参数)

如果部署脚本中预定义的参数无法满足您的需求,您也可以自定义相关参数,操作步骤如下:

  1. 在本地环境中下载脚本,详情请参见 获取脚本
  2. 使用 kubectl 正确连接 Kubernetes 集群。
  3. 执行以下命令,配置您的自定义参数,并输出 install.yaml 配置文件。
./install.sh \
--region cn-beijing \
--remote-write-url http://write.prometheus-cn-beijing.ivolces.com/workspaces/b762e1a3-37***/api/v1/write \
--basic-auth-username username-demo \
--basic-auth-password password-demo \
--agent vmagent \
--rendering-only > install.yaml
  1. 进入 install.yaml 文件,配置相关参数并保存。
vim install.yaml
  1. 执行如下命令,部署相关组件。
kubectl apply -f install.yaml

检查结果

VM Agent 正确部署后,登录集群,在无状态负载列表中,可以查看到 vm-operator 工作负载。在有状态负载列表中,可以查看到 VM Agent 和 kube-state-metrics 工作负载。

说明

为了保证采集器能够正常采集数据,除需要保证采集器正常工作外,还需要保证采集对象的 Metrics API 或 Exporter 正常。相关的配置和部署,需要您自己完成并保证正确。

后续操作

采集器部署完成后,除默认的采集规则外,您可以使用 ServiceMonitor 或 PodMonitor 配置面向自定义目标的采集规则。详情请参见 服务发现

使用帮助

您可以通过安装脚本的 --help 参数,查看脚本中所有的预定义字段和含义。

./install.sh install --help

安装脚本中不同字段的含义和示例如下。

./install.sh install --help
install agent and system metrics exporter. if it is VM Agent, vmoperator will also be installed

Usage: install.sh install [flag...]

Flag:
  {{flag}} {{current val if exist}}
  --agent vmagent
  --remote-write-url http://write.prometheus-cn-beijing.com/workspace/b762e1a3-37***/api/v1/write
  --basic-auth-username username-demo
  --basic-auth-password password-demo
  --access-key AKLTMxxx
  --secret-key Tkdabxxx
  --region cn-beijing
  --exec-script-env local
  --rendering-only
  --namespace volcano-metrics
  --topology-key-zone topology.kubernetes.io/zone
  --topology-key-node kubernetes.io/hostname
  --storage-class 
  --kube-state-metrics-shards 1
  --kube-state-metrics-resources-requests-cpu 100m
  --kube-state-metrics-resources-requests-memory 250Mi
  --kube-state-metrics-resources-limits-cpu 500m
  --kube-state-metrics-resources-limits-memory 1Gi
  --agent-scrape-interval 15s
  --vmpagent-name vmpagent
  --vmpagent-replicas 1
  --vmpagent-pvc-capacity
  --vmpagent-resources-requests-cpu 500m
  --vmpagent-resources-requests-memory 1Gi
  --vmpagent-resources-limits-cpu 2
  --vmpagent-resources-limits-memory 4Gi
  --vmagent-replicas 1
  --vmagent-shards 2
  --vmagent-pvc-capacity
  --vmagent-resources-requests-cpu 200m
  --vmagent-resources-requests-memory 400Mi
  --vmagent-resources-limits-cpu 1
  --vmagent-resources-limits-memory 2Gi
  --disable-cadvisor
  --cadvisor-only
  --disable-install-node-exporter
参数说明

--agent

选择部署的采集器类型,包括:vmpagent 和 vmagent。

说明

不同类型采集器的详细介绍,请参见 采集器概述

--remote-write-url

VMP 工作区的 Remote Write 地址,详情请参见 获取 Remote Write 和 Query 地址

注意

获取 Remote Write 地址后,您需要在其后添加api/v1/write后缀。

--basic-auth-usernameVMP 工作区 Basic Auth 认证模式下的认证用户名。
--basic-auth-passwordVMP 工作区 Basic Auth 认证模式下的认证密码。
--access-keyVMP 工作区 AK/SK 认证模式下使用的 AccessKey ID。AK/SK 认证模式仅 VMP Agent 采集器支持。
--secret-keyVMP 工作区 AK/SK 认证模式下使用的 AccessKey Secret。AK/SK 认证模式仅 VMP Agent 采集器支持。
--region部署采集器集群的地域,例如:cn-beijing。详情请参见 地域和可用区

--exec-script-env

部署脚本执行环境,包括:

  • local: 本地环境。表示您在本地环境中执行该脚本。
  • public-cloud-vpc:VPC 环境。表示您在 VPC 环境中执行该脚本。
--rendering-only仅查看 VM Agent、vm-operator 等组件的安装清单,不实际安装。
--namespace部署采集器的命名空间,如未配置该参数,默认部署在 volcano-metrics 命名空间。
--storage-classPVC 存储类型。
--kube-state-metrics-shardskube-state-metrics 组件的分片数。
--kube-state-metrics-resources-requests-cpukube-state-metrics 的 CPU 请求值,整数形式,单位为 m,例如:100m 表示 CPU 请求值为 100 毫核。
--kube-state-metrics-resources-requests-memorykube-state-metrics 的内存请求值,整数形式,单位为 Mi ,例如:200Mi 表示内存请求值为 200MB。
--kube-state-metrics-resources-limits-cpukube-state-metrics 的 CPU 上限值,整数形式,单位为 m,例如:100m 表示 CPU 上限值为 100 毫核。
--kube-state-metrics-resources-limits-memorykube-state-metrics 的内存上限值,整数形式,单位为 Mi ,例如:200Mi 表示内存上限值为 200MB。
--agent-scrape-interval采集器的数据采集间隔,整数形式,单位为 s,例如:15s。
--vmpagent-nameVMP Agent 采集器的名称。
--vmpagent-replicasVMP Agent 采集器的副本数。
--vmpagent-pvc-capacityVMP Agent 采集器的存储能力。
--vmpagent-resources-requests-cpuVMP Agent 采集器的 CPU 请求值,整数形式,单位为 m,例如:100m 表示 CPU 请求值为 100 毫核。
--vmpagent-resources-requests-memoryVMP Agent 采集器的内存请求值,整数形式,单位为 Mi ,例如:200Mi 表示内存请求值为 200MB。
--vmpagent-resources-limits-cpuVMP Agent 采集器的 CPU 上限值,整数形式,单位为 m,例如:100m 表示 CPU 上限值为 100 毫核。
--vmpagent-resources-limits-memoryVMP Agent 采集器的内存上限值,整数形式,单位为 Mi ,例如:200Mi 表示内存上限值为 200MB。
--vmagent-replicasVM Agent 采集器的副本数。
--vmagent-shardsVM Agent 采集器的分片数。
--vmagent-pvc-capacityVM Agent 采集器的存储容量。
--vmagent-resources-requests-cpuVM Agent 采集器的 CPU 请求值,整数形式,单位为 m,例如:100m 表示 CPU 请求值为 100 毫核。
--vmagent-resources-requests-memoryVM Agent 采集器的内存请求值,整数形式,单位为 Mi ,例如:200Mi 表示内存请求值为 200MB。
--vmagent-resources-limits-cpuVM Agent 采集器的 CPU 上限值,整数形式,单位为 m,例如:100m 表示 CPU 上限值为 100 毫核。
--vmagent-resources-limits-memoryVM Agent 采集器的内存上限值,整数形式,单位为 Mi ,例如:200Mi 表示内存上限值为 200MB。
--disable-cadvisor禁用 VMP Agent 采集器对 cadvisor 的采集规则。
--cadvisor-only仅启用 VMP Agent 采集器对 cadvisor 采集规则。
--disable-install-node-exporter禁用 VMP Agent 采集器对 node-exporter 的采集规则。