Mercurial > code > home > repos > victoriametrics
changeset 53:e7318cbee0bc
a barely-working cluster/services setup that scrapes everything and serves vmui (but you have to edit the Server URL cookie)
author | drewp@bigasterisk.com |
---|---|
date | Wed, 24 Apr 2024 11:38:13 -0700 |
parents | 8199713c9294 |
children | 21185db8a52e |
files | next/ingress.yaml next/skaffold.yaml next/vmagent.yaml next/vminsert.yaml next/vmselect.yaml next/vmstorage.yaml next/vmui.yaml next/volumes.yaml |
diffstat | 8 files changed, 306 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/ingress.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,26 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: next-victoriametrics + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + ingress.pomerium.io/allow_public_unauthenticated_access: "false" + ingress.pomerium.io/pass_identity_headers: "true" + ingress.pomerium.io/preserve_host_header: "true" + ingress.pomerium.io/policy: | + allow: + or: + - { email: { is: "drewpca@gmail.com" }} + - { email: { is: "kelsimp@gmail.com" }} +spec: + ingressClassName: pomerium + rules: + - host: "bigasterisk.com" + http: + paths: + - pathType: Prefix + path: /m/next/vmselect/ + backend: { service: { name: next-victoriametrics-vmselect, port: { number: 80 } } } + tls: + - hosts: [bigasterisk.com] + secretName: bigasterisk.com-tls
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/skaffold.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,14 @@ +apiVersion: skaffold/v3 +kind: Config +metadata: + name: victoriametrics +manifests: + rawYaml: + - volumes.yaml + - vmagent.yaml + - vminsert.yaml + - vmstorage.yaml + - vmselect.yaml + - ingress.yaml +deploy: + kubectl: {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/vmagent.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,49 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: next-victoriametrics-vmagent +spec: + replicas: 1 + strategy: { type: Recreate } + selector: { matchLabels: { app: next-victoriametrics-vmagent } } + template: + metadata: + labels: + app: next-victoriametrics-vmagent + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: "/m/metrics" + prometheus.io/port: "80" + spec: + volumes: + - name: config + configMap: { name: victoriametrics-config } + serviceAccountName: victoriametrics + containers: + - name: vmagent + # https://hub.docker.com/r/victoriametrics/ + image: docker.io/victoriametrics/vmagent:v1.100.1 + args: + - -http.pathPrefix=/m/next/vmagent/ + - -loggerTimezone=America/Los_Angeles + - -promscrape.config=/local/config/scrape_main + - -promscrape.configCheckInterval=5s + - -sortLabels + - -remoteWrite.url=http://next-victoriametrics-vminsert/m/next/vminsert/insert/0/prometheus/api/v1/write + - -remoteWrite.showURL + ports: + - containerPort: 8429 + volumeMounts: + - { name: config, mountPath: "/local/config" } + +--- +apiVersion: v1 +kind: Service +metadata: + name: next-victoriametrics-vmagent +spec: + ports: + - port: 80 + targetPort: 8429 + selector: + app: next-victoriametrics-vmagent
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/vminsert.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,41 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: next-victoriametrics-vminsert +spec: + replicas: 1 + strategy: { type: Recreate } + selector: { matchLabels: { app: next-victoriametrics-vminsert } } + template: + metadata: + labels: + app: next-victoriametrics-vminsert + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: "/m/metrics" + prometheus.io/port: "80" + spec: + serviceAccountName: victoriametrics + containers: + - name: vminsert + # https://hub.docker.com/r/victoriametrics/victoria-metrics/tags also check vmalert.yaml + image: docker.io/victoriametrics/vminsert:v1.100.1-cluster + args: + - -http.pathPrefix=/m/next/vminsert/ + - -loggerTimezone=America/Los_Angeles + # - -storageNode=http://next-victoriametrics-vmstorage/m/vmstorage/api/v1/write + - -storageNode=next-victoriametrics-vmstorage-write + ports: + - containerPort: 8480 + +--- +apiVersion: v1 +kind: Service +metadata: + name: next-victoriametrics-vminsert +spec: + ports: + - port: 80 + targetPort: 8480 + selector: + app: next-victoriametrics-vminsert
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/vmselect.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,42 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: next-victoriametrics-vmselect +spec: + replicas: 1 + strategy: { type: Recreate } + selector: { matchLabels: { app: next-victoriametrics-vmselect } } + template: + metadata: + labels: + app: next-victoriametrics-vmselect + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: "/m/metrics" + prometheus.io/port: "80" + spec: + serviceAccountName: victoriametrics + containers: + - name: vmselect + # https://hub.docker.com/r/victoriametrics/victoria-metrics/tags also check vmalert.yaml + image: docker.io/victoriametrics/vmselect:v1.100.1-cluster + args: + - -http.pathPrefix=/m/next/vmselect/ + - -loggerTimezone=America/Los_Angeles + - -storageNode=next-victoriametrics-vmstorage + ports: + - containerPort: 8481 + +--- +apiVersion: v1 +kind: Service +metadata: + name: next-victoriametrics-vmselect +spec: + ports: + - port: 80 + targetPort: 8481 + selector: + app: next-victoriametrics-vmselect +#http://10.43.252.8/select/0/prometheus +# curl 'http://10.43.252.8/select/0/prometheus/api/v1/query_range?query=house_power_w&start=1713981843.549&end=1713983746.924&step=4s'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/vmstorage.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: next-victoriametrics-vmstorage +spec: + replicas: 1 + strategy: { type: Recreate } + selector: { matchLabels: { app: next-victoriametrics-vmstorage } } + template: + metadata: + labels: + app: next-victoriametrics-vmstorage + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: "/m/vmstorage/metrics" + prometheus.io/port: "80" + spec: + volumes: + - name: data + persistentVolumeClaim: + claimName: next-victoriametrics + serviceAccountName: victoriametrics + containers: + - name: vmstorage + # https://hub.docker.com/r/victoriametrics/victoria-metrics/tags also check vmalert.yaml + image: docker.io/victoriametrics/vmstorage:v1.100.1-cluster + args: + - -http.pathPrefix=/m/next/vmstorage/ + - -loggerTimezone=America/Los_Angeles + - -retentionPeriod=10y + - -storageDataPath=/data + ports: + - containerPort: 8482 # http? + - containerPort: 8400 # vminsert server + - containerPort: 8401 # vmselect server + volumeMounts: + - { name: data, mountPath: /data } + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: "kubernetes.io/hostname" + operator: In + values: ["ditto"] +--- +apiVersion: v1 +kind: Service +metadata: + name: next-victoriametrics-vmstorage +spec: + ports: + - {port: 80, targetPort: 8482 } + - {port: 8401, targetPort: 8401 } + selector: + app: next-victoriametrics-vmstorage +--- +apiVersion: v1 +kind: Service +metadata: + name: next-victoriametrics-vmstorage-write +spec: + ports: + - {port: 8400, targetPort: 8400 } + selector: + app: next-victoriametrics-vmstorage
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/vmui.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,37 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: next-victoriametrics-ui +spec: + replicas: 1 + strategy: { type: Recreate } + selector: { matchLabels: { app: next-victoriametrics-ui } } + template: + metadata: + labels: + app: next-victoriametrics-ui + annotations: + prometheus.io/scrape: "true" + prometheus.io/path: "/m/metrics" + prometheus.io/port: "80" + spec: + serviceAccountName: victoriametrics + containers: + - name: vmui + # https://hub.docker.com/r/victoriametrics/victoria-metrics/tags also check vmalert.yaml + args: + - -http.pathPrefix=/m/next/vmui/ + - -loggerTimezone=America/Los_Angeles + ports: + - containerPort: 8428 +--- +apiVersion: v1 +kind: Service +metadata: + name: next-victoriametrics-ui +spec: + ports: + - port: 80 + targetPort: 8428 + selector: + app: next-victoriametrics-ui
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/next/volumes.yaml Wed Apr 24 11:38:13 2024 -0700 @@ -0,0 +1,31 @@ +apiVersion: v1 +kind: PersistentVolume +metadata: + name: next-victoriametrics + labels: + type: local +spec: + storageClassName: manual + hostPath: + path: "/opt/next-victoriametrics" + capacity: + storage: 50Gi + accessModes: + - ReadWriteMany + persistentVolumeReclaimPolicy: Retain + claimRef: + namespace: default + name: next-victoriametrics +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: next-victoriametrics +spec: + storageClassName: "" + volumeName: "next-victoriametrics" + accessModes: + - ReadWriteMany + resources: + requests: + storage: 50Gi