Files
kubernetes/victoria-metrics/vmstorage.yaml
Dustin C. Hatch 2d7fec1cdf v-m: vmstorage: Add pod anti-affinity
One of the reasons for moving to 4 `vmstorage` replicas was to ensure
that the load was spread evenly between the physical VM host machines.
To ensure that is the case as much as possible, we need to keep one
pod per Kubernetes node.
2024-06-26 18:29:49 -05:00

92 lines
2.2 KiB
YAML

apiVersion: v1
kind: Service
metadata:
name: vmstorage
labels:
app.kubernetes.io/name: vmstorage
app.kubernetes.io/component: vmstorage
spec:
ports:
- port: 8400
name: vminsert
- port: 8401
name: vmselect
selector:
app.kubernetes.io/name: vmstorage
app.kubernetes.io/component: vmstorage
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: vmstorage
labels:
app.kubernetes.io/name: vmstorage
app.kubernetes.io/component: vmstorage
spec:
serviceName: vmstorage
selector:
matchLabels:
app.kubernetes.io/name: vmstorage
app.kubernetes.io/component: vmstorage
podManagementPolicy: Parallel
template:
metadata:
labels:
app.kubernetes.io/name: vmstorage
app.kubernetes.io/component: vmstorage
spec:
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- vmstorage
topologyKey: kubernetes.io/hostname
weight: 1
containers:
- name: vmstorage
image: docker.io/victoriametrics/vmstorage:v1.96.0-cluster
args:
- -envflag.enable=true
- -envflag.prefix=vmstorage_
- -storageDataPath=/data
- -httpListenAddr=0.0.0.0:8482
ports:
- containerPort: 8400
name: vminsert
- containerPort: 8401
name: vmselect
- containerPort: 8482
name: http
securityContext:
runAsNonRoot: true
readOnlyRootFilesystem: true
volumeMounts:
- mountPath: /data
name: data
subPath: data
securityContext:
fsGroup: 2093
runAsGroup: 2093
runAsNonRoot: true
runAsUser: 2093
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
labels:
app.kubernetes.io/name: vmstorage
app.kubernetes.io/component: vmstorage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 40G