If something prevents the first AlertManager instance from starting, we don't want to wait forever for it before starting the second. That pretty much defeats the purpose of having two instances. Fortunately, we can configure Kubernetes to bring up both instances simultaneously by setting the pod management policyo to `Parallel`.
88 lines
2.0 KiB
YAML
88 lines
2.0 KiB
YAML
---
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: alertmanager
|
|
labels:
|
|
app.kubernetes.io/name: alertmanager
|
|
app.kubernetes.io/component: alertmanager
|
|
spec:
|
|
ports:
|
|
- port: 9093
|
|
name: alertmanager
|
|
selector:
|
|
app.kubernetes.io/name: alertmanager
|
|
app.kubernetes.io/component: alertmanager
|
|
|
|
---
|
|
apiVersion: apps/v1
|
|
kind: StatefulSet
|
|
metadata:
|
|
name: alertmanager
|
|
labels:
|
|
app.kubernetes.io/name: alertmanager
|
|
app.kubernetes.io/component: alertmanager
|
|
spec:
|
|
serviceName: alertmanager
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: alertmanager
|
|
app.kubernetes.io/component: alertmanager
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app.kubernetes.io/name: alertmanager
|
|
app.kubernetes.io/component: alertmanager
|
|
spec:
|
|
containers:
|
|
- name: alertmanager
|
|
image: quay.io/prometheus/alertmanager:v0.26.0
|
|
ports:
|
|
- containerPort: 9093
|
|
name: http
|
|
readinessProbe: &probe
|
|
httpGet:
|
|
port: http
|
|
path: /-/ready
|
|
periodSeconds: 60
|
|
startupProbe:
|
|
<<: *probe
|
|
periodSeconds: 1
|
|
successThreshold: 1
|
|
failureThreshold: 30
|
|
timeoutSeconds: 1
|
|
securityContext:
|
|
runAsNonRoot: true
|
|
readOnlyRootFilesystem: true
|
|
volumeMounts:
|
|
- mountPath: /etc/alertmanager
|
|
name: config
|
|
readOnly: true
|
|
- mountPath: /alertmanager
|
|
name: alertmanager
|
|
subPath: data
|
|
securityContext:
|
|
fsGroup: 2093
|
|
runAsGroup: 2093
|
|
runAsNonRoot: true
|
|
runAsUser: 2093
|
|
volumes:
|
|
- name: config
|
|
configMap:
|
|
name: alertmanager
|
|
podManagementPolicy: Parallel
|
|
volumeClaimTemplates:
|
|
- apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: alertmanager
|
|
labels:
|
|
app.kubernetes.io/name: alertmanager
|
|
app.kubernetes.io/component: alertmanager
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 500M
|