当前位置: 首页 > news >正文

victoriametrics 部署

添加helm仓库

helm repo add vm https://victoriametrics.github.io/helm-charts/
helm repo update

搜索victoriametrics仓库

helm search repo vm/
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                                       
vm/victoria-logs-single         0.9.2           v1.14.0         Victoria Logs Single version - high-performance...
vm/victoria-metrics-agent       0.17.0          v1.113.0        Victoria Metrics Agent - collects metrics from ...
vm/victoria-metrics-alert       0.15.0          v1.113.0        Victoria Metrics Alert - executes a list of giv...
vm/victoria-metrics-anomaly     1.8.0           v1.20.0         Victoria Metrics Anomaly Detection - a service ...
vm/victoria-metrics-auth        0.10.0          v1.113.0        Victoria Metrics Auth - is a simple auth proxy ...
vm/victoria-metrics-cluster     0.19.0          v1.113.0        Victoria Metrics Cluster version - high-perform...
vm/victoria-metrics-common      0.0.41                          Victoria Metrics Common - contains shared templ...
vm/victoria-metrics-distributed 0.9.0           v1.113.0        A Helm chart for Running VMCluster on Multiple ...
vm/victoria-metrics-gateway     0.8.0           v1.113.0        Victoria Metrics Gateway - Auth & Rate-Limittin...
vm/victoria-metrics-k8s-stack   0.39.0          v1.113.0        Kubernetes monitoring on VictoriaMetrics stack....
vm/victoria-metrics-operator    0.43.0          v0.54.1         Victoria Metrics Operator                         
vm/victoria-metrics-single      0.15.0          v1.113.0        Victoria Metrics Single version - high-performa...

拉取victoria-metrics-operator的chart包

helm pull vm/victoria-metrics-operator

如果遇到如下问题,说明需要科学上网,下载victoria-metrics-operator-0.43.0.tgz压缩包

Error: Get "https://github.com/VictoriaMetrics/helm-charts/releases/download/victoria-metrics-operator-0.43.0/victoria-metrics-operator-0.43.0.tgz": read tcp 10.0.2.21:36530->20.205.243.166:443: read: connection reset by peer

安装victoria-metrics-operator

创建命名空间

kubectl create namespace vmtrics-monitor
tar -xvf victoria-metrics-operator-0.43.0.tgz
cd victoria-metrics-operator-0.43.0
helm install vmoperator . -f values.yaml -n vmtrics-monitor

如果已经可以科学上网可以直接使用如下命令:

helm install vmoperator vm/victoria-metrics-operator -f values.yaml -n vmtrics-monitor

安装成功提示

NOTES:
victoria-metrics-operator has been installed. Check its status by running:
  kubectl --namespace vmtrics-monitor get pods -l "app.kubernetes.io/instance=vmoperator"

Get more information on https://github.com/VictoriaMetrics/helm-charts/tree/master/charts/victoria-metrics-operator.
See "Getting started guide for VM Operator" on https://docs.victoriametrics.com/guides/getting-started-with-vm-operator

这个helm install vmoperator . -f values.yaml -n vmtrics-monitor执行后,需要等待一定的时间。检查victoria-metrics-operator是否启动成功

kubectl --namespace vmtrics-monitor get pods -l "app.kubernetes.io/instance=vmoperator"

大概会出现以下错误,是因为拉取不到镜像失败

NAME                                                    READY   STATUS             RESTARTS   AGE
vmoperator-victoria-metrics-operator-5b8dc96466-zcc2g   0/1     ImagePullBackOff   0          13m

通过以下地址搜索国内镜像

https://docker.aityp.com/

修改values.yaml文件

image:
  # -- Image registry
  registry: ""
  # -- Image repository
  repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/operator  #修改镜像仓库
  # -- Image tag
  # override Chart.AppVersion
  tag: "v0.53.0"  #修改镜像tag

再次参考安装情况

helm list --all-namespaces
kubectl get all -n vmtrics-monitor

显示结果

[root@mk8s-master op]# helm list --all-namespaces
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                                   APP VERSION
vmoperator      vmtrics-monitor 1               2025-03-14 17:02:58.383908049 +0800 CST deployed        victoria-metrics-operator-0.43.0        v0.54.1    
[root@mk8s-master op]# kubectl get all -n vmtrics-monitor 
NAME                                                        READY   STATUS    RESTARTS   AGE
pod/vmoperator-victoria-metrics-operator-684997574c-5sll5   1/1     Running   0          5m30s

NAME                                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)             AGE
service/vmoperator-victoria-metrics-operator   ClusterIP   10.106.48.186   <none>        8080/TCP,9443/TCP   5m30s

NAME                                                   READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/vmoperator-victoria-metrics-operator   1/1     1            1           5m30s

NAME                                                              DESIRED   CURRENT   READY   AGE
replicaset.apps/vmoperator-victoria-metrics-operator-684997574c   1         1         1       5m30s

安装victoria-metrics相关组件

创建文件vmcluster.yaml

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMCluster
metadata:
  name: demo
  namespace: vmtrics-monitor
spec:
  retentionPeriod: "1"
  replicationFactor: 2
  vmstorage:
    image:
      repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmstorage
      tag: v1.110.0-cluster
      pullPolicy: Always
    replicaCount: 1
    storageDataPath: "/vm-data"
    storage:
      volumeClaimTemplate:
        spec:
          accessModes:
            - ReadWriteOnce
          storageClassName: nfs-sc
          resources:
            requests:
              storage: "1Gi"
    resources:
      limits:
        cpu: "1"
        memory: "1Gi"
  vmselect:
    image:
      repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmselect
      tag: v1.110.0-cluster
      pullPolicy: Always
    replicaCount: 1
    cacheMountPath: "/select-cache"
    storage:
      volumeClaimTemplate:
        spec:
          accessModes:
            - ReadWriteOnce
          storageClassName: nfs-sc
          resources:
            requests:
              storage: "1Gi"
    resources:
      limits:
        cpu: "1"
        memory: "1Gi"
      requests:
        cpu: "0.5"
        memory: "500Mi"
  vminsert:
    image:
      repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vminsert
      tag: v1.110.0-cluster
      pullPolicy: Always
    replicaCount: 1
    resources:
      limits:
        cpu: "1"
        memory: "1Gi"
      requests:
        cpu: "0.5"
        memory: "500Mi"

部署组件

kubectl apply -f vmcluster.yaml

查看组件部署结果

kubectl get pods -n vmtrics-monitor -l "app.kubernetes.io/instance=my-vm"

Scraping

安装VMAgent

创建vmagent.yaml

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAgent
metadata:
  name: demo
  namespace: vmtrics-monitor
spec:
  image:
    repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmagent
    tag: v1.110.0
    pullPolicy: Always
  selectAllByDefault: true
  remoteWrite:
    - url: "http://vminsert-demo.vmtrics-monitor.svc:8480/insert/0/prometheus/api/v1/write"

部署vmagent.yaml

kubectl apply -f vmagent.yaml 

查看是否启动

kubectl get pods -n vmtrics-monitor -l "app.kubernetes.io/instance=demo" -l "app.kubernetes.io/name=vmagent"
kubectl port-forward svc/vmagent-demo 8429:8429 -n vmtrics-monitor

vmagent-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: vmagent-demo-nodeport
  namespace: vm
spec:
  ports:
  - name: http
    port: 8429
    protocol: TCP
    targetPort: 8429
  selector:
    app.kubernetes.io/component: monitoring
    app.kubernetes.io/instance: demo
    app.kubernetes.io/name: vmagent
  type: NodePort

安装VMServiceScrape

创建vmservicescrape.yaml

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMServiceScrape
metadata:
  name: vmoperator-demo
  namespace: vmtrics-monitor
spec:
  selector:
    matchLabels:
      app.kubernetes.io/instance: vmoperator
      app.kubernetes.io/name: victoria-metrics-operator
  namespaceSelector:
    matchNames:
      - vmtrics-monitor
  endpoints:
  - port: http

部署vmservicescrape.yaml

kubectl apply -f vmservicescrape.yaml

查看结果

kubectl get VMServiceScrape -n vmtrics-monitor 

Access

VMAuth

创建vmauth.yaml

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMAuth
metadata:
  name: demo
  namespace: vmtrics-monitor
  labels:
    app: vmauth-demo
spec:
  image:
    repository: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/victoriametrics/vmauth
    tag: v1.108.1
    pullPolicy: Always
  selectAllByDefault: true
  userNamespaceSelector: {}
  userSelector: {}

部署

kubectl apply -f vmauth.yaml

查看

kubectl get svc -n vmtrics-monitor | grep vmauth-demo

转发

kubectl port-forward svc/vmauth-demo 8427:8427 -n vmtrics-monitor

vmauth-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: vmauth-demo-nodeport
  namespace: vm
spec:
  ports:
  - name: http
    port: 8427
    protocol: TCP
    targetPort: 8427
  selector:
    app.kubernetes.io/component: monitoring
    app.kubernetes.io/instance: demo
    app.kubernetes.io/name: vmauth
  type: NodePort

VMUser

创建vmuser.yaml

apiVersion: operator.victoriametrics.com/v1beta1
kind: VMUser
metadata:
  name: demo
  namespace: vmtrics-monitor
spec:
  name: demo
  username: demo
  generatePassword: true
  targetRefs:
    # vmui + vmselect
    - crd:
        kind: VMCluster/vmselect
        name: demo
        namespace: vmtrics-monitor
      target_path_suffix: "/select/0"
      paths:
        - "/vmui"
        - "/vmui/.*"
        - "/prometheus/api/v1/query"
        - "/prometheus/api/v1/query_range"
        - "/prometheus/api/v1/series"
        - "/prometheus/api/v1/status/.*"
        - "/prometheus/api/v1/label/"
        - "/prometheus/api/v1/label/[^/]+/values"

部署

kubectl apply -f vmauth.yaml 

查看是否部署成功

kubectl get secret -n vmtrics-monitor -l "app.kubernetes.io/instance=demo" -l "app.kubernetes.io/name=vmuser"

查看密码

kubectl get secret -n vm vmuser-demo -o jsonpath="{.data.password}" | base64 --decode
参考:
https://docs.victoriametrics.com/operator/quick-start/
https://docs.victoriametrics.com/operator/resources/vmcluster/index.html

相关文章:

  • 【技术】外设驱动库开发笔记55:MAX31865热电阻变送器驱动
  • Pydantic Mixin:构建可组合的验证系统体系
  • Zstd(Zstandard)压缩算法
  • 数据库设计-笔记2
  • DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加导出数据功能示例9,TableView15_09带排序的导出表格示例
  • 多层感知机与反向传播
  • Qt调用Miniconda的python方法
  • 桥接模式 (Bridge Pattern)
  • Centos6配置yum源
  • 国企笔试之2025年中广核校招SHL测评笔试内容详解
  • 一文了解 threejs 中.bin 文件与 .gltf 文件 和 .glb 文件三者之间的关系
  • 汽车芯片成本控制:挑战、策略与未来趋势
  • 数学建模中的最大最小值模型详解
  • vue3:十一、主页面布局(优化页面跳转方式)
  • 网络层之IP协议
  • MySQL拒绝访问
  • 使用Docker部署MySQL8.0.29
  • SpringDoc和Swagger使用
  • LeetCode 热题 100_划分字母区间(80_763_中等_C++)(贪心算法(求并集))
  • 点亮STM32最小系统板LED灯
  • 王受文已任中华全国工商业联合会领导班子成员
  • 央行就《关于规范供应链金融业务引导供应链信息服务机构更好服务中小企业融资有关事宜的通知》答问
  • 城市更新·简报│中央财政支持城市更新,倾斜超大特大城市
  • 国台办:台商台企有信心与国家一起打赢这场关税战
  • 南部战区位南海海域进行例行巡航
  • 中国建设银行浙江省分行原党委书记、行长高强接受审查调查