Pod disruption budget
editPod disruption budget
editA Pod Disruption Budget (PDB) allows you to limit the disruption to your application when its pods need to be rescheduled for some reason such as upgrades or routine maintenance work on the Kubernetes nodes.
ECK manages a default PDB per Elasticsearch resource. It allows one Elasticsearch Pod to be taken down, as long as the cluster has a green
health. Single-node clusters are not considered highly available and can always be disrupted.
In the Elasticsearch specification, you can change the default behaviour as follows:
apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: quickstart spec: version: 8.17.0 nodeSets: - name: default count: 3 podDisruptionBudget: spec: minAvailable: 2 selector: matchLabels: elasticsearch.k8s.elastic.co/cluster-name: quickstart
maxUnavailable
cannot be used with an arbitrary label selector, therefore minAvailable
is used in this example.
Pod disruption budget per nodeset
editYou can specify a PDB per nodeset or node role.
apiVersion: elasticsearch.k8s.elastic.co/v1 kind: Elasticsearch metadata: name: quickstart spec: podDisruptionBudget: {} version: 8.17.0 nodeSets: - name: master count: 3 config: node.roles: "master" node.store.allow_mmap: false - name: hot count: 2 config: node.roles: ["data_hot", "data_content", "ingest"] node.store.allow_mmap: false --- apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: master-nodes-pdb spec: minAvailable: 2 selector: matchLabels: elasticsearch.k8s.elastic.co/cluster-name: quickstart elasticsearch.k8s.elastic.co/node-master: "true" --- apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: hot-nodes-pdb spec: minAvailable: 1 selector: matchLabels: elasticsearch.k8s.elastic.co/cluster-name: quickstart elasticsearch.k8s.elastic.co/statefulset-name: quickstart-es-hot
Disable the default Elasticsearch pod disruption budget. |
|
Specify pod disruption budget to have 2 master nodes available. |
|
The pods should be in the "quickstart" cluster. |
|
Pod disruption budget applies on all master nodes. |
|
Specify pod disruption budget to have 1 hot node available. |
|
Pod disruption budget applies on nodes of the same nodeset. |