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.
92 lines
2.2 KiB
YAML
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
|