2022-01-21 10:05:58 +00:00
---
2023-10-02 12:50:08 +00:00
sort: 8
weight: 8
2023-01-11 15:38:18 +00:00
title: High Availability
2022-01-21 10:05:58 +00:00
---
# High Availability
2023-10-02 12:50:08 +00:00
High availability is not only important for customer-facing software but if the monitoring infrastructure is not highly available, then there is a risk that operations people are not notified of alerts.
Therefore, high availability must be just as thought through for the monitoring stack, as for anything else.
2022-01-21 10:05:58 +00:00
2023-10-02 12:50:08 +00:00
## Components
2022-01-21 10:05:58 +00:00
2023-10-02 12:50:08 +00:00
VictoriaMetrics operator support high availability for each component of the monitoring stack:
2022-01-21 10:05:58 +00:00
2023-10-02 12:50:08 +00:00
- [VMAgent ](./resources/vmagent.md#high-availability )
- [VMAlert ](./resources/vmalert.md#high-availability )
- [VMAlertmanager ](./resources/vmalertmanager.md#high-availability )
- [VMAuth ](./resources/vmauth.md#high-availability )
- [VMCluster ](./resources/vmcluster.md#high-availability )
2022-01-21 10:05:58 +00:00
2023-10-02 12:50:08 +00:00
More details you can find in the section ** [High Availability for resources ](./resources/README.md#high-availability )**.
2023-03-06 10:58:31 +00:00
2023-10-02 12:50:08 +00:00
## Operator
2023-03-06 10:58:31 +00:00
2023-10-02 12:50:08 +00:00
VictoriaMetrics operator can be safely scaled horizontally, but only one replica of the operator can
process [the reconciliation ](./README.md#reconciliation-cycle ) at a time -
it uses a leader election mechanism to ensure that only one replica is active at a time.
2023-03-06 10:58:31 +00:00
2023-10-02 12:50:08 +00:00
If one of replicas of the operator will be failed, then another replica will be elected as a leader and will continue to work -
operator replication affects how quickly this happens.
2022-01-21 10:05:58 +00:00
2023-10-02 12:50:08 +00:00
[CRD validation ](./configuration.md#crd-validation ) workload is fully
distributed among the available operator replicas.
2022-01-21 10:05:58 +00:00
2023-10-02 12:50:08 +00:00
In addition, you can safely use for operator such features
as [assigning and distributing to nodes ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ )
(like [node selector ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector ),
[affinity and anti-affinity ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity ),
[topology spread constraints ](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#pod-topology-spread-constraints ),
[taints and tolerations ](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ ), etc...)
2023-03-06 10:58:31 +00:00
2023-10-02 12:50:08 +00:00
In addition, don't forget about [monitoring for the operator ](./monitoring.md ).