Skip to content

Latest commit

 

History

History
41 lines (31 loc) · 1.67 KB

PodDisruptionBudget.md

File metadata and controls

41 lines (31 loc) · 1.67 KB

PodDisruptionBudget

Role

Pour assurer un maximum de sécurité, on peut utiliser des PodDisruptionBudget. On va ainsi informer Kubernetes qu'il n'a pas le droit de supprimer tous les Pods d'un ensemble (Deployment, StatefulSet, Replicaset). Deux paramètres sont disponibles :

  • minAvailable

Donne en valeur absolue ou en pourcentage le nombre minimal d'instance de pod à maintenir en état Ready.

  • maxUnavailable

Donne en valeur absolue ou en pourcentage le nombre maximal d'instance de pod que l'on accepte d'avoir non Ready.

Structure

apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: taz
spec:
  minAvailable: 2
  maxUnavailable: 1
  selector:
    matchLabels:
      app: taz

Attention

Un usage non maitrisé d'un PodDisruptionBudget peut avoir des conséquences fâcheuses.

Attention à ne pas mettre le minAvailable égal au nombre de replica si stratégie d'update ne permet pas d'avoir plus de pod que demandé.

Exemple:

Sur un déploiement avec un Replica égal à 3, vous avez un PodDisruptionBudget paramétré avec minAvailable = 2 ou un maxUnavailable = 1. Un des pods tombe en erreur, vous ne pourrez pas updater votre cluster automatiquement sans avoir retiré le PodDisruptionBudget (ou avoir corrigé l'erreur). En effet, Kubernetes qui va vouloir relancer ses Nodes une par une. Il va chercher à déplacer vos pods (drain node). Il n'aura, de base, pas le droit de le faire : il violerait le contrat posé par le PodDisruptionBudget.

Retour, Menu, Suite_