借助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编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |