加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 云计算 > 正文

借助Victoria Metrics Operator 管理 VM 集群

发布时间:2022-08-04 16:24:39 所属栏目:云计算 来源:互联网
导读:Operator 我们知道是 Kubernetes 的一大杀器,可以大大简化应用的安装、配置和管理,同样对于 VictoriaMetrics 官方也开发了一个对应的 Operator 来进行管理 - vm-operator,它的设计和实现灵感来自 prometheus-operator,它是管理应用程序监控配置的绝佳工
  Operator 我们知道是 Kubernetes 的一大杀器,可以大大简化应用的安装、配置和管理,同样对于 VictoriaMetrics 官方也开发了一个对应的 Operator 来进行管理 - vm-operator,它的设计和实现灵感来自 prometheus-operator,它是管理应用程序监控配置的绝佳工具。
 
  vm-operator 定义了如下一些 CRD:
 
  VMCluster:定义 VM 集群。
  VMAgent:定义 vmagent 实例。
  VMServiceScrape:定义从 Service 支持的 Pod 中抓取指标配置。
  VMPodScrape:定义从 Pod 中抓取指标配置。
  VMRule:定义报警和记录规则。
  VMProbe:使用 blackbox exporter 为目标定义探测配置。
  此外该 Operator 默认还可以识别 prometheus-operator 中的 ServiceMonitor、PodMonitor、PrometheusRule 和 Probe 对象,还允许你使用 CRD 对象来管理 Kubernetes 集群内的 VM 应用。
 
  安装
  vm-operator 提供了 Helm Charts 包,所以可以使用 Helm 来进行一键安装:
 
  复制
  ☸ ➜ helm repo add vm https://victoriametrics.github.io/helm-charts/
  ☸ ➜ helm repo update
  1.
  2.
  根据自己的需要定制 values 值,默认的 values.yaml 可以通过下面的命令获得:
 
  复制
  ☸ ➜ helm show values vm/victoria-metrics-operator > values.yaml
  1.
  我们这里只对下面的内容做了修改:
 
  复制
  # values.yaml
  rbac:
    create: true
    pspEnabled: false # 不创建psp
  operator:
    # -- 默认情况下,vm-operator会转换prometheus-operator对象
    disable_prometheus_converter: false
    # -- 默认情况下,vm-operator会为它的对象创建psp
    psp_auto_creation_enabled: false
    # -- 启用转换后的 prometheus-operator 对象的所有权引用,如果删除 prometheus 对象,它将删除相应的 victoria-metrics 对象。
    enable_converter_ownership: false
    # -- Enables custom config-reloader, bundled with operator.
    # It should reduce  vmagent and vmauth config sync-time and make it predictable.
    useCustomConfigReloader: true
  # -- 是否开启资源校验的准入控制器(生产环境建议开启)
  # admissionWebhooks:
  #   # -- Enables validation webhook.
  #   enabled: false
  #   # -- What to do in case, when operator not available to validate request.
   然后使用下面的命令即可一键安装 vm-operator:
 
  复制
  ☸ ➜ helm upgrade --install victoria-metrics-operator vm/victoria-metrics-operator -f values.yaml -n vm-operator --create-namespace
  NAME: victoria-metrics-operator
  LAST DEPLOYED: Tue May 17 15:51:40 2022
  NAMESPACE: vm-operator
  STATUS: deployed
  REVISION: 1
  TEST SUITE: None
  NOTES:
 
  复制
  ☸ ➜ helm ls -n vm-operator
  NAME                            NAMESPACE       REVISION        UPDATED                                 STATUS       CHART                           APP VERSION
  victoria-metrics-operator       vm-operator     1               2022-05-17 15:53:14.60667 +0800 CST     deployed     victoria-metrics-operator-0.9.0 0.24.0
  ☸ ➜ kubectl --namespace vm-operator get pods -l "app.kubernetes.io/instance=victoria-metrics-operator"
  NAME                                        READY   STATUS    RESTARTS   AGE
  victoria-metrics-operator-d467cf69c-glh6v   1/1     Running   0          2m58s
  1.
  2.
  3.
  4.
  5.
  6.
  部署 VM 集群
  Operator 安装完成后会包含如下所示的一些 CRD:
 
  复制
   vmalerts.operator.victoriametrics.com                2022-05-17T07:51:42Z
  vmauths.operator.victoriametrics.com                 2022-05-17T07:51:42Z
  vmclusters.operator.victoriametrics.com              2022-05-17T07:51:42Z
  vmnodescrapes.operator.victoriametrics.com           2022-05-17T07:51:42Z
  vmpodscrapes.operator.victoriametrics.com            2022-05-17T07:51:42Z
  vmprobes.operator.victoriametrics.com                2022-05-17T07:51:42Z
  vmrules.operator.victoriametrics.com                 2022-05-17T07:51:42Z
  vmservicescrapes.operator.victoriametrics.com        2022-05-17T07:51:42Z
  vmsingles.operator.victoriametrics.com               2022-05-17T07:51:42Z
  vmstaticscrapes.operator.victoriametrics.com         2022-05-17T07:51:42Z
  vmusers.operator.victoriametrics.com                 2022-05-17T07:51:42Z
 
  比如现在我们要来部署 VM,如果只是想要单节点模式则可以直接使用 VMSingle 对象,如果要部署一套 VM 的集群则可以直接使用 VMCluster 来定义一个对象即可,完全不需要我们去手动创建各个组件,Operator 会根据我们的定义去帮我们拉起一套集群起来。
 
  比如这里我们定义一个如下所示的 VMCluster 对象:
 
  复制
  # vmcluster-demo.yaml
  apiVersion: operator.victoriametrics.com/v1beta1
  kind: VMCluster
  metadata:
    name: vmcluster-demo
                 storage: 10G
            storageClassName: nfs-client
      storageDataPath: /vm-data
    vmselect:
      replicaCount: 2
      cacheMountPath: /cache
      storage:
        volumeClaimTemplate:
          spec:
            storageClassName: nfs-client
            accessModes:
              - ReadWriteOnce
            resources:
              requests:
                storage: 1G
    vminsert:
      replicaCount: 2

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读