Files
kubernetes/victoria-metrics/vmagent.yaml
Dustin C. Hatch 4c1992b3c9 v-m/vmagent: Start in parallel
As with AlertManager, the point of having multiple replicas of `vmagent`
is so that one is always running, even if the other fails.  Thus, we
want to start the pods in parallel so that if the first one does not
come up, the second one at least has a chance.
2025-09-07 10:49:22 -05:00

142 lines
2.9 KiB
YAML

apiVersion: v1
kind: ServiceAccount
metadata:
name: vmagent
labels:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: vmagent
labels:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
rules:
- apiGroups:
- ''
resources:
- nodes
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ''
resources:
- nodes/proxy
verbs:
- get
- nonResourceURLs:
- /metrics
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: vmagent
labels:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: vmagent
subjects:
- kind: ServiceAccount
name: vmagent
namespace: victoria-metrics
---
apiVersion: v1
kind: Service
metadata:
name: vmagent
labels:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
spec:
ports:
- port: 8429
name: vmagent
selector:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
clusterIP: None
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: vmagent
labels:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
spec:
serviceName: vmagent
selector:
matchLabels:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
template:
metadata:
labels:
app.kubernetes.io/name: vmagent
app.kubernetes.io/component: vmagent
spec:
containers:
- name: vmagent
image: quay.io/victoriametrics/vmagent:v1.96.0
args:
- -envflag.enable=true
- -envflag.prefix=vmagent_
- -remoteWrite.tmpDataPath=/data
- -httpListenAddr=0.0.0.0:8429
- -promscrape.config=/config/scrape.yml
- -promscrape.configCheckInterval=30s
env:
- name: vmagent_remoteWrite_url
value: http://vminsert:8480/insert/1/prometheus/api/v1/write
ports:
- containerPort: 8429
name: http
readinessProbe: &probe
httpGet:
port: http
path: /health
periodSeconds: 60
startupProbe:
<<: *probe
periodSeconds: 1
successThreshold: 1
failureThreshold: 30
timeoutSeconds: 1
securityContext:
runAsNonRoot: true
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /config
name: config
readOnly: true
- mountPath: /data
name: tmpdata
subPath: data
serviceAccountName: vmagent
securityContext:
fsGroup: 2093
runAsGroup: 2093
runAsNonRoot: true
runAsUser: 2093
volumes:
- name: config
configMap:
name: vmagent
- name: tmpdata
emptyDir: {}
podManagementPolicy: Parallel